]> git.itanic.dy.fi Git - linux-stable/commit
btrfs: fix error handling when run_delayed_extent_op fails
authorJeff Mahoney <jeffm@suse.com>
Tue, 20 Dec 2016 18:28:27 +0000 (13:28 -0500)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Jan 2017 14:14:08 +0000 (15:14 +0100)
commitaa7c8da35d1905d80e840d075f07d26ec90144b5
treed98c4cc3d44debbe6b75c9084b71f86a365c8669
parent73ba39ab9307340dc98ec3622891314bbc09cc2e
btrfs: fix error handling when run_delayed_extent_op fails

In __btrfs_run_delayed_refs, the error path when run_delayed_extent_op
fails sets locked_ref->processing = 0 but doesn't re-increment
delayed_refs->num_heads_ready.  As a result, we end up triggering
the WARN_ON in btrfs_select_ref_head.

Fixes: d7df2c796d7 (Btrfs: attach delayed ref updates to delayed ref heads)
Reported-by: Jon Nelson <jnelson-suse@jamponi.net>
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-tree.c