[Cluster-devel] [fsck.gfs2 v2 PATCH 19/40] fsck.gfs2: pass counted_links into fix_link_count in pass4

Bob Peterson rpeterso at redhat.com
Fri May 6 17:39:12 UTC 2016


This patch changes function fix_link_count so that it accepts the
counted_links rather than a pointer to the inode info structure.
That makes it more versatile for future expansion.

Signed-off-by: Bob Peterson <rpeterso at redhat.com>
---
 gfs2/fsck/pass4.c | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/gfs2/fsck/pass4.c b/gfs2/fsck/pass4.c
index 0d6cc9d..14cce55 100644
--- a/gfs2/fsck/pass4.c
+++ b/gfs2/fsck/pass4.c
@@ -25,21 +25,20 @@ struct metawalk_fxns pass4_fxns_delete = {
 
 /* Updates the link count of an inode to what the fsck has seen for
  * link count */
-static int fix_link_count(struct inode_info *ii, struct gfs2_inode *ip)
+static int fix_link_count(uint32_t counted_links, struct gfs2_inode *ip)
 {
 	log_info( _("Fixing inode link count (%d->%d) for %llu (0x%llx) \n"),
-		  ip->i_di.di_nlink, ii->counted_links,
+		  ip->i_di.di_nlink, counted_links,
 		 (unsigned long long)ip->i_di.di_num.no_addr,
 		 (unsigned long long)ip->i_di.di_num.no_addr);
-	if (ip->i_di.di_nlink == ii->counted_links)
+	if (ip->i_di.di_nlink == counted_links)
 		return 0;
-	ip->i_di.di_nlink = ii->counted_links;
+	ip->i_di.di_nlink = counted_links;
 	bmodified(ip->i_bh);
 
 	log_debug( _("Changing inode %llu (0x%llx) to have %u links\n"),
 		  (unsigned long long)ip->i_di.di_num.no_addr,
-		  (unsigned long long)ip->i_di.di_num.no_addr,
-		  ii->counted_links);
+		  (unsigned long long)ip->i_di.di_num.no_addr, counted_links);
 	return 0;
 }
 
@@ -135,7 +134,7 @@ static int scan_inode_list(struct gfs2_sbd *sdp) {
 					fsck_inode_put(&ip);
 					return -1;
 				} else {
-					fix_link_count(ii, ip);
+					fix_link_count(ii->counted_links, ip);
 					lf_addition = 1;
 				}
 			} else
@@ -155,7 +154,7 @@ static int scan_inode_list(struct gfs2_sbd *sdp) {
 				  (unsigned long long)ii->di_num.no_addr,
 				  (unsigned long long)ii->di_num.no_addr)) {
 				ip = fsck_load_inode(sdp, ii->di_num.no_addr); /* bread, inode_get */
-				fix_link_count(ii, ip);
+				fix_link_count(ii->counted_links, ip);
 				ii->di_nlink = ii->counted_links;
 				fsck_inode_put(&ip); /* out, brelse, free */
 				log_warn( _("Link count updated to %d for "
@@ -183,7 +182,7 @@ static int scan_inode_list(struct gfs2_sbd *sdp) {
 			log_crit( _("Unable to find lost+found inode in inode_hash!!\n"));
 			return -1;
 		} else {
-			fix_link_count(ii, lf_dip);
+			fix_link_count(ii->counted_links, lf_dip);
 		}
 	}
 
-- 
2.5.5




More information about the Cluster-devel mailing list