Message ID | 5c0f10fff0bb9e0bbd0368069d965d8e4ea0cb1e.1694174371.git.fdmanana@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: updates to delayed refs accounting and space reservation | expand |
On Fri, Sep 08, 2023 at 01:09:14PM +0100, fdmanana@kernel.org wrote: > From: Filipe Manana <fdmanana@suse.com> > > When running a delayed extent operation, if we don't find the extent item > in the extent tree we just return -EIO without any logged message. This > indicates some bug or possibly a memory or fs corruption, so the return > value should not be -EIO but -EUCLEAN instead, and since it's not expected > to ever happen, print an informative error message so that if it happens > we have some idea of what went wrong, where to look at. > > Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: Josef Bacik <josef@toxicpanda.com> Thanks, Josef
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 21049609c5fc..167d0438da6e 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -1653,7 +1653,10 @@ static int run_delayed_extent_op(struct btrfs_trans_handle *trans, goto again; } } else { - err = -EIO; + err = -EUCLEAN; + btrfs_err(fs_info, + "missing extent item for extent %llu num_bytes %llu level %d", + head->bytenr, head->num_bytes, extent_op->level); goto out; } }