linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] nfs client: kill compile warning on NOMMU machine
@ 2008-11-06  9:15 Bryan Wu
  2009-02-05  9:02 ` Bryan Wu
  0 siblings, 1 reply; 5+ messages in thread
From: Bryan Wu @ 2008-11-06  9:15 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs; +Cc: linux-kernel, Bryan Wu

On nommu machine such as Blackfin, when compling NFS we got an warning about
nfs_file_mmap() function defined but not used.

This patch kills this warning.

Signed-off-by: Bryan Wu <cooloney@kernel.org>
---
 fs/nfs/file.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index d319b49..66b8b8e 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -64,11 +64,7 @@ const struct file_operations nfs_file_operations = {
 	.write		= do_sync_write,
 	.aio_read	= nfs_file_read,
 	.aio_write	= nfs_file_write,
-#ifdef CONFIG_MMU
 	.mmap		= nfs_file_mmap,
-#else
-	.mmap		= generic_file_mmap,
-#endif
 	.open		= nfs_file_open,
 	.flush		= nfs_file_flush,
 	.release	= nfs_file_release,
@@ -294,6 +290,7 @@ nfs_file_splice_read(struct file *filp, loff_t *ppos,
 	return res;
 }
 
+#ifdef CONFIG_MMU
 static int
 nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
 {
@@ -312,6 +309,17 @@ nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
 	}
 	return status;
 }
+#else
+static int
+nfs_file_mmap(struct file *file, struct vm_area_struct *vma)
+{
+	/* Kill warning: 'nfs_file_vm_ops' defined but not used */
+	struct vm_operations_struct *vm_ops;
+	vm_ops = &nfs_file_vm_ops;
+
+	return generic_file_mmap(file, vma);
+}
+#endif
 
 /*
  * Flush any dirty pages for this process, and check for write errors.
-- 
1.5.6.3

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

* Re: [PATCH] nfs client: kill compile warning on NOMMU machine
  2008-11-06  9:15 [PATCH] nfs client: kill compile warning on NOMMU machine Bryan Wu
@ 2009-02-05  9:02 ` Bryan Wu
  2009-02-05 13:28   ` Trond Myklebust
  0 siblings, 1 reply; 5+ messages in thread
From: Bryan Wu @ 2009-02-05  9:02 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs; +Cc: linux-kernel, Bryan Wu

Hi guys,

Is it possible to merge this patch?

Thanks
-Bryan

On Thu, Nov 6, 2008 at 5:15 PM, Bryan Wu <cooloney@kernel.org> wrote:
> On nommu machine such as Blackfin, when compling NFS we got an warning about
> nfs_file_mmap() function defined but not used.
>
> This patch kills this warning.
>
> Signed-off-by: Bryan Wu <cooloney@kernel.org>
> ---
>  fs/nfs/file.c |   16 ++++++++++++----
>  1 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
> index d319b49..66b8b8e 100644
> --- a/fs/nfs/file.c
> +++ b/fs/nfs/file.c
> @@ -64,11 +64,7 @@ const struct file_operations nfs_file_operations = {
>        .write          = do_sync_write,
>        .aio_read       = nfs_file_read,
>        .aio_write      = nfs_file_write,
> -#ifdef CONFIG_MMU
>        .mmap           = nfs_file_mmap,
> -#else
> -       .mmap           = generic_file_mmap,
> -#endif
>        .open           = nfs_file_open,
>        .flush          = nfs_file_flush,
>        .release        = nfs_file_release,
> @@ -294,6 +290,7 @@ nfs_file_splice_read(struct file *filp, loff_t *ppos,
>        return res;
>  }
>
> +#ifdef CONFIG_MMU
>  static int
>  nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
>  {
> @@ -312,6 +309,17 @@ nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
>        }
>        return status;
>  }
> +#else
> +static int
> +nfs_file_mmap(struct file *file, struct vm_area_struct *vma)
> +{
> +       /* Kill warning: 'nfs_file_vm_ops' defined but not used */
> +       struct vm_operations_struct *vm_ops;
> +       vm_ops = &nfs_file_vm_ops;
> +
> +       return generic_file_mmap(file, vma);
> +}
> +#endif
>
>  /*
>  * Flush any dirty pages for this process, and check for write errors.
> --
> 1.5.6.3
>

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

* Re: [PATCH] nfs client: kill compile warning on NOMMU machine
  2009-02-05  9:02 ` Bryan Wu
@ 2009-02-05 13:28   ` Trond Myklebust
  2009-02-05 15:37     ` Trond Myklebust
  0 siblings, 1 reply; 5+ messages in thread
From: Trond Myklebust @ 2009-02-05 13:28 UTC (permalink / raw)
  To: Bryan Wu; +Cc: linux-nfs, linux-kernel

On Thu, 2009-02-05 at 17:02 +0800, Bryan Wu wrote:
> Hi guys,
> 
> Is it possible to merge this patch?

NACK. Although it would be nice to get rid of the warning, this patch
does so at the price of even further obfuscating the fact that we're
just returning -ENOSYS in the no MMU case, and by causing
nfs_file_vm_ops (which is currently optimised away) to be compiled in
for no good reason at all.

Trond

> Thanks
> -Bryan
> 
> On Thu, Nov 6, 2008 at 5:15 PM, Bryan Wu <cooloney@kernel.org> wrote:
> > On nommu machine such as Blackfin, when compling NFS we got an warning about
> > nfs_file_mmap() function defined but not used.
> >
> > This patch kills this warning.
> >
> > Signed-off-by: Bryan Wu <cooloney@kernel.org>
> > ---
> >  fs/nfs/file.c |   16 ++++++++++++----
> >  1 files changed, 12 insertions(+), 4 deletions(-)
> >
> > diff --git a/fs/nfs/file.c b/fs/nfs/file.c
> > index d319b49..66b8b8e 100644
> > --- a/fs/nfs/file.c
> > +++ b/fs/nfs/file.c
> > @@ -64,11 +64,7 @@ const struct file_operations nfs_file_operations = {
> >        .write          = do_sync_write,
> >        .aio_read       = nfs_file_read,
> >        .aio_write      = nfs_file_write,
> > -#ifdef CONFIG_MMU
> >        .mmap           = nfs_file_mmap,
> > -#else
> > -       .mmap           = generic_file_mmap,
> > -#endif
> >        .open           = nfs_file_open,
> >        .flush          = nfs_file_flush,
> >        .release        = nfs_file_release,
> > @@ -294,6 +290,7 @@ nfs_file_splice_read(struct file *filp, loff_t *ppos,
> >        return res;
> >  }
> >
> > +#ifdef CONFIG_MMU
> >  static int
> >  nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
> >  {
> > @@ -312,6 +309,17 @@ nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
> >        }
> >        return status;
> >  }
> > +#else
> > +static int
> > +nfs_file_mmap(struct file *file, struct vm_area_struct *vma)
> > +{
> > +       /* Kill warning: 'nfs_file_vm_ops' defined but not used */
> > +       struct vm_operations_struct *vm_ops;
> > +       vm_ops = &nfs_file_vm_ops;
> > +
> > +       return generic_file_mmap(file, vma);
> > +}
> > +#endif
> >
> >  /*
> >  * Flush any dirty pages for this process, and check for write errors.
> > --
> > 1.5.6.3
> >
-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@netapp.com
www.netapp.com

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

* Re: [PATCH] nfs client: kill compile warning on NOMMU machine
  2009-02-05 13:28   ` Trond Myklebust
@ 2009-02-05 15:37     ` Trond Myklebust
  2009-02-05 16:24       ` Bryan Wu
  0 siblings, 1 reply; 5+ messages in thread
From: Trond Myklebust @ 2009-02-05 15:37 UTC (permalink / raw)
  To: Bryan Wu; +Cc: linux-nfs, linux-kernel

On Thu, 2009-02-05 at 08:28 -0500, Trond Myklebust wrote:
> On Thu, 2009-02-05 at 17:02 +0800, Bryan Wu wrote:
> > Hi guys,
> > 
> > Is it possible to merge this patch?
> 
> NACK. Although it would be nice to get rid of the warning, this patch
> does so at the price of even further obfuscating the fact that we're
> just returning -ENOSYS in the no MMU case, and by causing
> nfs_file_vm_ops (which is currently optimised away) to be compiled in
> for no good reason at all.
> 
> Trond

How about the following compromise: we get rid of the special casing
altogether and just always call generic_file_mmap. If the noMMU folks
want further optimisations, then they can inline generic_file_mmap(), so
that the compiler always takes the 'generic_file_mmap() failed' path.

Cheers
  Trond
------------------------------------------------------------
From: Trond Myklebust <Trond.Myklebust@netapp.com>
Date: Thu, 5 Feb 2009 10:23:36 -0500
NFS: Kill the "defined but not used" compile error on nommu machines

Bryan Wu reports that when compiling NFS on nommu machines he gets a
"defined but not used" error on nfs_file_mmap().

The easiest fix is simply to get rid of the special casing in NFS, and
just always call generic_file_mmap() to set up the file.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---

 fs/nfs/file.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)


diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 404c19c..1eab9c9 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -64,11 +64,7 @@ const struct file_operations nfs_file_operations = {
 	.write		= do_sync_write,
 	.aio_read	= nfs_file_read,
 	.aio_write	= nfs_file_write,
-#ifdef CONFIG_MMU
 	.mmap		= nfs_file_mmap,
-#else
-	.mmap		= generic_file_mmap,
-#endif
 	.open		= nfs_file_open,
 	.flush		= nfs_file_flush,
 	.release	= nfs_file_release,
@@ -304,11 +300,13 @@ nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
 	dprintk("NFS: mmap(%s/%s)\n",
 		dentry->d_parent->d_name.name, dentry->d_name.name);
 
-	status = nfs_revalidate_mapping(inode, file->f_mapping);
+	/* Note: generic_file_mmap() returns ENOSYS on nommu systems
+	 *       so we call that before revalidating the mapping
+	 */
+	status = generic_file_mmap(file, vma);
 	if (!status) {
 		vma->vm_ops = &nfs_file_vm_ops;
-		vma->vm_flags |= VM_CAN_NONLINEAR;
-		file_accessed(file);
+		status = nfs_revalidate_mapping(inode, file->f_mapping);
 	}
 	return status;
 }

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@netapp.com
www.netapp.com

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

* Re: [PATCH] nfs client: kill compile warning on NOMMU machine
  2009-02-05 15:37     ` Trond Myklebust
@ 2009-02-05 16:24       ` Bryan Wu
  0 siblings, 0 replies; 5+ messages in thread
From: Bryan Wu @ 2009-02-05 16:24 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs, linux-kernel

On Thu, Feb 5, 2009 at 11:37 PM, Trond Myklebust
<Trond.Myklebust@netapp.com> wrote:
> On Thu, 2009-02-05 at 08:28 -0500, Trond Myklebust wrote:
>> On Thu, 2009-02-05 at 17:02 +0800, Bryan Wu wrote:
>> > Hi guys,
>> >
>> > Is it possible to merge this patch?
>>
>> NACK. Although it would be nice to get rid of the warning, this patch
>> does so at the price of even further obfuscating the fact that we're
>> just returning -ENOSYS in the no MMU case, and by causing
>> nfs_file_vm_ops (which is currently optimised away) to be compiled in
>> for no good reason at all.
>>
>> Trond
>
> How about the following compromise: we get rid of the special casing
> altogether and just always call generic_file_mmap. If the noMMU folks
> want further optimisations, then they can inline generic_file_mmap(), so
> that the compiler always takes the 'generic_file_mmap() failed' path.
>

Beautiful, I do love this one and would like to test it on our platform.

Thanks
-Bryan

> Cheers
>  Trond
> ------------------------------------------------------------
> From: Trond Myklebust <Trond.Myklebust@netapp.com>
> Date: Thu, 5 Feb 2009 10:23:36 -0500
> NFS: Kill the "defined but not used" compile error on nommu machines
>
> Bryan Wu reports that when compiling NFS on nommu machines he gets a
> "defined but not used" error on nfs_file_mmap().
>
> The easiest fix is simply to get rid of the special casing in NFS, and
> just always call generic_file_mmap() to set up the file.
>
> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
> ---
>
>  fs/nfs/file.c |   12 +++++-------
>  1 files changed, 5 insertions(+), 7 deletions(-)
>
>
> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
> index 404c19c..1eab9c9 100644
> --- a/fs/nfs/file.c
> +++ b/fs/nfs/file.c
> @@ -64,11 +64,7 @@ const struct file_operations nfs_file_operations = {
>        .write          = do_sync_write,
>        .aio_read       = nfs_file_read,
>        .aio_write      = nfs_file_write,
> -#ifdef CONFIG_MMU
>        .mmap           = nfs_file_mmap,
> -#else
> -       .mmap           = generic_file_mmap,
> -#endif
>        .open           = nfs_file_open,
>        .flush          = nfs_file_flush,
>        .release        = nfs_file_release,
> @@ -304,11 +300,13 @@ nfs_file_mmap(struct file * file, struct vm_area_struct * vma)
>        dprintk("NFS: mmap(%s/%s)\n",
>                dentry->d_parent->d_name.name, dentry->d_name.name);
>
> -       status = nfs_revalidate_mapping(inode, file->f_mapping);
> +       /* Note: generic_file_mmap() returns ENOSYS on nommu systems
> +        *       so we call that before revalidating the mapping
> +        */
> +       status = generic_file_mmap(file, vma);
>        if (!status) {
>                vma->vm_ops = &nfs_file_vm_ops;
> -               vma->vm_flags |= VM_CAN_NONLINEAR;
> -               file_accessed(file);
> +               status = nfs_revalidate_mapping(inode, file->f_mapping);
>        }
>        return status;
>  }
>
> --
> Trond Myklebust
> Linux NFS client maintainer
>
> NetApp
> Trond.Myklebust@netapp.com
> www.netapp.com
>

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

end of thread, other threads:[~2009-02-05 16:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-06  9:15 [PATCH] nfs client: kill compile warning on NOMMU machine Bryan Wu
2009-02-05  9:02 ` Bryan Wu
2009-02-05 13:28   ` Trond Myklebust
2009-02-05 15:37     ` Trond Myklebust
2009-02-05 16:24       ` Bryan Wu

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).