diff options
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/namei.c b/fs/namei.c index a29bb0f40ed5..464eeccb675b 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -228,6 +228,10 @@ int generic_permission(struct inode *inode, int mask, | |||
228 | int permission(struct inode *inode, int mask, struct nameidata *nd) | 228 | int permission(struct inode *inode, int mask, struct nameidata *nd) |
229 | { | 229 | { |
230 | int retval, submask; | 230 | int retval, submask; |
231 | struct vfsmount *mnt = NULL; | ||
232 | |||
233 | if (nd) | ||
234 | mnt = nd->mnt; | ||
231 | 235 | ||
232 | if (mask & MAY_WRITE) { | 236 | if (mask & MAY_WRITE) { |
233 | umode_t mode = inode->i_mode; | 237 | umode_t mode = inode->i_mode; |
@@ -251,7 +255,7 @@ int permission(struct inode *inode, int mask, struct nameidata *nd) | |||
251 | * MAY_EXEC on regular files is denied if the fs is mounted | 255 | * MAY_EXEC on regular files is denied if the fs is mounted |
252 | * with the "noexec" flag. | 256 | * with the "noexec" flag. |
253 | */ | 257 | */ |
254 | if (nd && nd->mnt && (nd->mnt->mnt_flags & MNT_NOEXEC)) | 258 | if (mnt && (mnt->mnt_flags & MNT_NOEXEC)) |
255 | return -EACCES; | 259 | return -EACCES; |
256 | } | 260 | } |
257 | 261 | ||