summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/vfs.c
diff options
context:
space:
mode:
authorMimi Zohar2010-01-20 21:35:41 +0100
committerAl Viro2010-02-07 09:06:22 +0100
commit8eb988c70e7709b7bd1a69f0ec53d19ac20dea84 (patch)
tree6d0283a9fbca5cc104f591b9cc628edf39bc0b05 /fs/nfsd/vfs.c
parentTake ima_path_check() in nfsd past dentry_open() in nfsd_open() (diff)
downloadkernel-qcow2-linux-8eb988c70e7709b7bd1a69f0ec53d19ac20dea84.tar.gz
kernel-qcow2-linux-8eb988c70e7709b7bd1a69f0ec53d19ac20dea84.tar.xz
kernel-qcow2-linux-8eb988c70e7709b7bd1a69f0ec53d19ac20dea84.zip
fix ima breakage
The "Untangling ima mess, part 2 with counters" patch messed up the counters. Based on conversations with Al Viro, this patch streamlines ima_path_check() by removing the counter maintaince. The counters are now updated independently, from measuring the file, in __dentry_open() and alloc_file() by calling ima_counts_get(). ima_path_check() is called from nfsd and do_filp_open(). It also did not measure all files that should have been measured. Reason: ima_path_check() got bogus value passed as mask. [AV: mea culpa] [AV: add missing nfsd bits] Signed-off-by: Mimi Zohar <zohar@us.ibm.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nfsd/vfs.c')
-rw-r--r--fs/nfsd/vfs.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 325959e264ce..32477e3a645c 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -752,8 +752,7 @@ nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, int type,
flags, current_cred());
if (IS_ERR(*filp))
host_err = PTR_ERR(*filp);
- host_err = ima_path_check(&(*filp)->f_path,
- access & (MAY_READ | MAY_WRITE | MAY_EXEC));
+ host_err = ima_path_check(*filp, access);
out_nfserr:
err = nfserrno(host_err);
out: