diff options
author | Gu Jinxiang <gujx@cn.fujitsu.com> | 2018-05-22 11:46:51 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-05-29 18:12:58 +0200 |
commit | b89311efe60d47f8fc23b6f027c6b3f30067c93e (patch) | |
tree | 7bb01f3ed4075d17620e95b757f17002f75751fe /fs/btrfs | |
parent | btrfs: Streamline shared ref check in alloc_reserved_tree_block (diff) | |
download | linux-b89311efe60d47f8fc23b6f027c6b3f30067c93e.tar.xz linux-b89311efe60d47f8fc23b6f027c6b3f30067c93e.zip |
btrfs: propagate failures of __exclude_logged_extent to upper caller
Function btrfs_exclude_logged_extents may call __exclude_logged_extent
which may fail.
Propagate the failures of __exclude_logged_extent to upper caller.
Signed-off-by: Gu Jinxiang <gujx@cn.fujitsu.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/extent-tree.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index c25308722e81..7273dcddcdf4 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -6457,6 +6457,7 @@ int btrfs_exclude_logged_extents(struct btrfs_fs_info *fs_info, struct btrfs_key key; int found_type; int i; + int ret = 0; if (!btrfs_fs_incompat(fs_info, MIXED_GROUPS)) return 0; @@ -6473,10 +6474,12 @@ int btrfs_exclude_logged_extents(struct btrfs_fs_info *fs_info, continue; key.objectid = btrfs_file_extent_disk_bytenr(eb, item); key.offset = btrfs_file_extent_disk_num_bytes(eb, item); - __exclude_logged_extent(fs_info, key.objectid, key.offset); + ret = __exclude_logged_extent(fs_info, key.objectid, key.offset); + if (ret) + break; } - return 0; + return ret; } static void |