[Cluster-devel] [PATCH 00/11] Push file_update_time() into .page_mkwrite

Jan Kara jack at suse.cz
Thu Feb 16 13:46:08 UTC 2012


  Hello,

  to provide reliable support for filesystem freezing, filesystems need to have
complete control over when metadata is changed. In particular,
file_update_time() calls from page fault code make it impossible for
filesystems to prevent inodes from being dirtied while the filesystem is
frozen.

To fix the issue, this patch set changes page fault code to call
file_update_time() only when ->page_mkwrite() callback is not provided. If the
callback is provided, it is the responsibility of the filesystem to perform
update of i_mtime / i_ctime if needed. We also push file_update_time() call
to all existing ->page_mkwrite() implementations if the time update does not
obviously happen by other means. If you know your filesystem does not need
update of modification times in ->page_mkwrite() handler, please speak up and
I'll drop the patch for your filesystem.

As a side note, an alternative would be to remove call of file_update_time()
from page fault code altogether and require all filesystems needing it to do
that in their ->page_mkwrite() implementation. That is certainly possible
although maybe slightly inefficient and would require auditting 100+
vm_operations_structs *shake*.

If I get acks on these patches, Andrew, would you be willing to take these
patches?

								Honza

CC: Peter Zijlstra <a.p.zijlstra at chello.nl>
CC: Ingo Molnar <mingo at elte.hu>
CC: Paul Mackerras <paulus at samba.org>
CC: Arnaldo Carvalho de Melo <acme at ghostprotocols.net>
CC: Jaya Kumar <jayalk at intworks.biz>
CC: Sage Weil <sage at newdream.net>
CC: ceph-devel at vger.kernel.org
CC: Steve French <sfrench at samba.org>
CC: linux-cifs at vger.kernel.org
CC: Eric Van Hensbergen <ericvh at gmail.com>
CC: Ron Minnich <rminnich at sandia.gov>
CC: Latchesar Ionkov <lucho at ionkov.net>
CC: v9fs-developer at lists.sourceforge.net
CC: Miklos Szeredi <miklos at szeredi.hu>
CC: fuse-devel at lists.sourceforge.net
CC: Steven Whitehouse <swhiteho at redhat.com>
CC: cluster-devel at redhat.com
CC: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
CC: Trond Myklebust <Trond.Myklebust at netapp.com>
CC: linux-nfs at vger.kernel.org




More information about the Cluster-devel mailing list