gfs2-utils: master - fsck.gfs2: Force intermediate lost+found inode updates

Bob Peterson rpeterso at fedoraproject.org
Tue Jan 26 21:10:58 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/gfs2-utils.git?p=gfs2-utils.git;a=commitdiff;h=068146012317eb0d34488c59bd36b9218b91eb1b
Commit:        068146012317eb0d34488c59bd36b9218b91eb1b
Parent:        00f523c4235deb2c4a2d3a602d04fd4127e91e9b
Author:        Bob Peterson <bob at ganesha.peterson>
AuthorDate:    Mon Jan 25 14:27:31 2010 -0600
Committer:     Bob Peterson <rpeterso at redhat.com>
CommitterDate: Tue Jan 26 15:09:51 2010 -0600

fsck.gfs2: Force intermediate lost+found inode updates

This patch forces the lost+found dinode to be rewritten every time
an orphan inode is moved into lost+found.  That way, if the user
interrupts fsck.gfs2 during pass4, they won't be left with a
lost+found dinode with an invalid number of blocks, links and so
forth.

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

diff --git a/gfs2/fsck/lost_n_found.c b/gfs2/fsck/lost_n_found.c
index ab2bedb..28e5ca1 100644
--- a/gfs2/fsck/lost_n_found.c
+++ b/gfs2/fsck/lost_n_found.c
@@ -185,5 +185,7 @@ int add_inode_to_lf(struct gfs2_inode *ip){
 	log_notice( _("Added inode #%llu (0x%llx) to lost+found dir\n"),
 		    (unsigned long long)ip->i_di.di_num.no_addr,
 		    (unsigned long long)ip->i_di.di_num.no_addr);
+	gfs2_dinode_out(&lf_dip->i_di, lf_dip->i_bh);
+	bwrite(lf_dip->i_bh);
 	return 0;
 }


More information about the cluster-commits mailing list