All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
To: roel <roel.kluin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org,
	Steve French <sfrench-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>,
	fuse-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	Trond Myklebust
	<Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: ceph, cifs, nfs, fuse: boolean and / or confusion
Date: Mon, 12 Dec 2011 15:28:56 -0800	[thread overview]
Message-ID: <20111212152856.871a8301.akpm@linux-foundation.org> (raw)
In-Reply-To: <4EE688FC.8090606-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On Tue, 13 Dec 2011 00:06:36 +0100
roel <roel.kluin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:

> The test not SEEK_CUR or not SEEK_SET always evaluates to true
> 
> Signed-off-by: Roel Kluin <roel.kluin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>  fs/ceph/file.c   |    2 +-
>  fs/cifs/cifsfs.c |    2 +-
>  fs/fuse/file.c   |    2 +-
>  fs/nfs/file.c    |    2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/ceph/file.c b/fs/ceph/file.c
> index ce549d3..4d61a66 100644
> --- a/fs/ceph/file.c
> +++ b/fs/ceph/file.c
> @@ -797,7 +797,7 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int origin)
>  
>  	mutex_lock(&inode->i_mutex);
>  	__ceph_do_pending_vmtruncate(inode);
> -	if (origin != SEEK_CUR || origin != SEEK_SET) {
> +	if (origin != SEEK_CUR && origin != SEEK_SET) {
>  		ret = ceph_do_getattr(inode, CEPH_STAT_CAP_SIZE);
>  		if (ret < 0) {
>  			offset = ret;
> diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
> index 8f1fe32..f8351c2 100644
> --- a/fs/cifs/cifsfs.c
> +++ b/fs/cifs/cifsfs.c
> @@ -703,7 +703,7 @@ static loff_t cifs_llseek(struct file *file, loff_t offset, int origin)
>  	 * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
>  	 * the cached file length
>  	 */
> -	if (origin != SEEK_SET || origin != SEEK_CUR) {
> +	if (origin != SEEK_SET && origin != SEEK_CUR) {
>  		int rc;
>  		struct inode *inode = file->f_path.dentry->d_inode;
>  
> diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> index 594f07a..19029e9 100644
> --- a/fs/fuse/file.c
> +++ b/fs/fuse/file.c
> @@ -1556,7 +1556,7 @@ static loff_t fuse_file_llseek(struct file *file, loff_t offset, int origin)
>  	struct inode *inode = file->f_path.dentry->d_inode;
>  
>  	mutex_lock(&inode->i_mutex);
> -	if (origin != SEEK_CUR || origin != SEEK_SET) {
> +	if (origin != SEEK_CUR && origin != SEEK_SET) {
>  		retval = fuse_update_attributes(inode, NULL, file, NULL);
>  		if (retval)
>  			goto exit;
> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
> index eca56d4..606ef0f 100644
> --- a/fs/nfs/file.c
> +++ b/fs/nfs/file.c
> @@ -147,7 +147,7 @@ static loff_t nfs_file_llseek(struct file *filp, loff_t offset, int origin)
>  	 * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
>  	 * the cached file length
>  	 */
> -	if (origin != SEEK_SET || origin != SEEK_CUR) {
> +	if (origin != SEEK_SET && origin != SEEK_CUR) {
>  		struct inode *inode = filp->f_mapping->host;
>  
>  		int retval = nfs_revalidate_file_size(inode, filp);

This fix will cause changed runtime behaviour, such as NFS no longer
running nfs_revalidate_file_size() for all seek modes.

So I think it should be reviewed, tested and merged by the various fs
maintainers.  Splitting it into four patches would help that process,
but they could independently treat it as a bug report, too.

Meanwhile, I'll put this in my tree so I can keep an eye on people ;)

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@linux-foundation.org>
To: roel <roel.kluin@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	sage@newdream.net, Steve French <sfrench@samba.org>,
	linux-cifs@vger.kernel.org, Miklos Szeredi <miklos@szeredi.hu>,
	fuse-devel@lists.sourceforge.net,
	Trond Myklebust <Trond.Myklebust@netapp.com>,
	linux-nfs@vger.kernel.org
Subject: Re: ceph, cifs, nfs, fuse: boolean and / or confusion
Date: Mon, 12 Dec 2011 15:28:56 -0800	[thread overview]
Message-ID: <20111212152856.871a8301.akpm@linux-foundation.org> (raw)
In-Reply-To: <4EE688FC.8090606@gmail.com>

On Tue, 13 Dec 2011 00:06:36 +0100
roel <roel.kluin@gmail.com> wrote:

> The test not SEEK_CUR or not SEEK_SET always evaluates to true
> 
> Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
> ---
>  fs/ceph/file.c   |    2 +-
>  fs/cifs/cifsfs.c |    2 +-
>  fs/fuse/file.c   |    2 +-
>  fs/nfs/file.c    |    2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/ceph/file.c b/fs/ceph/file.c
> index ce549d3..4d61a66 100644
> --- a/fs/ceph/file.c
> +++ b/fs/ceph/file.c
> @@ -797,7 +797,7 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int origin)
>  
>  	mutex_lock(&inode->i_mutex);
>  	__ceph_do_pending_vmtruncate(inode);
> -	if (origin != SEEK_CUR || origin != SEEK_SET) {
> +	if (origin != SEEK_CUR && origin != SEEK_SET) {
>  		ret = ceph_do_getattr(inode, CEPH_STAT_CAP_SIZE);
>  		if (ret < 0) {
>  			offset = ret;
> diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
> index 8f1fe32..f8351c2 100644
> --- a/fs/cifs/cifsfs.c
> +++ b/fs/cifs/cifsfs.c
> @@ -703,7 +703,7 @@ static loff_t cifs_llseek(struct file *file, loff_t offset, int origin)
>  	 * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
>  	 * the cached file length
>  	 */
> -	if (origin != SEEK_SET || origin != SEEK_CUR) {
> +	if (origin != SEEK_SET && origin != SEEK_CUR) {
>  		int rc;
>  		struct inode *inode = file->f_path.dentry->d_inode;
>  
> diff --git a/fs/fuse/file.c b/fs/fuse/file.c
> index 594f07a..19029e9 100644
> --- a/fs/fuse/file.c
> +++ b/fs/fuse/file.c
> @@ -1556,7 +1556,7 @@ static loff_t fuse_file_llseek(struct file *file, loff_t offset, int origin)
>  	struct inode *inode = file->f_path.dentry->d_inode;
>  
>  	mutex_lock(&inode->i_mutex);
> -	if (origin != SEEK_CUR || origin != SEEK_SET) {
> +	if (origin != SEEK_CUR && origin != SEEK_SET) {
>  		retval = fuse_update_attributes(inode, NULL, file, NULL);
>  		if (retval)
>  			goto exit;
> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
> index eca56d4..606ef0f 100644
> --- a/fs/nfs/file.c
> +++ b/fs/nfs/file.c
> @@ -147,7 +147,7 @@ static loff_t nfs_file_llseek(struct file *filp, loff_t offset, int origin)
>  	 * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
>  	 * the cached file length
>  	 */
> -	if (origin != SEEK_SET || origin != SEEK_CUR) {
> +	if (origin != SEEK_SET && origin != SEEK_CUR) {
>  		struct inode *inode = filp->f_mapping->host;
>  
>  		int retval = nfs_revalidate_file_size(inode, filp);

This fix will cause changed runtime behaviour, such as NFS no longer
running nfs_revalidate_file_size() for all seek modes.

So I think it should be reviewed, tested and merged by the various fs
maintainers.  Splitting it into four patches would help that process,
but they could independently treat it as a bug report, too.

Meanwhile, I'll put this in my tree so I can keep an eye on people ;)

  parent reply	other threads:[~2011-12-12 23:28 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-12 23:06 ceph, cifs, nfs, fuse: boolean and / or confusion roel
2011-12-12 23:06 ` roel
     [not found] ` <4EE688FC.8090606-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-12-12 23:28   ` Andrew Morton [this message]
2011-12-12 23:28     ` Andrew Morton
     [not found]     ` <20111212152856.871a8301.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-12-12 23:39       ` Trond Myklebust
2011-12-12 23:39         ` Trond Myklebust
     [not found]         ` <1323733153.13849.17.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2011-12-12 23:45           ` Trond Myklebust
2011-12-12 23:45             ` Trond Myklebust
     [not found]             ` <1323733511.13849.19.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2011-12-12 23:54               ` Andrew Morton
2011-12-12 23:54                 ` Andrew Morton
     [not found]                 ` <20111212155423.24543d6a.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-12-13  5:29                   ` Sage Weil
2011-12-13  5:29                     ` Sage Weil
     [not found]                     ` <Pine.LNX.4.64.1112122123040.17811-vIokxiIdD2AQNTJnQDzGJqxOck334EZe@public.gmane.org>
2011-12-13 11:25                       ` Miklos Szeredi
2011-12-13 11:25                         ` Miklos Szeredi
2011-12-13 14:34           ` Jeff Layton
2011-12-13 14:34             ` Jeff Layton
2011-12-12 23:44 ` drivers/crypto/picoxcell_crypto.c: " Joe Perches
2011-12-12 23:55   ` drivers/media/video/s5p-fimc/fimc-capture.c: " Joe Perches
2011-12-13 14:26     ` Sylwester Nawrocki
2011-12-13  9:50   ` drivers/crypto/picoxcell_crypto.c: " Jamie Iles
2011-12-13  0:02 ` drivers/scsi/bfa/bfa_fcpim.c: " Joe Perches
2011-12-13  0:45   ` Jing Huang
2011-12-13  0:45     ` Jing Huang
2011-12-13  0:14 ` drivers/dma/sirf-dma.c: " Joe Perches

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=20111212152856.871a8301.akpm@linux-foundation.org \
    --to=akpm-de/tnxtf+jlsfhdxvbkv3wd2fqjk+8+b@public.gmane.org \
    --cc=Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org \
    --cc=fuse-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org \
    --cc=roel.kluin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=sage-BnTBU8nroG7k1uMJSBkQmQ@public.gmane.org \
    --cc=sfrench-eUNUBHrolfbYtjvyW6yDsg@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.