All of lore.kernel.org
 help / color / mirror / Atom feed
From: Suresh Jayaraman <sjayaraman-l3A5Bk7waGM@public.gmane.org>
To: Trond Myklebust
	<trond.myklebust-41N18TsMXrtuMpJDpNschA@public.gmane.org>
Cc: Masahiro Tamori
	<masahiro.tamori-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Mathieu Desnoyers
	<compudj-vdFpqfd5riKZ9vWoFJJngh2eb7JE58TQ@public.gmane.org>,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	ltt-dev-33AaDErTWvBVxDZ2/Zk0YoryAYyacSEB@public.gmane.org,
	LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-embedded-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Peter Zijlstra
	<a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org>
Subject: Re: [ltt-dev] [PATCH] nfs: add support for splice writes
Date: Mon, 20 Apr 2009 18:08:11 +0530	[thread overview]
Message-ID: <49EC6CB3.8080800@suse.de> (raw)
In-Reply-To: <1240230224.8073.6.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>

Trond Myklebust wrote:
> On Mon, 2009-04-20 at 11:09 +0530, Suresh Jayaraman wrote:
>> Hi Trond,
>>
>> Do you think this patch is OK? Can this be considered for merging?
>>
>> Thanks,
>>
>>>>>> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
>>>>>> index 90f292b..13d6a00 100644
>>>>>> --- a/fs/nfs/file.c
>>>>>> +++ b/fs/nfs/file.c
>>>>>> @@ -47,6 +47,9 @@ static ssize_t nfs_file_splice_read(struct file *filp, loff_t *ppos,
>>>>>>                   size_t count, unsigned int flags);
>>>>>> static ssize_t nfs_file_read(struct kiocb *, const struct iovec *iov,
>>>>>>               unsigned long nr_segs, loff_t pos);
>>>>>> +static ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe,
>>>>>> +                  struct file *filp, loff_t *ppos,
>>>>>> +                  size_t count, unsigned int flags);
>>>>>> static ssize_t nfs_file_write(struct kiocb *, const struct iovec *iov,
>>>>>>               unsigned long nr_segs, loff_t pos);
>>>>>> static int nfs_file_flush(struct file *, fl_owner_t id);
>>>>>> @@ -76,6 +79,7 @@ const struct file_operations nfs_file_operations = {
>>>>>>   .lock      = nfs_lock,
>>>>>>   .flock     = nfs_flock,
>>>>>>   .splice_read  = nfs_file_splice_read,
>>>>>> +  .splice_write  = nfs_file_splice_write,
>>>>>>   .check_flags  = nfs_check_flags,
>>>>>>   .setlease    = nfs_setlease,
>>>>>> };
>>>>>> @@ -550,6 +554,26 @@ out_swapfile:
>>>>>>   goto out;
>>>>>> }
>>>>>>
>>>>>> +static ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe,
>>>>>> +                 struct file *filp, loff_t *ppos,
>>>>>> +                 size_t count, unsigned int flags)
>>>>>> +{
>>>>>> +  struct dentry *dentry = filp->f_path.dentry;
>>>>>> +  struct inode *inode = dentry->d_inode;
>>>>>> +
>>>>>> +  dprintk("NFS splice_write(%s/%s, %lu@%Lu)\n",
>>>>>> +      dentry->d_parent->d_name.name, dentry->d_name.name,
>>>>>> +      (unsigned long) count, (unsigned long long) *ppos);
>>>>>> +
>>>>>> +  if (IS_SWAPFILE(inode)) {
>>>>>> +      printk(KERN_INFO "NFS: attempt to write to active swap"
>>>>>> +          "file!\n");
>>>>>> +      return -EBUSY;
>>>>>> +  }
> 
> I don't know that we really need this. We should sweep through the NFS
> code and kill all those IS_SWAPFILE() thingys. Or at least #define
> IS_SWAPFILE(a) (0)
> ...

Hmm.. I'm not sure whether we should kill them now. I think originally,
these were added keeping in mind the future NFS swap support. Given that
the recent work from Peterz Zilstra on "Swap over NFS" and multiple
iterations/review on the same, I think those patches will eventually get
merged sooner or later. Perhaps, it's a good idea to #define
IS_SWAPFILE(a) 0 than killing them entirely..?


Thanks,

>>>>>> +
>>>>>> +  return generic_file_splice_write(pipe, filp, ppos, count, flags);
>>>>>> +}
>>>>>> +
>>>>>> static int do_getlk(struct file *filp, int cmd, struct file_lock *fl)
>>>>>> {
>>>>>>   struct inode *inode = filp->f_mapping->host;
>>>>>>
> 
> Otherwise it looks fine...
> 
> 
> 

-- 
Suresh Jayaraman
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Suresh Jayaraman <sjayaraman@suse.de>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Masahiro Tamori <masahiro.tamori@gmail.com>,
	Mathieu Desnoyers
	<compudj-vdFpqfd5riKZ9vWoFJJngh2eb7JE58TQ@public.gmane.org>,
	linux-nfs@vger.kernel.org,
	ltt-dev-33AaDErTWvBVxDZ2/Zk0YoryAYyacSEB@public.gmane.org,
	LKML <linux-kernel@vger.kernel.org>,
	linux-embedded@vger.kernel.org,
	Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [ltt-dev] [PATCH] nfs: add support for splice writes
Date: Mon, 20 Apr 2009 18:08:11 +0530	[thread overview]
Message-ID: <49EC6CB3.8080800@suse.de> (raw)
In-Reply-To: <1240230224.8073.6.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>

Trond Myklebust wrote:
> On Mon, 2009-04-20 at 11:09 +0530, Suresh Jayaraman wrote:
>> Hi Trond,
>>
>> Do you think this patch is OK? Can this be considered for merging?
>>
>> Thanks,
>>
>>>>>> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
>>>>>> index 90f292b..13d6a00 100644
>>>>>> --- a/fs/nfs/file.c
>>>>>> +++ b/fs/nfs/file.c
>>>>>> @@ -47,6 +47,9 @@ static ssize_t nfs_file_splice_read(struct file *filp, loff_t *ppos,
>>>>>>                   size_t count, unsigned int flags);
>>>>>> static ssize_t nfs_file_read(struct kiocb *, const struct iovec *iov,
>>>>>>               unsigned long nr_segs, loff_t pos);
>>>>>> +static ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe,
>>>>>> +                  struct file *filp, loff_t *ppos,
>>>>>> +                  size_t count, unsigned int flags);
>>>>>> static ssize_t nfs_file_write(struct kiocb *, const struct iovec *iov,
>>>>>>               unsigned long nr_segs, loff_t pos);
>>>>>> static int nfs_file_flush(struct file *, fl_owner_t id);
>>>>>> @@ -76,6 +79,7 @@ const struct file_operations nfs_file_operations = {
>>>>>>   .lock      = nfs_lock,
>>>>>>   .flock     = nfs_flock,
>>>>>>   .splice_read  = nfs_file_splice_read,
>>>>>> +  .splice_write  = nfs_file_splice_write,
>>>>>>   .check_flags  = nfs_check_flags,
>>>>>>   .setlease    = nfs_setlease,
>>>>>> };
>>>>>> @@ -550,6 +554,26 @@ out_swapfile:
>>>>>>   goto out;
>>>>>> }
>>>>>>
>>>>>> +static ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe,
>>>>>> +                 struct file *filp, loff_t *ppos,
>>>>>> +                 size_t count, unsigned int flags)
>>>>>> +{
>>>>>> +  struct dentry *dentry = filp->f_path.dentry;
>>>>>> +  struct inode *inode = dentry->d_inode;
>>>>>> +
>>>>>> +  dprintk("NFS splice_write(%s/%s, %lu@%Lu)\n",
>>>>>> +      dentry->d_parent->d_name.name, dentry->d_name.name,
>>>>>> +      (unsigned long) count, (unsigned long long) *ppos);
>>>>>> +
>>>>>> +  if (IS_SWAPFILE(inode)) {
>>>>>> +      printk(KERN_INFO "NFS: attempt to write to active swap"
>>>>>> +          "file!\n");
>>>>>> +      return -EBUSY;
>>>>>> +  }
> 
> I don't know that we really need this. We should sweep through the NFS
> code and kill all those IS_SWAPFILE() thingys. Or at least #define
> IS_SWAPFILE(a) (0)
> ...

Hmm.. I'm not sure whether we should kill them now. I think originally,
these were added keeping in mind the future NFS swap support. Given that
the recent work from Peterz Zilstra on "Swap over NFS" and multiple
iterations/review on the same, I think those patches will eventually get
merged sooner or later. Perhaps, it's a good idea to #define
IS_SWAPFILE(a) 0 than killing them entirely..?


Thanks,

>>>>>> +
>>>>>> +  return generic_file_splice_write(pipe, filp, ppos, count, flags);
>>>>>> +}
>>>>>> +
>>>>>> static int do_getlk(struct file *filp, int cmd, struct file_lock *fl)
>>>>>> {
>>>>>>   struct inode *inode = filp->f_mapping->host;
>>>>>>
> 
> Otherwise it looks fine...
> 
> 
> 

-- 
Suresh Jayaraman

WARNING: multiple messages have this Message-ID (diff)
From: Suresh Jayaraman <sjayaraman@suse.de>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Masahiro Tamori <masahiro.tamori@gmail.com>,
	Mathieu Desnoyers <compudj@krystal.dyndns.org>,
	linux-nfs@vger.kernel.org, ltt-dev@lists.casi.polymtl.ca,
	LKML <linux-kernel@vger.kernel.org>,
	linux-embedded@vger.kernel.org,
	Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [ltt-dev] [PATCH] nfs: add support for splice writes
Date: Mon, 20 Apr 2009 18:08:11 +0530	[thread overview]
Message-ID: <49EC6CB3.8080800@suse.de> (raw)
In-Reply-To: <1240230224.8073.6.camel@heimdal.trondhjem.org>

Trond Myklebust wrote:
> On Mon, 2009-04-20 at 11:09 +0530, Suresh Jayaraman wrote:
>> Hi Trond,
>>
>> Do you think this patch is OK? Can this be considered for merging?
>>
>> Thanks,
>>
>>>>>> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
>>>>>> index 90f292b..13d6a00 100644
>>>>>> --- a/fs/nfs/file.c
>>>>>> +++ b/fs/nfs/file.c
>>>>>> @@ -47,6 +47,9 @@ static ssize_t nfs_file_splice_read(struct file *filp, loff_t *ppos,
>>>>>>                   size_t count, unsigned int flags);
>>>>>> static ssize_t nfs_file_read(struct kiocb *, const struct iovec *iov,
>>>>>>               unsigned long nr_segs, loff_t pos);
>>>>>> +static ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe,
>>>>>> +                  struct file *filp, loff_t *ppos,
>>>>>> +                  size_t count, unsigned int flags);
>>>>>> static ssize_t nfs_file_write(struct kiocb *, const struct iovec *iov,
>>>>>>               unsigned long nr_segs, loff_t pos);
>>>>>> static int nfs_file_flush(struct file *, fl_owner_t id);
>>>>>> @@ -76,6 +79,7 @@ const struct file_operations nfs_file_operations = {
>>>>>>   .lock      = nfs_lock,
>>>>>>   .flock     = nfs_flock,
>>>>>>   .splice_read  = nfs_file_splice_read,
>>>>>> +  .splice_write  = nfs_file_splice_write,
>>>>>>   .check_flags  = nfs_check_flags,
>>>>>>   .setlease    = nfs_setlease,
>>>>>> };
>>>>>> @@ -550,6 +554,26 @@ out_swapfile:
>>>>>>   goto out;
>>>>>> }
>>>>>>
>>>>>> +static ssize_t nfs_file_splice_write(struct pipe_inode_info *pipe,
>>>>>> +                 struct file *filp, loff_t *ppos,
>>>>>> +                 size_t count, unsigned int flags)
>>>>>> +{
>>>>>> +  struct dentry *dentry = filp->f_path.dentry;
>>>>>> +  struct inode *inode = dentry->d_inode;
>>>>>> +
>>>>>> +  dprintk("NFS splice_write(%s/%s, %lu@%Lu)\n",
>>>>>> +      dentry->d_parent->d_name.name, dentry->d_name.name,
>>>>>> +      (unsigned long) count, (unsigned long long) *ppos);
>>>>>> +
>>>>>> +  if (IS_SWAPFILE(inode)) {
>>>>>> +      printk(KERN_INFO "NFS: attempt to write to active swap"
>>>>>> +          "file!\n");
>>>>>> +      return -EBUSY;
>>>>>> +  }
> 
> I don't know that we really need this. We should sweep through the NFS
> code and kill all those IS_SWAPFILE() thingys. Or at least #define
> IS_SWAPFILE(a) (0)
> ...

Hmm.. I'm not sure whether we should kill them now. I think originally,
these were added keeping in mind the future NFS swap support. Given that
the recent work from Peterz Zilstra on "Swap over NFS" and multiple
iterations/review on the same, I think those patches will eventually get
merged sooner or later. Perhaps, it's a good idea to #define
IS_SWAPFILE(a) 0 than killing them entirely..?


Thanks,

>>>>>> +
>>>>>> +  return generic_file_splice_write(pipe, filp, ppos, count, flags);
>>>>>> +}
>>>>>> +
>>>>>> static int do_getlk(struct file *filp, int cmd, struct file_lock *fl)
>>>>>> {
>>>>>>   struct inode *inode = filp->f_mapping->host;
>>>>>>
> 
> Otherwise it looks fine...
> 
> 
> 

-- 
Suresh Jayaraman

  parent reply	other threads:[~2009-04-20 12:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-02  6:21 [PATCH] nfs: add support for splice writes Suresh Jayaraman
2009-04-02  6:21 ` Suresh Jayaraman
2009-04-02  6:21 ` Suresh Jayaraman
     [not found] ` <49D45974.2060202-l3A5Bk7waGM@public.gmane.org>
2009-04-02  6:29   ` Mathieu Desnoyers
2009-04-02  6:29     ` Mathieu Desnoyers
2009-04-02  6:29     ` Mathieu Desnoyers
2009-04-02  6:32   ` Mathieu Desnoyers
2009-04-02  6:32     ` Mathieu Desnoyers
2009-04-02  6:32     ` Mathieu Desnoyers
2009-04-02  6:42     ` Suresh Jayaraman
2009-04-02  6:42       ` Suresh Jayaraman
2009-04-02  6:42       ` Suresh Jayaraman
2009-04-02 12:42       ` [ltt-dev] " Masahiro Tamori
2009-04-20  5:39         ` Suresh Jayaraman
2009-04-20 12:23           ` Trond Myklebust
     [not found]             ` <1240230224.8073.6.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-04-20 12:38               ` Suresh Jayaraman [this message]
2009-04-20 12:38                 ` Suresh Jayaraman
2009-04-20 12:38                 ` Suresh Jayaraman
2009-04-20 14:21                 ` Trond Myklebust
2009-04-20 15:47                   ` Suresh Jayaraman
2009-04-21 14:48                     ` Christoph Hellwig
     [not found]                       ` <20090421144810.GA7036-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2009-04-21 17:35                         ` Trond Myklebust
2009-04-21 17:35                           ` Trond Myklebust
2009-04-21 17:35                           ` Trond Myklebust
     [not found]                           ` <1240335302.5390.20.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-04-21 18:48                             ` Chuck Lever
2009-04-21 18:48                               ` Chuck Lever
2009-04-21 18:48                               ` Chuck Lever
2009-04-22  8:33                             ` Suresh Jayaraman
2009-04-22  8:33                               ` Suresh Jayaraman
2009-04-22  8:33                               ` Suresh Jayaraman

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=49EC6CB3.8080800@suse.de \
    --to=sjayaraman-l3a5bk7wagm@public.gmane.org \
    --cc=a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org \
    --cc=compudj-vdFpqfd5riKZ9vWoFJJngh2eb7JE58TQ@public.gmane.org \
    --cc=linux-embedded-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ltt-dev-33AaDErTWvBVxDZ2/Zk0YoryAYyacSEB@public.gmane.org \
    --cc=masahiro.tamori-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=trond.myklebust-41N18TsMXrtuMpJDpNschA@public.gmane.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.