Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 9383e745e23602bc45f9c92184feea59 > files > 59

gfs2-utils-0.1.62-28.el5.src.rpm

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 */