Signed-off-by: David Sterba <[email protected]>
---
 fs/btrfs/volumes.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index f206e83d4f52..75aed8ec64bd 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2344,17 +2344,15 @@ int btrfs_init_new_device(struct btrfs_fs_info 
*fs_info, const char *device_path
 
        name = rcu_string_strdup(device_path, GFP_KERNEL);
        if (!name) {
-               free_device(device);
                ret = -ENOMEM;
-               goto error;
+               goto error_free_device;
        }
        rcu_assign_pointer(device->name, name);
 
        trans = btrfs_start_transaction(root, 0);
        if (IS_ERR(trans)) {
-               free_device(device);
                ret = PTR_ERR(trans);
-               goto error;
+               goto error_free_device;
        }
 
        q = bdev_get_queue(bdev);
@@ -2494,6 +2492,7 @@ int btrfs_init_new_device(struct btrfs_fs_info *fs_info, 
const char *device_path
                sb->s_flags |= MS_RDONLY;
        if (trans)
                btrfs_end_transaction(trans);
+error_free_device:
        free_device(device);
 error:
        blkdev_put(bdev, FMODE_EXCL);
-- 
2.14.0

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to