Messages in this thread |  | | Date | Mon, 4 Sep 2000 02:38:08 -0400 (EDT) | From | Alexander Viro <> | Subject | Re: Bugfix in dquot_transfer() |
| |
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/
|  |