]> git.baikalelectronics.ru Git - kernel.git/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)
commitdbe267ce218500a45b3f8994f1ecedc024eee5be
treed98c4cc3d44debbe6b75c9084b71f86a365c8669
parent37cd2631ce09c2c7c51b13d73dd46d54f85fe690
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: 6e269b75369 (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