cluster: STABLE3 - libgfs2: dir_split_leaf needs to zero out the new leaf

Bob Peterson rpeterso at fedoraproject.org
Tue Jan 26 21:19:59 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=53028729cd3b8987ee498d486c6cae37c60b808b
Commit:        53028729cd3b8987ee498d486c6cae37c60b808b
Parent:        7fd936c0f96689f53c58341bf5ea20a37a119911
Author:        Bob Peterson <bob at ganesha.peterson>
AuthorDate:    Thu Jan 21 17:15:24 2010 -0600
Committer:     Bob Peterson <rpeterso at redhat.com>
CommitterDate: Tue Jan 26 14:39:29 2010 -0600

libgfs2: dir_split_leaf needs to zero out the new leaf

The dir_split_leaf function was not clearing out the new leaf
block it had allocated, so there was likely to be trash left
on the block.  Granted, this is pretty rare, but I actually
saw it in a situation where lots of orphaned dinodes were
tossed into lost+found.

rhbz#455300
---
 gfs2/libgfs2/fs_ops.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/gfs2/libgfs2/fs_ops.c b/gfs2/libgfs2/fs_ops.c
index bc8319e..3fc80ce 100644
--- a/gfs2/libgfs2/fs_ops.c
+++ b/gfs2/libgfs2/fs_ops.c
@@ -856,6 +856,8 @@ static void dir_split_leaf(struct gfs2_inode *dip, uint32_t lindex,
 		mh.mh_type = GFS2_METATYPE_LF;
 		mh.mh_format = GFS2_FORMAT_LF;
 		gfs2_meta_header_out(&mh, nbh);
+		buffer_clear_tail(dip->i_sbd, nbh,
+				  sizeof(struct gfs2_meta_header));
 	}
 
 	nleaf = (struct gfs2_leaf *)nbh->b_data;


More information about the cluster-commits mailing list