linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Alex Elder <elder@dreamhost.com>
Cc: Jan Kara <jack@suse.cz>, LKML <linux-kernel@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Eric Sandeen <sandeen@redhat.com>,
	Dave Chinner <david@fromorbit.com>, Sage Weil <sage@newdream.net>,
	ceph-devel@vger.kernel.org
Subject: Re: [PATCH 04/11] ceph: Push file_update_time() into ceph_page_mkwrite()
Date: Mon, 20 Feb 2012 12:06:27 +0100	[thread overview]
Message-ID: <20120220110627.GB6799@quack.suse.cz> (raw)
In-Reply-To: <1329419077.3121.38.camel@doink>

On Thu 16-02-12 13:04:37, Alex Elder wrote:
> On Thu, 2012-02-16 at 14:46 +0100, Jan Kara wrote:
> > CC: Sage Weil <sage@newdream.net>
> > CC: ceph-devel@vger.kernel.org
> > Signed-off-by: Jan Kara <jack@suse.cz>
> 
> 
> This will update the timestamp even if a write
> fault fails, which is different from before.
>
> Hard to avoid though.
  Yes. Relatively easy solution for this (at least for some filesystems)
is to include time update into other operations filesystem is doing.
Usually filesystem can do some preparations, then take page lock and then
update time stamps together with other things it wants to do. It usually
will be even faster than current scheme. But I decided to leave that to
fs maintainers because page_mkwrite() code tends to be tricky wrt locking
etc.


> Looks good to me.
> 
> Signed-off-by: Alex Elder <elder@dreamhost.com>
  Thanks.

								Honza

> >  fs/ceph/addr.c |    3 +++
> >  1 files changed, 3 insertions(+), 0 deletions(-)
> > 
> > diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
> > index 173b1d2..12b139f 100644
> > --- a/fs/ceph/addr.c
> > +++ b/fs/ceph/addr.c
> > @@ -1181,6 +1181,9 @@ static int ceph_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
> >  	loff_t size, len;
> >  	int ret;
> >  
> > +	/* Update time before taking page lock */
> > +	file_update_time(vma->vm_file);
> > +
> >  	size = i_size_read(inode);
> >  	if (off + PAGE_CACHE_SIZE <= size)
> >  		len = PAGE_CACHE_SIZE;
> 
> 
> 
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

  parent reply	other threads:[~2012-02-20 11:06 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120220110627.GB6799@quack.suse.cz \
    --to=jack@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=david@fromorbit.com \
    --cc=elder@dreamhost.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=sage@newdream.net \
    --cc=sandeen@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).