diff options
Diffstat (limited to 'fs/btrfs/volumes.c')
| -rw-r--r-- | fs/btrfs/volumes.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 309a57b9fc8..c7367ae5a3e 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -155,6 +155,15 @@ static noinline int run_scheduled_bios(struct btrfs_device *device)  	unsigned long limit;  	unsigned long last_waited = 0;  	int force_reg = 0; +	struct blk_plug plug; + +	/* +	 * this function runs all the bios we've collected for +	 * a particular device.  We don't want to wander off to +	 * another device without first sending all of these down. +	 * So, setup a plug here and finish it off before we return +	 */ +	blk_start_plug(&plug);  	bdi = blk_get_backing_dev_info(device->bdev);  	fs_info = device->dev_root->fs_info; @@ -294,6 +303,7 @@ loop_lock:  	spin_unlock(&device->io_lock);  done: +	blk_finish_plug(&plug);  	return 0;  }  |