|
@@ -9440,14 +9440,10 @@ static void btrfs_run_delalloc_work(struct btrfs_work *work)
|
|
|
delalloc_work = container_of(work, struct btrfs_delalloc_work,
|
|
|
work);
|
|
|
inode = delalloc_work->inode;
|
|
|
- if (delalloc_work->wait) {
|
|
|
- btrfs_wait_ordered_range(inode, 0, (u64)-1);
|
|
|
- } else {
|
|
|
+ filemap_flush(inode->i_mapping);
|
|
|
+ if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT,
|
|
|
+ &BTRFS_I(inode)->runtime_flags))
|
|
|
filemap_flush(inode->i_mapping);
|
|
|
- if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT,
|
|
|
- &BTRFS_I(inode)->runtime_flags))
|
|
|
- filemap_flush(inode->i_mapping);
|
|
|
- }
|
|
|
|
|
|
if (delalloc_work->delay_iput)
|
|
|
btrfs_add_delayed_iput(inode);
|
|
@@ -9468,7 +9464,6 @@ struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode,
|
|
|
init_completion(&work->completion);
|
|
|
INIT_LIST_HEAD(&work->list);
|
|
|
work->inode = inode;
|
|
|
- work->wait = 0;
|
|
|
work->delay_iput = delay_iput;
|
|
|
WARN_ON_ONCE(!inode);
|
|
|
btrfs_init_work(&work->work, btrfs_flush_delalloc_helper,
|