Gitweb: http://git.fedorahosted.org/git/?p=cluster.git;a=commitdiff;h=f7b8a81a21d933... Commit: f7b8a81a21d93398873fd96dd3329f2e0b120e5b Parent: 29114a11a4e8f8a8e3f83376b4431714d10c4ec0 Author: Bob Peterson rpeterso@redhat.com AuthorDate: Tue Apr 2 10:39:26 2013 -0700 Committer: Bob Peterson rpeterso@redhat.com CommitterDate: Fri May 17 15:24:44 2013 -0500
fsck.gfs2: Consistent naming of struct duptree variables
There were several places in the fsck.gfs2 code that referenced variables of type struct duptree, but sometimes they were called dt, d, b or even data. This patch achieves a level of consistency and calls them all dt. This helps readability: when you see a variable dt, you know it's a struct duptree.
rhbz#902920 --- gfs2/fsck/fsck.h | 2 +- gfs2/fsck/metawalk.c | 24 +++++----- gfs2/fsck/pass1b.c | 113 +++++++++++++++++++++++++------------------------- gfs2/fsck/util.c | 40 +++++++++--------- 4 files changed, 90 insertions(+), 89 deletions(-)
diff --git a/gfs2/fsck/fsck.h b/gfs2/fsck/fsck.h index e4f84c1..87d0a04 100644 --- a/gfs2/fsck/fsck.h +++ b/gfs2/fsck/fsck.h @@ -117,7 +117,7 @@ extern int fsck_query(const char *format, ...) __attribute__((format(printf,1,2))); extern struct dir_info *dirtree_find(uint64_t block); extern void dup_listent_delete(struct inode_with_dups *id); -extern void dup_delete(struct duptree *b); +extern void dup_delete(struct duptree *dt); extern void dirtree_delete(struct dir_info *b);
/* FIXME: Hack to get this going for pass2 - this should be pulled out diff --git a/gfs2/fsck/metawalk.c b/gfs2/fsck/metawalk.c index 39c39ce..c1c7bfb 100644 --- a/gfs2/fsck/metawalk.c +++ b/gfs2/fsck/metawalk.c @@ -177,14 +177,14 @@ struct duptree *dupfind(uint64_t block) struct osi_node *node = dup_blocks.osi_node;
while (node) { - struct duptree *data = (struct duptree *)node; + struct duptree *dt = (struct duptree *)node;
- if (block < data->block) + if (block < dt->block) node = node->osi_left; - else if (block > data->block) + else if (block > dt->block) node = node->osi_right; else - return data; + return dt; } return NULL; } @@ -953,15 +953,15 @@ int delete_block(struct gfs2_inode *ip, uint64_t block, */ int find_remove_dup(struct gfs2_inode *ip, uint64_t block, const char *btype) { - struct duptree *d; + struct duptree *dt; struct inode_with_dups *id;
- d = dupfind(block); - if (!d) + dt = dupfind(block); + if (!dt) return 0;
/* remove the inode reference id structure for this reference. */ - id = find_dup_ref_inode(d, ip); + id = find_dup_ref_inode(dt, ip); if (!id) return 0;
@@ -971,14 +971,14 @@ int find_remove_dup(struct gfs2_inode *ip, uint64_t block, const char *btype) (unsigned long long)block, (unsigned long long)block, btype, (unsigned long long)ip->i_di.di_num.no_addr, (unsigned long long)ip->i_di.di_num.no_addr); - d->refs--; /* one less reference */ - if (d->refs == 1) { + dt->refs--; /* one less reference */ + if (dt->refs == 1) { log_info( _("This leaves only one reference: it's " "no longer a duplicate.\n")); - dup_delete(d); /* not duplicate now */ + dup_delete(dt); /* not duplicate now */ } else log_info( _("%d block reference(s) remain.\n"), - d->refs); + dt->refs); return 1; /* but the original ref still exists so do not free it. */ }
diff --git a/gfs2/fsck/pass1b.c b/gfs2/fsck/pass1b.c index d6b52e0..838b75e 100644 --- a/gfs2/fsck/pass1b.c +++ b/gfs2/fsck/pass1b.c @@ -20,7 +20,7 @@ struct fxn_info { };
struct dup_handler { - struct duptree *b; + struct duptree *dt; struct inode_with_dups *id; int ref_inode_count; int ref_count; @@ -177,21 +177,21 @@ static int find_dentry(struct gfs2_inode *ip, struct gfs2_dirent *de, { struct osi_node *n, *next = NULL; osi_list_t *tmp2; - struct duptree *b; + struct duptree *dt; int found;
for (n = osi_first(&dup_blocks); n; n = next) { next = osi_next(n); - b = (struct duptree *)n; + dt = (struct duptree *)n; found = 0; - osi_list_foreach(tmp2, &b->ref_invinode_list) { + osi_list_foreach(tmp2, &dt->ref_invinode_list) { if (check_dir_dup_ref(ip, de, tmp2, filename)) { found = 1; break; } } if (!found) { - osi_list_foreach(tmp2, &b->ref_inode_list) { + osi_list_foreach(tmp2, &dt->ref_inode_list) { if (check_dir_dup_ref(ip, de, tmp2, filename)) break; } @@ -208,7 +208,7 @@ static int clear_dup_metalist(struct gfs2_inode *ip, uint64_t block, void *private) { struct dup_handler *dh = (struct dup_handler *) private; - struct duptree *d; + struct duptree *dt;
if (!valid_block(ip->i_sbd, block)) return 0; @@ -223,14 +223,14 @@ static int clear_dup_metalist(struct gfs2_inode *ip, uint64_t block, to delete it altogether. If the block is a duplicate referenced block, we need to keep its type intact and let the caller sort it out once we're down to a single reference. */ - d = dupfind(block); - if (!d) { + dt = dupfind(block); + if (!dt) { fsck_blockmap_set(ip, block, _("no longer valid"), gfs2_block_free); return 0; } /* This block, having failed the above test, is duplicated somewhere */ - if (block == dh->b->block) { + if (block == dh->dt->block) { log_err( _("Not clearing duplicate reference in inode "%s" " "at block #%llu (0x%llx) to block #%llu (0x%llx) " "because it's valid for another inode.\n"), @@ -396,7 +396,7 @@ static enum dup_ref_type get_ref_type(struct inode_with_dups *id) return ref_types; }
-static void log_inode_reference(struct duptree *b, osi_list_t *tmp, int inval) +static void log_inode_reference(struct duptree *dt, osi_list_t *tmp, int inval) { char reftypestring[32]; struct inode_with_dups *id; @@ -416,8 +416,8 @@ static void log_inode_reference(struct duptree *b, osi_list_t *tmp, int inval) "block %llu (0x%llx) (%s)\n"), id->name, (unsigned long long)id->block_no, (unsigned long long)id->block_no, id->dup_count, - (unsigned long long)b->block, - (unsigned long long)b->block, reftypestring); + (unsigned long long)dt->block, + (unsigned long long)dt->block, reftypestring); } /* * resolve_dup_references - resolve all but the last dinode that has a @@ -432,7 +432,7 @@ static void log_inode_reference(struct duptree *b, osi_list_t *tmp, int inval) * acceptable_ref - Delete dinodes that reference the given block as anything * _but_ this type. Try to save references as this type. */ -static int resolve_dup_references(struct gfs2_sbd *sdp, struct duptree *b, +static int resolve_dup_references(struct gfs2_sbd *sdp, struct duptree *dt, osi_list_t *ref_list, struct dup_handler *dh, int inval, int acceptable_ref) { @@ -459,7 +459,7 @@ static int resolve_dup_references(struct gfs2_sbd *sdp, struct duptree *b, return FSCK_OK;
id = osi_list_entry(tmp, struct inode_with_dups, list); - dh->b = b; + dh->dt = dt; dh->id = id;
if (dh->ref_inode_count == 1) /* down to the last reference */ @@ -490,8 +490,8 @@ static int resolve_dup_references(struct gfs2_sbd *sdp, struct duptree *b, id->name, (unsigned long long)id->block_no, (unsigned long long)id->block_no, - (unsigned long long)b->block, - (unsigned long long)b->block, + (unsigned long long)dt->block, + (unsigned long long)dt->block, reftypes[this_ref]); continue; /* don't delete the dinode */ } @@ -509,8 +509,8 @@ static int resolve_dup_references(struct gfs2_sbd *sdp, struct duptree *b, "really %s.\n"), id->name, (unsigned long long)id->block_no, (unsigned long long)id->block_no, - (unsigned long long)b->block, - (unsigned long long)b->block, + (unsigned long long)dt->block, + (unsigned long long)dt->block, reftypes[this_ref], reftypes[acceptable_ref]); if (!(query( _("Okay to delete %s inode %lld (0x%llx)? " "(y/n) "), @@ -560,7 +560,7 @@ static int resolve_dup_references(struct gfs2_sbd *sdp, struct duptree *b, return 0; }
-static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) +static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *dt) { struct gfs2_inode *ip; osi_list_t *tmp; @@ -572,12 +572,12 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) enum dup_ref_type acceptable_ref;
/* Count the duplicate references, both valid and invalid */ - osi_list_foreach(tmp, &b->ref_invinode_list) { + osi_list_foreach(tmp, &dt->ref_invinode_list) { id = osi_list_entry(tmp, struct inode_with_dups, list); dh.ref_inode_count++; dh.ref_count += id->dup_count; } - osi_list_foreach(tmp, &b->ref_inode_list) { + osi_list_foreach(tmp, &dt->ref_inode_list) { id = osi_list_entry(tmp, struct inode_with_dups, list); dh.ref_inode_count++; dh.ref_count += id->dup_count; @@ -586,13 +586,14 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) /* Log the duplicate references */ log_notice( _("Block %llu (0x%llx) has %d inodes referencing it" " for a total of %d duplicate references:\n"), - (unsigned long long)b->block, (unsigned long long)b->block, - dh.ref_inode_count, dh.ref_count); + (unsigned long long)dt->block, + (unsigned long long)dt->block, + dh.ref_inode_count, dh.ref_count);
- osi_list_foreach(tmp, &b->ref_invinode_list) - log_inode_reference(b, tmp, 1); - osi_list_foreach(tmp, &b->ref_inode_list) - log_inode_reference(b, tmp, 0); + osi_list_foreach(tmp, &dt->ref_invinode_list) + log_inode_reference(dt, tmp, 1); + osi_list_foreach(tmp, &dt->ref_inode_list) + log_inode_reference(dt, tmp, 0);
/* Figure out the block type to see if we can eliminate references to a different type. In other words, if the duplicate block looks @@ -601,7 +602,7 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) references to it as metadata. Dinodes with such references are clearly corrupt and need to be deleted. And if we're left with a single reference, problem solved. */ - bh = bread(sdp, b->block); + bh = bread(sdp, dt->block); cmagic = ((struct gfs2_meta_header *)(bh->b_data))->mh_magic; ctype = ((struct gfs2_meta_header *)(bh->b_data))->mh_type; brelse(bh); @@ -646,10 +647,10 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) "Step 1: Eliminate references to block %llu " "(0x%llx) that were previously marked " "invalid.\n"), - (unsigned long long)b->block, - (unsigned long long)b->block); - last_reference = resolve_dup_references(sdp, b, - &b->ref_invinode_list, + (unsigned long long)dt->block, + (unsigned long long)dt->block); + last_reference = resolve_dup_references(sdp, dt, + &dt->ref_invinode_list, &dh, 1, ref_types); } /* Step 2 - eliminate reference from inodes that reference it as the @@ -661,10 +662,10 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) log_debug( _("----------------------------------------------\n" "Step 2: Eliminate references to block %llu " "(0x%llx) that need the wrong block type.\n"), - (unsigned long long)b->block, - (unsigned long long)b->block); - last_reference = resolve_dup_references(sdp, b, - &b->ref_inode_list, + (unsigned long long)dt->block, + (unsigned long long)dt->block); + last_reference = resolve_dup_references(sdp, dt, + &dt->ref_inode_list, &dh, 0, acceptable_ref); } @@ -676,20 +677,20 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) log_debug( _("----------------------------------------------\n" "Step 3: Choose one reference to block %llu " "(0x%llx) to keep.\n"), - (unsigned long long)b->block, - (unsigned long long)b->block); - last_reference = resolve_dup_references(sdp, b, - &b->ref_inode_list, + (unsigned long long)dt->block, + (unsigned long long)dt->block); + last_reference = resolve_dup_references(sdp, dt, + &dt->ref_inode_list, &dh, 0, ref_types); } /* Now fix the block type of the block in question. */ - if (osi_list_empty(&b->ref_inode_list)) { + if (osi_list_empty(&dt->ref_inode_list)) { log_notice( _("Block %llu (0x%llx) has no more references; " "Marking as 'free'.\n"), - (unsigned long long)b->block, - (unsigned long long)b->block); - gfs2_blockmap_set(bl, b->block, gfs2_block_free); - check_n_fix_bitmap(sdp, b->block, gfs2_block_free); + (unsigned long long)dt->block, + (unsigned long long)dt->block); + gfs2_blockmap_set(bl, dt->block, gfs2_block_free); + check_n_fix_bitmap(sdp, dt->block, gfs2_block_free); return 0; } if (last_reference) { @@ -697,14 +698,14 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b)
log_notice( _("Block %llu (0x%llx) has only one remaining " "reference.\n"), - (unsigned long long)b->block, - (unsigned long long)b->block); + (unsigned long long)dt->block, + (unsigned long long)dt->block); /* If we're down to a single reference (and not all references deleted, which may be the case of an inode that has only itself and a reference), we need to reset the block type from invalid to data or metadata. Start at the first one in the list, not the structure's place holder. */ - tmp = (&b->ref_inode_list)->next; + tmp = (&dt->ref_inode_list)->next; id = osi_list_entry(tmp, struct inode_with_dups, list); log_debug( _("----------------------------------------------\n" "Step 4. Set block type based on the remaining " @@ -720,27 +721,27 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) "the block as free.\n"), (unsigned long long)id->block_no, (unsigned long long)id->block_no); - fsck_blockmap_set(ip, b->block, + fsck_blockmap_set(ip, dt->block, _("reference-repaired leaf"), gfs2_block_free); } else if (id->reftypecount[ref_is_inode]) { set_ip_blockmap(ip, 0); /* 0=do not add to dirtree */ } else if (id->reftypecount[ref_as_data]) { - fsck_blockmap_set(ip, b->block, + fsck_blockmap_set(ip, dt->block, _("reference-repaired data"), gfs2_block_used); } else if (id->reftypecount[ref_as_meta]) { if (is_dir(&ip->i_di, sdp->gfs1)) - fsck_blockmap_set(ip, b->block, + fsck_blockmap_set(ip, dt->block, _("reference-repaired leaf"), gfs2_leaf_blk); else - fsck_blockmap_set(ip, b->block, + fsck_blockmap_set(ip, dt->block, _("reference-repaired " "indirect"), gfs2_indir_blk); } else - fsck_blockmap_set(ip, b->block, + fsck_blockmap_set(ip, dt->block, _("reference-repaired extended " "attribute"), gfs2_meta_eattr); @@ -757,7 +758,7 @@ static int handle_dup_blk(struct gfs2_sbd *sdp, struct duptree *b) * use in pass2 */ int pass1b(struct gfs2_sbd *sdp) { - struct duptree *b; + struct duptree *dt; uint64_t i; uint8_t q; struct osi_node *n, *next = NULL; @@ -813,9 +814,9 @@ int pass1b(struct gfs2_sbd *sdp) out: for (n = osi_first(&dup_blocks); n; n = next) { next = osi_next(n); - b = (struct duptree *)n; + dt = (struct duptree *)n; if (!skip_this_pass && !rc) /* no error & not asked to skip the rest */ - handle_dup_blk(sdp, b); + handle_dup_blk(sdp, dt); /* Do not attempt to free the dup_blocks list or its parts here because any func that calls check_metatree needs to check duplicate status based on this linked list. diff --git a/gfs2/fsck/util.c b/gfs2/fsck/util.c index a33e452..78d4e79 100644 --- a/gfs2/fsck/util.c +++ b/gfs2/fsck/util.c @@ -156,7 +156,7 @@ int fsck_query(const char *format, ...) static struct duptree *gfs2_dup_set(uint64_t dblock, int create) { struct osi_node **newn = &dup_blocks.osi_node, *parent = NULL; - struct duptree *data; + struct duptree *dt;
/* Figure out where to put new node */ while (*newn) { @@ -173,20 +173,20 @@ static struct duptree *gfs2_dup_set(uint64_t dblock, int create)
if (!create) return NULL; - data = malloc(sizeof(struct duptree)); + dt = malloc(sizeof(struct duptree)); dups_found++; - memset(data, 0, sizeof(struct duptree)); + memset(dt, 0, sizeof(struct duptree)); /* Add new node and rebalance tree. */ - data->block = dblock; - data->refs = 1; /* reference 1 is actually the reference we need to - discover in pass1b. */ - data->first_ref_found = 0; - osi_list_init(&data->ref_inode_list); - osi_list_init(&data->ref_invinode_list); - osi_link_node(&data->node, parent, newn); - osi_insert_color(&data->node, &dup_blocks); - - return data; + dt->block = dblock; + dt->refs = 1; /* reference 1 is actually the reference we need to + discover in pass1b. */ + dt->first_ref_found = 0; + osi_list_init(&dt->ref_inode_list); + osi_list_init(&dt->ref_invinode_list); + osi_link_node(&dt->node, parent, newn); + osi_insert_color(&dt->node, &dup_blocks); + + return dt; }
/** @@ -371,23 +371,23 @@ void dup_listent_delete(struct inode_with_dups *id) free(id); }
-void dup_delete(struct duptree *b) +void dup_delete(struct duptree *dt) { struct inode_with_dups *id; osi_list_t *tmp;
- while (!osi_list_empty(&b->ref_invinode_list)) { - tmp = (&b->ref_invinode_list)->next; + while (!osi_list_empty(&dt->ref_invinode_list)) { + tmp = (&dt->ref_invinode_list)->next; id = osi_list_entry(tmp, struct inode_with_dups, list); dup_listent_delete(id); } - while (!osi_list_empty(&b->ref_inode_list)) { - tmp = (&b->ref_inode_list)->next; + while (!osi_list_empty(&dt->ref_inode_list)) { + tmp = (&dt->ref_inode_list)->next; id = osi_list_entry(tmp, struct inode_with_dups, list); dup_listent_delete(id); } - osi_erase(&b->node, &dup_blocks); - free(b); + osi_erase(&dt->node, &dup_blocks); + free(dt); }
void dirtree_delete(struct dir_info *b)
cluster-commits@lists.fedorahosted.org