summaryrefslogtreecommitdiff
path: root/fs/btrfs/export.h
diff options
context:
space:
mode:
authorJosef Bacik <josef@toxicpanda.com>2021-05-19 17:52:45 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-06-10 14:41:47 +0300
commit99eee2efe4b7238ded8ba2563fc8cee117a35107 (patch)
treeb32a655638f6f3fb992a5da5524541906fe9ea8a /fs/btrfs/export.h
parent22beee867bf1bce729fa2894c6df3ef6dc260a07 (diff)
downloadlinux-99eee2efe4b7238ded8ba2563fc8cee117a35107.tar.xz
btrfs: fix error handling in btrfs_del_csums
commit b86652be7c83f70bf406bed18ecf55adb9bfb91b upstream. Error injection stress would sometimes fail with checksums on disk that did not have a corresponding extent. This occurred because the pattern in btrfs_del_csums was while (1) { ret = btrfs_search_slot(); if (ret < 0) break; } ret = 0; out: btrfs_free_path(path); return ret; If we got an error from btrfs_search_slot we'd clear the error because we were breaking instead of goto out. Instead of using goto out, simply handle the cases where we may leave a random value in ret, and get rid of the ret = 0; out: pattern and simply allow break to have the proper error reporting. With this fix we properly abort the transaction and do not commit thinking we successfully deleted the csum. Reviewed-by: Qu Wenruo <wqu@suse.com> CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/btrfs/export.h')
0 files changed, 0 insertions, 0 deletions