Messages in this thread | | | Date | Tue, 24 Jun 2008 01:32:39 +0300 | From | Sami Liedes <> | Subject | Re: [PATCH] ext3: handle corrupted orphan list at mount |
| |
On Mon, Jun 23, 2008 at 10:56:40PM +0100, Duane Griffin wrote: > If the orphan node list includes valid, untruncatable nodes with nlink > 0 > the ext3_orphan_cleanup loop which attempts to delete them will not do so, > causing it to loop forever. Fix by checking for such nodes in the > ext3_orphan_get function.
You people working hard to fix bugs and implement great filesystems almost makes me feel bad for trying to break your code :)
> diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c > index 7712682..bc030f4 100644 > --- a/fs/ext3/ialloc.c > +++ b/fs/ext3/ialloc.c [...] > @@ -690,6 +698,7 @@ bad_orphan: > printk(KERN_NOTICE "NEXT_ORPHAN(inode)=%u\n", > NEXT_ORPHAN(inode)); > printk(KERN_NOTICE "max_ino=%lu\n", max_ino); > + printk(KERN_NOTICE "i_nlink=%lu\n", inode->i_nlink); ^^^
Here I get (on x86 gcc 4.3.1):
fs/ext3/ialloc.c: In function 'ext3_orphan_get': fs/ext3/ialloc.c:701: warning: format '%lu' expects type 'long unsigned int', but argument 2 has type 'unsigned int'
So it probably should be %u or something.
Sami
| |