Untangling ima mess, part 1: alloc_file() There are 2 groups of alloc_file() callers: * ones that are followed by ima_counts_get * ones giving non-regular files So let's pull that ima_counts_get() into alloc_file(); it's a no-op in case of non-regular files. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/fs/file_table.c b/fs/file_table.c index 361d76b..17a55b8 100644 --- a/fs/file_table.c +++ b/fs/file_table.c
@@ -21,6 +21,7 @@ #include <linux/fsnotify.h> #include <linux/sysctl.h> #include <linux/percpu_counter.h> +#include <linux/ima.h> #include <asm/atomic.h> @@ -190,6 +191,7 @@ error = mnt_clone_write(path->mnt); WARN_ON(error); } + ima_counts_get(file); return file; }
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 6bd4152..a0bbd3d 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c
@@ -30,7 +30,6 @@ #include <linux/dnotify.h> #include <linux/statfs.h> #include <linux/security.h> -#include <linux/ima.h> #include <linux/magic.h> #include <asm/uaccess.h> @@ -971,7 +970,6 @@ &hugetlbfs_file_operations); if (!file) goto out_dentry; /* inode is already attached */ - ima_counts_get(file); return file;
diff --git a/ipc/shm.c b/ipc/shm.c index 16e3923..02620fa 100644 --- a/ipc/shm.c +++ b/ipc/shm.c
@@ -39,7 +39,6 @@ #include <linux/nsproxy.h> #include <linux/mount.h> #include <linux/ipc_namespace.h> -#include <linux/ima.h> #include <asm/uaccess.h> @@ -895,7 +894,6 @@ &shm_file_operations); if (!file) goto out_free; - ima_counts_get(file); file->private_data = sfd; file->f_mapping = shp->shm_file->f_mapping;
diff --git a/mm/shmem.c b/mm/shmem.c index d2ec7f0..adf8033 100644 --- a/mm/shmem.c +++ b/mm/shmem.c
@@ -29,7 +29,6 @@ #include <linux/mm.h> #include <linux/module.h> #include <linux/swap.h> -#include <linux/ima.h> static struct vfsmount *shm_mnt; @@ -2669,7 +2668,6 @@ if (!file) goto put_dentry; - ima_counts_get(file); return file; put_dentry: