Josef, can you please review this?
On Mon, Jun 20, 2016 at 09:18:52AM +0800, Wang Xiaoguang wrote: > This issue was found when testing in-band dedupe enospc behaviour, > sometimes run_one_delayed_ref() may fail for enospc reason, then > __btrfs_run_delayed_refs()will return, but forget to add num_heads_read > back, which will trigger "WARN_ON(delayed_refs->num_heads_ready == 0)" in > btrfs_select_ref_head(). > > Signed-off-by: Wang Xiaoguang <wangxg.f...@cn.fujitsu.com> > --- > fs/btrfs/extent-tree.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index 6146729..eeedff3 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -2665,7 +2665,10 @@ static noinline int __btrfs_run_delayed_refs(struct > btrfs_trans_handle *trans, > > btrfs_free_delayed_extent_op(extent_op); > if (ret) { > + spin_lock(&delayed_refs->lock); > locked_ref->processing = 0; > + delayed_refs->num_heads_ready++; > + spin_unlock(&delayed_refs->lock); > btrfs_delayed_ref_unlock(locked_ref); > btrfs_put_delayed_ref(ref); > btrfs_debug(fs_info, "run_one_delayed_ref returned %d", > ret); > -- > 1.8.3.1 > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html