mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nathan Scott <nathans@sgi.com>
To: Neil Brown <neilb@suse.de>
Cc: akpm@osdl.org, linux-kernel@vger.kernel.org, drepper@redhat.com,
	mtk-manpages@gmx.net, nickpiggin@yahoo.com.au
Subject: Re: [patch 1/1] sys_sync_file_range()
Date: Fri, 31 Mar 2006 07:17:36 +1000	[thread overview]
Message-ID: <20060331071736.K921158@wobbly.melbourne.sgi.com> (raw)
In-Reply-To: <17451.36790.450410.79788@cse.unsw.edu.au>; from neilb@suse.de on Thu, Mar 30, 2006 at 06:58:46PM +1100

On Thu, Mar 30, 2006 at 06:58:46PM +1100, Neil Brown wrote:
> On Wednesday March 29, akpm@osdl.org wrote:
> > Remove the recently-added LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT
> > fadvise() additions, do it in a new sys_sync_file_range() syscall
> > instead. 
> 
> Hmmm... any chance this could be split into a sys_sync_file_range and
> a vfs_sync_file_range which takes a 'struct file*' and does less (or
> no) sanity checking, so I can call it from nfsd?
> 
> Currently I implement COMMIT (which has a range) with a by messing
> around with filemap_fdatawrite and filemap_fdatawait (ignoring the
> range) and I'd rather than a vfs helper.

I'm not 100% sure, but it looks like the PF_SYNCWRITE process flag
should be set on the nfsd's while they're doing that, which doesn't
seem to be happening atm.  Looks like a couple of the IO schedulers
will make use of that knowledge now.  All the more reason for a VFS
helper here I guess. ;)

cheers.

-- 
Nathan


Index: 2.6.x-xfs/fs/nfsd/vfs.c
===================================================================
--- 2.6.x-xfs.orig/fs/nfsd/vfs.c
+++ 2.6.x-xfs/fs/nfsd/vfs.c
@@ -712,11 +712,13 @@ static inline int nfsd_dosync(struct fil
 	int (*fsync) (struct file *, struct dentry *, int);
 	int err;
 
+	current->flags |= PF_SYNCWRITE;
 	err = filemap_fdatawrite(inode->i_mapping);
 	if (err == 0 && fop && (fsync = fop->fsync))
 		err = fsync(filp, dp, 0);
 	if (err == 0)
 		err = filemap_fdatawait(inode->i_mapping);
+	current->flags &= ~PF_SYNCWRITE;
 
 	return err;
 }

  parent reply	other threads:[~2006-03-30 21:18 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-30  7:41 akpm
2006-03-30  7:58 ` Neil Brown
2006-03-30  8:11   ` Andrew Morton
2006-03-30  8:32   ` Andrew Morton
2006-03-30  8:55     ` Neil Brown
2006-03-30 15:31     ` OGAWA Hirofumi
2006-03-30 20:19       ` Andrew Morton
2006-03-30 21:17   ` Nathan Scott [this message]
2006-04-03  1:24     ` Neil Brown
2006-04-03  7:50       ` Jens Axboe
2006-04-03  8:27         ` Andrew Morton
2006-04-03 14:31           ` Jens Axboe
2006-04-03 21:21             ` Andrew Morton
2006-04-04 20:50 ` Luck, Tony
2006-04-04 21:00   ` Andrew Morton
2006-04-04 21:01   ` Randy.Dunlap
2006-04-04 21:03   ` Ulrich Drepper

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=20060331071736.K921158@wobbly.melbourne.sgi.com \
    --to=nathans@sgi.com \
    --cc=akpm@osdl.org \
    --cc=drepper@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtk-manpages@gmx.net \
    --cc=neilb@suse.de \
    --cc=nickpiggin@yahoo.com.au \
    /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

all inboxes | Powered by JetHome®