diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 91ea57a1474ac38644a5d5bb2612b6b10048c3ce..f4b839fd3c9dd5cd854cb7bada4e3831d8ea1713 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -295,6 +295,12 @@ static noinline int run_scheduled_bios(struct btrfs_device *device) btrfs_requeue_work(&device->work); goto done; } + /* unplug every 64 requests just for good measure */ + if (batch_run % 64 == 0) { + blk_finish_plug(&plug); + blk_start_plug(&plug); + sync_pending = 0; + } } cond_resched();