]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - fs/ubifs/super.c
Merge tag 'selinux-pr-20190917' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / fs / ubifs / super.c
index 8c1d571334bc82ff46e3d5da2e934df523c4a6c7..7d4547e5202de4c26b08623f8a229aba999fb0db 100644 (file)
@@ -318,6 +318,16 @@ static int ubifs_write_inode(struct inode *inode, struct writeback_control *wbc)
        return err;
 }
 
+static int ubifs_drop_inode(struct inode *inode)
+{
+       int drop = generic_drop_inode(inode);
+
+       if (!drop)
+               drop = fscrypt_drop_inode(inode);
+
+       return drop;
+}
+
 static void ubifs_evict_inode(struct inode *inode)
 {
        int err;
@@ -1994,6 +2004,7 @@ const struct super_operations ubifs_super_operations = {
        .free_inode    = ubifs_free_inode,
        .put_super     = ubifs_put_super,
        .write_inode   = ubifs_write_inode,
+       .drop_inode    = ubifs_drop_inode,
        .evict_inode   = ubifs_evict_inode,
        .statfs        = ubifs_statfs,
        .dirty_inode   = ubifs_dirty_inode,
@@ -2256,8 +2267,10 @@ static struct dentry *ubifs_mount(struct file_system_type *fs_type, int flags,
                }
        } else {
                err = ubifs_fill_super(sb, data, flags & SB_SILENT ? 1 : 0);
-               if (err)
+               if (err) {
+                       kfree(c);
                        goto out_deact;
+               }
                /* We do not support atime */
                sb->s_flags |= SB_ACTIVE;
                if (IS_ENABLED(CONFIG_UBIFS_ATIME_SUPPORT))