btrfs: avoid blocking on space revervation when doing nowait dio writes
[sfrench/cifs-2.6.git] / fs / btrfs / qgroup.c
index a9fed81954836669f7011068405aa98533c3a136..db723c0026bd2ef011b071b17c6e16ac5d2e8dbd 100644 (file)
@@ -3939,12 +3939,13 @@ int btrfs_qgroup_reserve_meta(struct btrfs_root *root, int num_bytes,
 }
 
 int __btrfs_qgroup_reserve_meta(struct btrfs_root *root, int num_bytes,
-                               enum btrfs_qgroup_rsv_type type, bool enforce)
+                               enum btrfs_qgroup_rsv_type type, bool enforce,
+                               bool noflush)
 {
        int ret;
 
        ret = btrfs_qgroup_reserve_meta(root, num_bytes, type, enforce);
-       if (ret <= 0 && ret != -EDQUOT)
+       if ((ret <= 0 && ret != -EDQUOT) || noflush)
                return ret;
 
        ret = try_flush_qgroup(root);