diff options
author | Dave Hansen <haveblue@us.ibm.com> | 2007-10-16 23:31:14 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-17 08:43:05 -0700 |
commit | c7eb26678e59f16f4e84f1176d187cd21a27414d (patch) | |
tree | bf58c7f877846d204d417021b8608e1446bc3ea8 /fs/namei.c | |
parent | b41572e929221b0d87f529106cdf12185ee84bca (diff) | |
download | op-kernel-dev-c7eb26678e59f16f4e84f1176d187cd21a27414d.zip op-kernel-dev-c7eb26678e59f16f4e84f1176d187cd21a27414d.tar.gz |
r/o bind mounts: give permission() a local 'mnt' variable
First of all, this makes the structure jumping look a little bit cleaner. So,
this stands alone as a tiny cleanup. But, we also need 'mnt' by itself a few
more times later in this series, so this isn't _just_ a cleanup.
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -228,6 +228,10 @@ int generic_permission(struct inode *inode, int mask, int permission(struct inode *inode, int mask, struct nameidata *nd) { int retval, submask; + struct vfsmount *mnt = NULL; + + if (nd) + mnt = nd->mnt; if (mask & MAY_WRITE) { umode_t mode = inode->i_mode; @@ -251,7 +255,7 @@ int permission(struct inode *inode, int mask, struct nameidata *nd) * MAY_EXEC on regular files is denied if the fs is mounted * with the "noexec" flag. */ - if (nd && nd->mnt && (nd->mnt->mnt_flags & MNT_NOEXEC)) + if (mnt && (mnt->mnt_flags & MNT_NOEXEC)) return -EACCES; } |