btrfs: use error code returned by btrfs_read_fs_root_no_name in search ioctl
authorMisono Tomohiro <misono.tomohiro@jp.fujitsu.com>
Mon, 21 May 2018 04:57:27 +0000 (13:57 +0900)
committerDavid Sterba <dsterba@suse.com>
Mon, 28 May 2018 16:24:14 +0000 (18:24 +0200)
btrfs_read_fs_root_no_name() may return ERR_PTR(-ENOENT) or
ERR_PTR(-ENOMEM) and therefore search_ioctl() and
btrfs_search_path_in_tree() should use PTR_ERR() instead of -ENOENT,
which all other callers of btrfs_read_fs_root_no_name() do.

Drop the error message as it would be confusing, the caller of ioctl
will likely interpret the error code and not look into the syslog.

Signed-off-by: Tomohiro Misono <misono.tomohiro@jp.fujitsu.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c

index aeef6cd8aaeb242feba6b409582d97b11ac83c0e..743c4f1b8001cf516dcb99015d633be2f0ada25a 100644 (file)
@@ -2155,7 +2155,7 @@ static noinline int search_ioctl(struct inode *inode,
                root = btrfs_read_fs_root_no_name(info, &key);
                if (IS_ERR(root)) {
                        btrfs_free_path(path);
-                       return -ENOENT;
+                       return PTR_ERR(root);
                }
        }
 
@@ -2289,8 +2289,7 @@ static noinline int btrfs_search_path_in_tree(struct btrfs_fs_info *info,
        key.offset = (u64)-1;
        root = btrfs_read_fs_root_no_name(info, &key);
        if (IS_ERR(root)) {
-               btrfs_err(info, "could not find root %llu", tree_id);
-               ret = -ENOENT;
+               ret = PTR_ERR(root);
                goto out;
        }