Re: Bugfix in dquot_transfer()

From: Alexander Viro (viro@math.psu.edu)
Date: Mon Sep 04 2000 - 01:38:08 EST


On Mon, 4 Sep 2000, Jan Kara wrote:

> Hello.
>
> Following patch fixes bug in dquot_transfer() - while we were sleeping
> i_blocks might change and so number quota was miscounted. Patches are
> against 2.2.16 and 2.4.0-test6 (but should apply well on newer versions).

        Umm... It still has a hole: pageout during notify_change() can
allocate new blocks. Window is narrow, but it's there. Fsck knows what
to do with that. Could we just keep the pointer to current quota elements
(i.e. places where we should charge) in the inode? Then dquot_transfer()
would transfer the charge after notify_change() and switch these pointers
at the same time. Under BKL - nothing can block in that place. How about
such strategy? Then DQUOT_INIT would have set these pointers, but it's not
too horrible, IMO.

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



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:16 EST