Message ID | 1526982411-9243-2-git-send-email-gujx@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 22.05.2018 12:46, Gu Jinxiang wrote: > 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> > --- > fs/btrfs/extent-tree.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index 2e85e99b5e6f..28fd71579141 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -6468,6 +6468,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; > @@ -6484,10 +6485,14 @@ 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) > + goto out; > } > > - return 0; > +out: > + return ret; > } > > static void > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, May 22, 2018 at 05:46:51PM +0800, Gu Jinxiang wrote: > 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: David Sterba <dsterba@suse.com> The whole group of extent exclusion functions needs to be audited for proper error handling. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 2e85e99b5e6f..28fd71579141 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -6468,6 +6468,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; @@ -6484,10 +6485,14 @@ 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) + goto out; } - return 0; +out: + return ret; } static void
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> --- fs/btrfs/extent-tree.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)