fput_filp is supposed to be used when the filp was not used. But in the ifndef CONFIG_MMU case shmem_setup_file could call this one an initialized filp. It should be using fput() instead. Since the fput() will dec the ima counts we also need to move the ima hook to make sure that is set up before the fput(). Signed-off-by: Eric Paris <eparis@xxxxxxxxxx> Acked-by: Miklos Szeredi <miklos@xxxxxxxxxx> --- mm/shmem.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mm/shmem.c b/mm/shmem.c index 356dd99..e7f8968 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2656,12 +2656,15 @@ struct file *shmem_file_setup(const char *name, loff_t size, unsigned long flags init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ, &shmem_file_operations); + ima_counts_get(file); + #ifndef CONFIG_MMU error = ramfs_nommu_expand_for_mapping(inode, size); - if (error) - goto close_file; + if (error) { + fput(file); + return error; + } #endif - ima_counts_get(file); return file; close_file: -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html