diff options
Diffstat (limited to 'fs/file_table.c')
-rw-r--r-- | fs/file_table.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/file_table.c b/fs/file_table.c index 0afacf654398..b98404b54383 100644 --- a/fs/file_table.c +++ b/fs/file_table.c | |||
@@ -186,10 +186,8 @@ struct file *alloc_file(struct path *path, fmode_t mode, | |||
186 | * that we can do debugging checks at __fput() | 186 | * that we can do debugging checks at __fput() |
187 | */ | 187 | */ |
188 | if ((mode & FMODE_WRITE) && !special_file(path->dentry->d_inode->i_mode)) { | 188 | if ((mode & FMODE_WRITE) && !special_file(path->dentry->d_inode->i_mode)) { |
189 | int error = 0; | ||
190 | file_take_write(file); | 189 | file_take_write(file); |
191 | error = mnt_clone_write(path->mnt); | 190 | WARN_ON(mnt_clone_write(path->mnt)); |
192 | WARN_ON(error); | ||
193 | } | 191 | } |
194 | ima_counts_get(file); | 192 | ima_counts_get(file); |
195 | return file; | 193 | return file; |
@@ -255,6 +253,7 @@ void __fput(struct file *file) | |||
255 | if (file->f_op && file->f_op->release) | 253 | if (file->f_op && file->f_op->release) |
256 | file->f_op->release(inode, file); | 254 | file->f_op->release(inode, file); |
257 | security_file_free(file); | 255 | security_file_free(file); |
256 | ima_file_free(file); | ||
258 | if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL)) | 257 | if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL)) |
259 | cdev_put(inode->i_cdev); | 258 | cdev_put(inode->i_cdev); |
260 | fops_put(file->f_op); | 259 | fops_put(file->f_op); |