[lkml]   [2001]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Linux-2.4.10 + ext3


> ext3 needs to remain transactional even when making recursive calls
> into the filesystem, and ext3 implements quotas, which are quite
> capable of recursing into the fs if we end up hitting the VM at the
> wrong moment. Such recursions have to be handled very, very
> carefully: a legal recursion within one filesystem is valid, but
> recursions between filesystems absolutely must be avoided, as this can
> lead to deadlock.
> And there are recursions we just can't get rid of --- an inode delete
> ends up deallocating the inode on disk and updating the dquot (which
> does a dqput, which writes the quota entry using the normal VFS API),
> and we _have_ to make that quota-file write a nested transaction if we
> want quotas to be atomic with respect to journal recovery. Short of
> adding a new context parameter to be passed all the way through the
> quota and VM layers wherever this sort of recursion is possible, we
> need to attach that context to the task. (Without a task struct
> field, though, we can still hash outstanding transaction handles by
> pid for fast lookup.)
Actually Alan should now have patch in his queue which makes
quota guarantee no recursion on DQUOT_ALLOC/FREE operations (apart from
mark_inode_dirty()). Recursion is possible only in DQUOT_DROP,
DQUOT_INIT and DQUOT_TRANSFER. So this patch might help ext3 a bit.

Jan Kara <>
SuSE Labs
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:03    [W:0.071 / U:0.960 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site