[patch] nfs: fix permission mask

From: Miklos Szeredi
Date: Mon Jul 21 2008 - 07:38:47 EST


From: Miklos Szeredi <mszeredi@xxxxxxx>

Handle auxiliary mask bits in nfs_permission() properly.

Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxx>
---
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)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/