Re: Bugs in quota code (long) (new)

Jan Kara (jack@atrey.karlin.mff.cuni.cz)
Thu, 22 Apr 1999 13:21:53 +0200


Hello.

>
> (This message is only an FYI because I integrated your patch and still
> have illness. Maybe races aren't dead, maybe I screwed up integration.
> Anyway...)
Probably I screwed my patches ;-)...

> I ran into this one this morning in sync.
>
> (not perfect, but pretty darn spiffy)
> kdb> btp 582
> EBP Caller Function(args)
> 0xc2ddfcf0 0xc012eb99 schedule(0xc2f01b60, 0x0)
> 0xc2ddfd00 0xc012f4f4 __wait_on_dquot(0xc2f01b60)
> 0xc2ddfd40 0xc0130036 dqduplicate(0xc2f01b60, 0x4, 0xc0fbb5e0, 0xc2efe330, 0xc2ddfd48)
> 0xc2ddfdcc 0xc013fb62 dquot_alloc_block(0xc2efe330, 0x4, 0x0, 0x1)
> 0xc2ddfdf4 0xc0142000 ext2_new_block(0xc2efe330, 0x0, 0xc2efe434, 0xc2efe430, 0xc2ddfeb4)
> 0xc2ddfe20 0xc0142354 ext2_alloc_block(0xc2efe330, 0x0, 0xc2ddfeb4, 0xc2efe330, 0x0)
> 0xc2ddfe58 0xc014275e inode_getblk(0xc2efe330, 0x0, 0x1, 0x0, 0xc2ddfeb4)
> 0xc2ddff3c 0xc0140c92 ext2_getblk(0xc2efe330, 0x0, 0x1, 0xc2ddfeb4)
> 0xc2ddff6c 0xc012ed5a ext2_file_write(0xc2e66a80, 0xc2f01b94, 0x20, 0xc2ddff64)
> 0xc2ddff8c 0xc012ef58 write_dquot(0xc2f01b60)
> 0xc2ddffb0 0xc0123a3e sync_dquots(0x0, 0xffffffff, 0x0, 0x0, 0x0)
> 0xc2ddffbc 0xc0123a5a fsync_dev(0x0)
> 0xbffff4b8 0xc0107a64 sys_sync(0xbffff504, 0x40101ead, 0x1, 0x1, 0x1)
> kdb> md 0xc2f01b60
> c2f01b60: c2f01b00 c2f01bc0 c2f01b68 c2f01b68 ..ðÂÀ.ðÂh.ðÂh.ðÂ
> c2f01b70: 00000000 c02f3bbc c2ddfce8 00000004 ....¼;/ÀèüÝÂ....
> c2f01b80: c0fbc120 00000000 00000900 00000041 ÁûÀ........A...
> ^^
> c2f01b90: 00000008 00000000 00000000 00195eb0 ............°^..
> c2f01ba0: 00000000 00000000 00014f2d 00000000 ........-O......
> c2f01bb0: 00000000 00000000 00000000 c2f01fe0 ............à.ðÂ
> c2f01bc0: c2f01b60 c02bbb54 c2f01bc8 c2f01bc8 `.ðÂT»+ÀÈ.ðÂÈ.ðÂ
> c2f01bd0: 00000000 c02f3c04 c2f01bd4 00000002 .....</ÀÔ.ðÂ...
>
> seems dqduplicate() ran into a locked dquot.. then sleeps forever.
Seems to be really interesting... I think I can see what causes lockup.
I'll have to think it over and fix it... Thanks very much for info.

>
> > 5) When quota_off is run
>
> Here I sometimes see lockup at umount time if I modify the fs with
> quotas enabled. I haven't yet figured out exactly which sequence of
> actions leads to it.
It can be simply consequence of above problem. When turning quotas off
the write is performed...

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/