btrfs: remove spurious WARN_ON(ref->count < 0) in find_parent_nodes
[sfrench/cifs-2.6.git] / fs / btrfs / qgroup.c
index 168fd03ca3ac94da8066d71304d497569ee54bac..aa259d6986e1c24049c8f500184b2393d99b0549 100644 (file)
@@ -1442,8 +1442,13 @@ int btrfs_qgroup_trace_extent_post(struct btrfs_fs_info *fs_info,
        int ret;
 
        ret = btrfs_find_all_roots(NULL, fs_info, bytenr, 0, &old_root, false);
-       if (ret < 0)
-               return ret;
+       if (ret < 0) {
+               fs_info->qgroup_flags |= BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT;
+               btrfs_warn(fs_info,
+"error accounting new delayed refs extent (err code: %d), quota inconsistent",
+                       ret);
+               return 0;
+       }
 
        /*
         * Here we don't need to get the lock of
@@ -2883,8 +2888,7 @@ cleanup:
        ULIST_ITER_INIT(&uiter);
        while ((unode = ulist_next(&reserved->range_changed, &uiter)))
                clear_extent_bit(&BTRFS_I(inode)->io_tree, unode->val,
-                                unode->aux, EXTENT_QGROUP_RESERVED, 0, 0, NULL,
-                                GFP_NOFS);
+                                unode->aux, EXTENT_QGROUP_RESERVED, 0, 0, NULL);
        extent_changeset_release(reserved);
        return ret;
 }