commit 97f9ce088161a48df490b304c1866aa4a0694d33 Author: Bob Peterson <bob@ganesha.peterson> Date: Mon Jan 25 17:02:45 2010 -0600 Misc cleanups This is a collection of benign cleanups. rhbz#455300 diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c index 5b3b032..f85b1a2 100644 --- a/gfs2/fsck/pass1.c +++ b/gfs2/fsck/pass1.c @@ -458,7 +458,7 @@ static int check_eattr_indir(struct gfs2_inode *ip, uint64_t indirect, if(gfs2_check_range(sdp, indirect)) { /*log_warn("EA indirect block #%"PRIu64" is out of range.\n", indirect); - gfs2_blockmap_set(bl, parent, bad_block);*/ + fsck_blockmap_set(parent, "bad", bad_block);*/ /* Doesn't help to mark this here - this gets checked * in pass1c */ return 1; @@ -1048,7 +1048,7 @@ static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh) if (S_ISDIR(ip->i_di.di_mode) && (ip->i_di.di_flags & GFS2_DIF_EXHASH)) { if (((1 << ip->i_di.di_depth) * sizeof(uint64_t)) != ip->i_di.di_size){ - log_warn( _("Directory dinode #%llu (0x%llx" + log_warn( _("Directory dinode block #%llu (0x%llx" ") has bad depth. Found %u, Expected %u\n"), (unsigned long long)ip->i_di.di_num.no_addr, (unsigned long long)ip->i_di.di_num.no_addr, @@ -1176,8 +1176,8 @@ int pass1(struct gfs2_sbd *sbp) log_debug( _("rgrp block %lld (0x%llx) " "is now marked as 'rgrp data'\n"), rgd->ri.ri_addr + i, rgd->ri.ri_addr + i); - if(gfs2_blockmap_set(bl, rgd->ri.ri_addr + i, - gfs2_meta_rgrp)){ + if (gfs2_blockmap_set(bl, rgd->ri.ri_addr + i, + gfs2_meta_rgrp)) { stack; return FSCK_ERROR; } diff --git a/gfs2/fsck/pass2.c b/gfs2/fsck/pass2.c index c86140d..effbfa6 100644 --- a/gfs2/fsck/pass2.c +++ b/gfs2/fsck/pass2.c @@ -297,8 +297,8 @@ static int check_dentry(struct gfs2_inode *ip, struct gfs2_dirent *dent, (unsigned long long)ip->i_di.di_num.no_addr, (unsigned long long)ip->i_di.di_num.no_addr, q, q == gfs2_inode_invalid ? - _("previously marked invalid") : - _("is not an inode")); + _("was previously marked invalid") : + _("was deleted or is not an inode")); if(!query( _("Clear directory entry to non-inode block? " "(y/n) "))) { diff --git a/gfs2/libgfs2/block_list.c b/gfs2/libgfs2/block_list.c index 3bc8038..4ec6834 100644 --- a/gfs2/libgfs2/block_list.c +++ b/gfs2/libgfs2/block_list.c @@ -121,22 +121,6 @@ void gfs2_special_clear(struct special_blocks *blocklist, uint64_t block) } } -/* gfs2_block_unmark clears ONE mark for the given block */ -int gfs2_block_unmark(struct gfs2_sbd *sdp, struct gfs2_bmap *bmap, - uint64_t block, enum gfs2_mark_block mark) -{ - static unsigned char *byte; - static uint64_t b; - - if(block > bmap->size) - return -1; - - byte = bmap->map + BLOCKMAP_SIZE4(block); - b = BLOCKMAP_BYTE_OFFSET4(block); - *byte &= ~(BLOCKMAP_MASK4 << b); - return 0; -} - int gfs2_blockmap_set(struct gfs2_bmap *bmap, uint64_t bblock, enum gfs2_mark_block mark) { diff --git a/gfs2/libgfs2/fs_ops.c b/gfs2/libgfs2/fs_ops.c index c36b0f3..4969ad5 100644 --- a/gfs2/libgfs2/fs_ops.c +++ b/gfs2/libgfs2/fs_ops.c @@ -707,7 +707,7 @@ int gfs2_dirent_next(struct gfs2_inode *dip, struct gfs2_buffer_head *bh, bh_end = bh->b_data + dip->i_sbd->bsize; cur_rec_len = be16_to_cpu((*dent)->de_rec_len); - if ((char *)(*dent) + cur_rec_len >= bh_end) + if (cur_rec_len == 0 || (char *)(*dent) + cur_rec_len >= bh_end) return -ENOENT; *dent = (struct gfs2_dirent *)((char *)(*dent) + cur_rec_len); @@ -1398,7 +1398,6 @@ static int leaf_search(struct gfs2_inode *dip, struct gfs2_buffer_head *bh, static int linked_leaf_search(struct gfs2_inode *dip, const char *filename, int len, struct gfs2_dirent **dent_out, - struct gfs2_dirent **dent_prev, struct gfs2_buffer_head **bh_out) { struct gfs2_buffer_head *bh = NULL, *bh_next; @@ -1425,8 +1424,8 @@ static int linked_leaf_search(struct gfs2_inode *dip, const char *filename, brelse(bh); bh = bh_next; - - error = leaf_search(dip, bh, filename, len, dent_out, dent_prev); + + error = leaf_search(dip, bh, filename, len, dent_out, NULL); switch (error){ case 0: *bh_out = bh; @@ -1465,7 +1464,7 @@ static int dir_e_search(struct gfs2_inode *dip, const char *filename, struct gfs2_dirent *dent; int error; - error = linked_leaf_search(dip, filename, len, &dent, NULL, &bh); + error = linked_leaf_search(dip, filename, len, &dent, &bh); if (error) return error; diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h index 59df642..c94c05d 100644 --- a/gfs2/libgfs2/libgfs2.h +++ b/gfs2/libgfs2/libgfs2.h @@ -351,12 +351,6 @@ extern int gfs2_blockmap_set(struct gfs2_bmap *il, uint64_t block, enum gfs2_mark_block mark); extern void gfs2_special_clear(struct special_blocks *blocklist, uint64_t block); -/* gfs2_block_unmark clears ONE mark for the given block */ -extern int gfs2_block_unmark(struct gfs2_sbd *sdp, struct gfs2_bmap *il, - uint64_t block, enum gfs2_mark_block m); -/* gfs2_block_clear clears all the marks for the given block */ -extern int gfs2_blockmap_clear(struct gfs2_sbd *sdp, struct gfs2_bmap *il, - uint64_t block); extern void *gfs2_bmap_destroy(struct gfs2_sbd *sdp, struct gfs2_bmap *il); /* buf.c */