linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/11] Push file_update_time() into .page_mkwrite
@ 2012-02-16 13:46 Jan Kara
  2012-02-16 13:46 ` [PATCH 01/11] perf: Push file_update_time() into perf_mmap_fault() Jan Kara
                   ` (10 more replies)
  0 siblings, 11 replies; 26+ messages in thread
From: Jan Kara @ 2012-02-16 13:46 UTC (permalink / raw)
  To: LKML
  Cc: linux-fsdevel, linux-mm, Andrew Morton, Eric Sandeen,
	Dave Chinner, Jan Kara, Peter Zijlstra, Ingo Molnar,
	Paul Mackerras, Arnaldo Carvalho de Melo, Jaya Kumar, Sage Weil,
	ceph-devel, Steve French, linux-cifs, Eric Van Hensbergen,
	Ron Minnich, Latchesar Ionkov, v9fs-developer, Miklos Szeredi,
	fuse-devel, Steven Whitehouse, cluster-devel, Greg Kroah-Hartman,
	Trond Myklebust, linux-nfs

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

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2012-02-29 17:43 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-16 13:46 [PATCH 00/11] Push file_update_time() into .page_mkwrite Jan Kara
2012-02-16 13:46 ` [PATCH 01/11] perf: Push file_update_time() into perf_mmap_fault() Jan Kara
2012-02-16 13:50   ` Peter Zijlstra
2012-02-20 22:33     ` Jan Kara
2012-02-16 13:46 ` [PATCH 02/11] fb_defio: Push file_update_time() into fb_deferred_io_mkwrite() Jan Kara
2012-02-16 13:46 ` [PATCH 03/11] fs: Push file_update_time() into __block_page_mkwrite() Jan Kara
2012-02-16 13:46 ` [PATCH 04/11] ceph: Push file_update_time() into ceph_page_mkwrite() Jan Kara
2012-02-16 19:04   ` Alex Elder
2012-02-16 19:13     ` Sage Weil
2012-02-20 22:42       ` Jan Kara
2012-02-20 22:57         ` Sage Weil
2012-02-20 11:06     ` Jan Kara
2012-02-16 13:46 ` [PATCH 05/11] cifs: Push file_update_time() into cifs_page_mkwrite() Jan Kara
2012-02-16 13:46 ` [PATCH 06/11] 9p: Push file_update_time() into v9fs_vm_page_mkwrite() Jan Kara
2012-02-16 13:46 ` [PATCH 07/11] fuse: Push file_update_time() into fuse_page_mkwrite() Jan Kara
2012-02-16 13:46 ` [PATCH 08/11] gfs2: Push file_update_time() into gfs2_page_mkwrite() Jan Kara
2012-02-16 16:47   ` Steven Whitehouse
2012-02-16 13:46 ` [PATCH 09/11] sysfs: Push file_update_time() into bin_page_mkwrite() Jan Kara
2012-02-16 16:24   ` Greg Kroah-Hartman
2012-02-16 19:04   ` Alex Elder
2012-02-20 11:00     ` Jan Kara
2012-02-29 17:46       ` Eric W. Biederman
2012-02-16 13:46 ` [PATCH 10/11] nfs: Push file_update_time() into nfs_vm_page_mkwrite() Jan Kara
2012-02-16 13:50   ` Myklebust, Trond
2012-02-20 22:32     ` Jan Kara
2012-02-16 13:46 ` [PATCH 11/11] mm: Update file times from fault path only if .page_mkwrite is not set Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).