RISCV: configs: tizen_visionfive2: Enable USB_CONFIGFS_ACM
[platform/kernel/linux-starfive.git] / fs / btrfs / ordered-data.c
index 345c449..2b8ff8b 100644 (file)
@@ -153,11 +153,12 @@ static struct btrfs_ordered_extent *alloc_ordered_extent(
 {
        struct btrfs_ordered_extent *entry;
        int ret;
+       u64 qgroup_rsv = 0;
 
        if (flags &
            ((1 << BTRFS_ORDERED_NOCOW) | (1 << BTRFS_ORDERED_PREALLOC))) {
                /* For nocow write, we can release the qgroup rsv right now */
-               ret = btrfs_qgroup_free_data(inode, NULL, file_offset, num_bytes);
+               ret = btrfs_qgroup_free_data(inode, NULL, file_offset, num_bytes, &qgroup_rsv);
                if (ret < 0)
                        return ERR_PTR(ret);
        } else {
@@ -165,7 +166,7 @@ static struct btrfs_ordered_extent *alloc_ordered_extent(
                 * The ordered extent has reserved qgroup space, release now
                 * and pass the reserved number for qgroup_record to free.
                 */
-               ret = btrfs_qgroup_release_data(inode, file_offset, num_bytes);
+               ret = btrfs_qgroup_release_data(inode, file_offset, num_bytes, &qgroup_rsv);
                if (ret < 0)
                        return ERR_PTR(ret);
        }
@@ -183,7 +184,7 @@ static struct btrfs_ordered_extent *alloc_ordered_extent(
        entry->inode = igrab(&inode->vfs_inode);
        entry->compress_type = compress_type;
        entry->truncated_len = (u64)-1;
-       entry->qgroup_rsv = ret;
+       entry->qgroup_rsv = qgroup_rsv;
        entry->flags = flags;
        refcount_set(&entry->refs, 1);
        init_waitqueue_head(&entry->wait);
@@ -603,7 +604,9 @@ void btrfs_remove_ordered_extent(struct btrfs_inode *btrfs_inode,
                        release = entry->disk_num_bytes;
                else
                        release = entry->num_bytes;
-               btrfs_delalloc_release_metadata(btrfs_inode, release, false);
+               btrfs_delalloc_release_metadata(btrfs_inode, release,
+                                               test_bit(BTRFS_ORDERED_IOERR,
+                                                        &entry->flags));
        }
 
        percpu_counter_add_batch(&fs_info->ordered_bytes, -entry->num_bytes,