Re: [PATCH v2] btrfs: submit superblock io with REQ_META and REQ_PRIO
From: Liu Bo <hidden>
Date: 2017-08-21 19:04:50
On Mon, Aug 21, 2017 at 05:42:27PM +0200, David Sterba wrote:
The superblock is also metadata of the filesystem so the relevant IO should be tagged as such. We also tag it as high priority, as it's the last block committed for metadata from a given transaction. Any delays would effectively block the whole transaction, also blocking any other operation holding the device_list_mutex.
Reviewed-by: Liu Bo <redacted> -liubo
quoted hunk ↗ jump to hunk
Signed-off-by: David Sterba <dsterba@suse.com> --- fs/btrfs/disk-io.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 90b967ae46d0..27d458640536 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c@@ -3433,9 +3433,10 @@ static int write_dev_supers(struct btrfs_device *device, */ if (i == 0) { ret = btrfsic_submit_bh(REQ_OP_WRITE, - REQ_SYNC | REQ_FUA, bh); + REQ_SYNC | REQ_FUA | REQ_META | REQ_PRIO, bh); } else { - ret = btrfsic_submit_bh(REQ_OP_WRITE, REQ_SYNC, bh); + ret = btrfsic_submit_bh(REQ_OP_WRITE, + REQ_SYNC | REQ_META | REQ_PRIO, bh); } if (ret) errors++;-- 2.14.0