瀏覽代碼

btrfs: submit superblock io with REQ_META and REQ_PRIO

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: Josef Bacik <jbacik@fb.com>
Reviewed-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
David Sterba 8 年之前
父節點
當前提交
db95c876c5
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      fs/btrfs/disk-io.c

+ 3 - 2
fs/btrfs/disk-io.c

@@ -3433,9 +3433,10 @@ static int write_dev_supers(struct btrfs_device *device,
 		 */
 		 */
 		if (i == 0) {
 		if (i == 0) {
 			ret = btrfsic_submit_bh(REQ_OP_WRITE,
 			ret = btrfsic_submit_bh(REQ_OP_WRITE,
-						REQ_SYNC | REQ_FUA, bh);
+				REQ_SYNC | REQ_FUA | REQ_META | REQ_PRIO, bh);
 		} else {
 		} 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)
 		if (ret)
 			errors++;
 			errors++;