aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/fuse/dir.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index a75159846a75..b7989f2ab4c4 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1068,6 +1068,8 @@ static int fuse_access(struct inode *inode, int mask)
1068 struct fuse_access_in inarg; 1068 struct fuse_access_in inarg;
1069 int err; 1069 int err;
1070 1070
1071 BUG_ON(mask & MAY_NOT_BLOCK);
1072
1071 if (fc->no_access) 1073 if (fc->no_access)
1072 return 0; 1074 return 0;
1073 1075
@@ -1155,9 +1157,6 @@ static int fuse_permission(struct inode *inode, int mask)
1155 noticed immediately, only after the attribute 1157 noticed immediately, only after the attribute
1156 timeout has expired */ 1158 timeout has expired */
1157 } else if (mask & (MAY_ACCESS | MAY_CHDIR)) { 1159 } else if (mask & (MAY_ACCESS | MAY_CHDIR)) {
1158 if (mask & MAY_NOT_BLOCK)
1159 return -ECHILD;
1160
1161 err = fuse_access(inode, mask); 1160 err = fuse_access(inode, mask);
1162 } else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) { 1161 } else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) {
1163 if (!(inode->i_mode & S_IXUGO)) { 1162 if (!(inode->i_mode & S_IXUGO)) {