lkml.org 
[lkml]   [2000]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Quota mods needed for journaled quota
  Hello.

> There are a few problems in the Linux quota code which make it
> impossible to perform quota updates transactionally when using a
> journaled filesystem.
>
> Basically we have the following problems:
>
> * The underlying filesystem does not know which files are the quota
> files, so cannot tell when to apply journaling consistency
> guarantees to data writes
>
> * "chown" is not transactional: the filesystem is given no
> opportunity to wrap the quota transfer and the owner-attribute
> notify-change call into a single transaction.
In my quota fix this has changed a bit as now filesystem's notify_change()
is calling dquot_transfer() (it was needed due to some races and I think it's
also more consistent with how other quota calls work). So this problem
should exist no more.

> All of these could be fixed very easily (at least for ext3) if it were
> possible for ext3 to install its own version of the superblock->dq_ops
> quota operations (which would just be simple wrappers around the
> existing quota calls). However, the current sys_quotactl installs the
> default quota_ops into the superblock on quota_on without any chance
> for the filesystem to override it.
>
> The addition of an "init_quota" method to the super_operations struct,
> with quota_on calling this and defaulting to installing the default
> quota_ops if the method is NULL, ought to be sufficient to let ext3
> get quotas right in all cases as far as I can see.
Actually I was proposing something similar in my reaction on dquot hang in
ext3... The only difference was that I proposed to install dq_ops in
foo_read_super() so that it will be more consistent with how other callbacks
work. And in my fix of quota I removed testing of dq_ops being NULL so
operations can be set during all life (mount time) of filesystem.

Honza
-
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/

\
 
 \ /
  Last update: 2005-03-22 12:45    [from the cache]
©2003-2011 Jasper Spaans