Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 53028729cd3b8987ee498d486c6cae37c60b808b
Parent: 7fd936c0f96689f53c58341bf5ea20a37a119911
Author: Bob Peterson <bob(a)ganesha.peterson>
AuthorDate: Thu Jan 21 17:15:24 2010 -0600
Committer: Bob Peterson <rpeterso(a)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;