Hi Theodore, Theodore Tso schrieb am Tue 20. Jan, 09:51 (-0500): > On Sun, Jan 18, 2009 at 11:04:59AM +0100, Jörg Sommer wrote: > > > > [ 203.082300] EXT4 FS on hda3, no journal > > > > [ 205.746713] EXT4-fs error (device hda3): ext4_free_data: circular indirect block detected, inode=165056, block=184476 > > > > > > Hi, this patch should fix your problem. Yes, this patch fixes the problem. Thanks. > commit bf3baec2b4529dcf47ee422a48b8c0e83df7f0a0 > Author: Theodore Ts'o <tytso@xxxxxxx> > Date: Tue Jan 20 09:50:19 2009 -0500 > > ext4: Fix ext4_free_blocks() w/o a journal when files have indirect blocks > > When trying to unlink a file with indirect blocks on a filesystem > without a journal, the "circular indirect block" sanity test was > getting falsely triggered. > > Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> Tested-by: Jörg Sommer <joerg@xxxxxxxxxxxx> > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 49484ba..b4386da 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -3622,7 +3622,7 @@ static void ext4_free_data(handle_t *handle, struct inode *inode, > * block pointed to itself, it would have been detached when > * the block was cleared. Check for this instead of OOPSing. > */ > - if (bh2jh(this_bh)) > + if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh)) > ext4_handle_dirty_metadata(handle, inode, this_bh); > else > ext4_error(inode->i_sb, __func__, > Bye, Jörg. -- Freiheit heißt, die Wahl zu haben, wessen Sklave man ist.
Attachment:
signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP