]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
orangefs: set up and use backing_dev_info
authorMartin Brandenburg <martin@omnibond.com>
Mon, 12 Feb 2018 20:28:42 +0000 (20:28 +0000)
committerMike Marshall <hubcap@omnibond.com>
Fri, 3 May 2019 18:32:38 +0000 (14:32 -0400)
Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
fs/orangefs/super.c

index 31db6ac73de1241805648a9be47f8cadd7e98213..ef3388c90ff7dd3f3edbd05c2d683e0ceffa8521 100644 (file)
@@ -407,15 +407,11 @@ static int orangefs_fill_sb(struct super_block *sb,
                struct orangefs_fs_mount_response *fs_mount,
                void *data, int silent)
 {
-       int ret = -EINVAL;
-       struct inode *root = NULL;
-       struct dentry *root_dentry = NULL;
+       int ret;
+       struct inode *root;
+       struct dentry *root_dentry;
        struct orangefs_object_kref root_object;
 
-       /* alloc and init our private orangefs sb info */
-       sb->s_fs_info = kzalloc(sizeof(struct orangefs_sb_info_s), GFP_KERNEL);
-       if (!ORANGEFS_SB(sb))
-               return -ENOMEM;
        ORANGEFS_SB(sb)->sb = sb;
 
        ORANGEFS_SB(sb)->root_khandle = fs_mount->root_khandle;
@@ -438,6 +434,10 @@ static int orangefs_fill_sb(struct super_block *sb,
        sb->s_blocksize_bits = PAGE_SHIFT;
        sb->s_maxbytes = MAX_LFS_FILESIZE;
 
+       ret = super_setup_bdi(sb);
+       if (ret)
+               return ret;
+
        root_object.khandle = ORANGEFS_SB(sb)->root_khandle;
        root_object.fs_id = ORANGEFS_SB(sb)->fs_id;
        gossip_debug(GOSSIP_SUPER_DEBUG,
@@ -516,6 +516,13 @@ struct dentry *orangefs_mount(struct file_system_type *fst,
                goto free_op;
        }
 
+       /* alloc and init our private orangefs sb info */
+       sb->s_fs_info = kzalloc(sizeof(struct orangefs_sb_info_s), GFP_KERNEL);
+       if (!ORANGEFS_SB(sb)) {
+               d = ERR_PTR(-ENOMEM);
+               goto free_op;
+       }
+
        ret = orangefs_fill_sb(sb,
              &new_op->downcall.resp.fs_mount, data,
              flags & SB_SILENT ? 1 : 0);