diff options
Diffstat (limited to 'fs/fuse')
| -rw-r--r-- | fs/fuse/dir.c | 6 | ||||
| -rw-r--r-- | fs/fuse/file.c | 2 | ||||
| -rw-r--r-- | fs/fuse/inode.c | 2 |
3 files changed, 5 insertions, 5 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index 51d0035ff07e..fd03330cadeb 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c | |||
| @@ -898,7 +898,7 @@ static int fuse_access(struct inode *inode, int mask) | |||
| 898 | return PTR_ERR(req); | 898 | return PTR_ERR(req); |
| 899 | 899 | ||
| 900 | memset(&inarg, 0, sizeof(inarg)); | 900 | memset(&inarg, 0, sizeof(inarg)); |
| 901 | inarg.mask = mask; | 901 | inarg.mask = mask & (MAY_READ | MAY_WRITE | MAY_EXEC); |
| 902 | req->in.h.opcode = FUSE_ACCESS; | 902 | req->in.h.opcode = FUSE_ACCESS; |
| 903 | req->in.h.nodeid = get_node_id(inode); | 903 | req->in.h.nodeid = get_node_id(inode); |
| 904 | req->in.numargs = 1; | 904 | req->in.numargs = 1; |
| @@ -927,7 +927,7 @@ static int fuse_access(struct inode *inode, int mask) | |||
| 927 | * access request is sent. Execute permission is still checked | 927 | * access request is sent. Execute permission is still checked |
| 928 | * locally based on file mode. | 928 | * locally based on file mode. |
| 929 | */ | 929 | */ |
| 930 | static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd) | 930 | static int fuse_permission(struct inode *inode, int mask) |
| 931 | { | 931 | { |
| 932 | struct fuse_conn *fc = get_fuse_conn(inode); | 932 | struct fuse_conn *fc = get_fuse_conn(inode); |
| 933 | bool refreshed = false; | 933 | bool refreshed = false; |
| @@ -962,7 +962,7 @@ static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd) | |||
| 962 | exist. So if permissions are revoked this won't be | 962 | exist. So if permissions are revoked this won't be |
| 963 | noticed immediately, only after the attribute | 963 | noticed immediately, only after the attribute |
| 964 | timeout has expired */ | 964 | timeout has expired */ |
| 965 | } else if (nd && (nd->flags & (LOOKUP_ACCESS | LOOKUP_CHDIR))) { | 965 | } else if (mask & MAY_ACCESS) { |
| 966 | err = fuse_access(inode, mask); | 966 | err = fuse_access(inode, mask); |
| 967 | } else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) { | 967 | } else if ((mask & MAY_EXEC) && S_ISREG(inode->i_mode)) { |
| 968 | if (!(inode->i_mode & S_IXUGO)) { | 968 | if (!(inode->i_mode & S_IXUGO)) { |
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 67ff2c6a8f63..2bada6bbc317 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c | |||
| @@ -893,7 +893,7 @@ static ssize_t fuse_file_aio_write(struct kiocb *iocb, const struct iovec *iov, | |||
| 893 | if (count == 0) | 893 | if (count == 0) |
| 894 | goto out; | 894 | goto out; |
| 895 | 895 | ||
| 896 | err = remove_suid(file->f_path.dentry); | 896 | err = file_remove_suid(file); |
| 897 | if (err) | 897 | if (err) |
| 898 | goto out; | 898 | goto out; |
| 899 | 899 | ||
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 7d2f7d6e22e2..d2249f174e20 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c | |||
| @@ -956,7 +956,7 @@ static inline void unregister_fuseblk(void) | |||
| 956 | } | 956 | } |
| 957 | #endif | 957 | #endif |
| 958 | 958 | ||
| 959 | static void fuse_inode_init_once(struct kmem_cache *cachep, void *foo) | 959 | static void fuse_inode_init_once(void *foo) |
| 960 | { | 960 | { |
| 961 | struct inode * inode = foo; | 961 | struct inode * inode = foo; |
| 962 | 962 | ||
