[2/3] fs/9p: fix typo in comparison logic for cache mode

Message ID 20230716-fixes-overly-restrictive-mmap-v1-2-0683b283b932@kernel.org
State New
Headers
Series fs/9p: fix mmap regression |

Commit Message

Eric Van Hensbergen July 17, 2023, 4:29 p.m. UTC
  There appears to be a typo in the comparison statement for the logic
which sets a file's cache mode based on mount flags.

Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
---
 fs/9p/fid.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Dominique Martinet July 18, 2023, 2:48 a.m. UTC | #1
Eric Van Hensbergen wrote on Mon, Jul 17, 2023 at 04:29:01PM +0000:
> There appears to be a typo in the comparison statement for the logic
> which sets a file's cache mode based on mount flags.

Shouldn't break anything, but good fix nevertheless, thanks!

Reviewed-by: Dominique Martinet <asmadeus@codewreck.org>


> 
> Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
> ---
>  fs/9p/fid.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/9p/fid.h b/fs/9p/fid.h
> index 0c51889a60b33..297c2c377e3dd 100644
> --- a/fs/9p/fid.h
> +++ b/fs/9p/fid.h
> @@ -57,7 +57,7 @@ static inline void v9fs_fid_add_modes(struct p9_fid *fid, int s_flags,
>  	   (s_flags & V9FS_DIRECT_IO) || (f_flags & O_DIRECT)) {
>  		fid->mode |= P9L_DIRECT; /* no read or write cache */
>  	} else if ((!(s_cache & CACHE_WRITEBACK)) ||
> -				(f_flags & O_DSYNC) | (s_flags & V9FS_SYNC)) {
> +				(f_flags & O_DSYNC) || (s_flags & V9FS_SYNC)) {
>  		fid->mode |= P9L_NOWRITECACHE;
>  	}
>  }
>
  
Christian Schoenebeck July 18, 2023, 9:34 a.m. UTC | #2
On Tuesday, July 18, 2023 4:48:53 AM CEST Dominique Martinet wrote:
> Eric Van Hensbergen wrote on Mon, Jul 17, 2023 at 04:29:01PM +0000:
> > There appears to be a typo in the comparison statement for the logic
> > which sets a file's cache mode based on mount flags.
> 
> Shouldn't break anything, but good fix nevertheless, thanks!
> 
> Reviewed-by: Dominique Martinet <asmadeus@codewreck.org>

Right, at least AFAICS I would not expect any visible behaviour change by this
patch at all. So this patch is probably just a formal fix.

BTW there are a bunch of unnecessary braces in this function:

  (!s_cache) -> !s_cache

  (fid->qid.version == 0) -> fid->qid.version == 0

  (!(s_cache & CACHE_WRITEBACK)) -> !(s_cache & CACHE_WRITEBACK)

These could be wiped in a separate patch as well. Anyway ...

Reviewed-by: Christian Schoenebeck <linux_oss@crudebyte.com>

> > 
> > Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
> > ---
> >  fs/9p/fid.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/fs/9p/fid.h b/fs/9p/fid.h
> > index 0c51889a60b33..297c2c377e3dd 100644
> > --- a/fs/9p/fid.h
> > +++ b/fs/9p/fid.h
> > @@ -57,7 +57,7 @@ static inline void v9fs_fid_add_modes(struct p9_fid *fid, int s_flags,
> >  	   (s_flags & V9FS_DIRECT_IO) || (f_flags & O_DIRECT)) {
> >  		fid->mode |= P9L_DIRECT; /* no read or write cache */
> >  	} else if ((!(s_cache & CACHE_WRITEBACK)) ||
> > -				(f_flags & O_DSYNC) | (s_flags & V9FS_SYNC)) {
> > +				(f_flags & O_DSYNC) || (s_flags & V9FS_SYNC)) {
> >  		fid->mode |= P9L_NOWRITECACHE;
> >  	}
> >  }
> > 
> 
>
  

Patch

diff --git a/fs/9p/fid.h b/fs/9p/fid.h
index 0c51889a60b33..297c2c377e3dd 100644
--- a/fs/9p/fid.h
+++ b/fs/9p/fid.h
@@ -57,7 +57,7 @@  static inline void v9fs_fid_add_modes(struct p9_fid *fid, int s_flags,
 	   (s_flags & V9FS_DIRECT_IO) || (f_flags & O_DIRECT)) {
 		fid->mode |= P9L_DIRECT; /* no read or write cache */
 	} else if ((!(s_cache & CACHE_WRITEBACK)) ||
-				(f_flags & O_DSYNC) | (s_flags & V9FS_SYNC)) {
+				(f_flags & O_DSYNC) || (s_flags & V9FS_SYNC)) {
 		fid->mode |= P9L_NOWRITECACHE;
 	}
 }