2008-07-21 11:38:45

by Miklos Szeredi

[permalink] [raw]
Subject: [patch] nfs: fix permission mask

From: Miklos Szeredi <[email protected]>

Handle auxiliary mask bits in nfs_permission() properly.

Signed-off-by: Miklos Szeredi <[email protected]>
---
fs/nfs/dir.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/fs/nfs/dir.c
===================================================================
--- linux-2.6.orig/fs/nfs/dir.c 2008-07-21 09:46:07.000000000 +0200
+++ linux-2.6/fs/nfs/dir.c 2008-07-21 13:09:28.000000000 +0200
@@ -1884,7 +1884,7 @@ static int nfs_do_access(struct inode *i
return status;
nfs_access_add_cache(inode, &cache);
out:
- if ((cache.mask & mask) == mask)
+ if ((mask & ~cache.mask & (MAY_READ | MAY_WRITE | MAY_EXEC)) == 0)
return 0;
return -EACCES;
}
@@ -1914,7 +1914,7 @@ int nfs_permission(struct inode *inode,

nfs_inc_stats(inode, NFSIOS_VFSACCESS);

- if (mask == 0)
+ if ((mask & (MAY_READ | MAY_WRITE | MAY_EXEC)) == 0)
goto out;
/* Is this sys_access() ? */
if (mask & MAY_ACCESS)


2008-07-21 13:27:06

by Al Viro

[permalink] [raw]
Subject: Re: [patch] nfs: fix permission mask

On Mon, Jul 21, 2008 at 01:38:34PM +0200, Miklos Szeredi wrote:
> From: Miklos Szeredi <[email protected]>
>
> Handle auxiliary mask bits in nfs_permission() properly.
>
> Signed-off-by: Miklos Szeredi <[email protected]>

Argh... Applied, thanks. Hrm... On the next rebase I'd better move
it next to the patch introducing the breakage in question. Or fold
it in, if you don't mind, with commit messages merged...