summaryrefslogtreecommitdiffstats
path: root/fs/ext4/mmp.c
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2013-04-20 15:46:17 -0400
committerTheodore Ts'o <tytso@mit.edu>2013-04-20 15:46:17 -0400
commit9f203507ed277ee86e3f76a15e09db1c92e40b94 (patch)
tree3055dbd2f6a885b20db3fda1d56ea0d9e780d9dd /fs/ext4/mmp.c
parentc4d8b0235aa98f8c26bf94d308be3fdd24154572 (diff)
downloadlinux-stable-9f203507ed277ee86e3f76a15e09db1c92e40b94.tar.gz
linux-stable-9f203507ed277ee86e3f76a15e09db1c92e40b94.tar.bz2
linux-stable-9f203507ed277ee86e3f76a15e09db1c92e40b94.zip
ext4: mark all metadata I/O with REQ_META
As Dave Chinner pointed out at the 2013 LSF/MM workshop, it's important that metadata I/O requests are marked as such to avoid priority inversions caused by I/O bandwidth throttling. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/mmp.c')
-rw-r--r--fs/ext4/mmp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
index b3b1f7d99448..214461e42a05 100644
--- a/fs/ext4/mmp.c
+++ b/fs/ext4/mmp.c
@@ -54,7 +54,7 @@ static int write_mmp_block(struct super_block *sb, struct buffer_head *bh)
lock_buffer(bh);
bh->b_end_io = end_buffer_write_sync;
get_bh(bh);
- submit_bh(WRITE_SYNC, bh);
+ submit_bh(WRITE_SYNC | REQ_META | REQ_PRIO, bh);
wait_on_buffer(bh);
sb_end_write(sb);
if (unlikely(!buffer_uptodate(bh)))
@@ -86,7 +86,7 @@ static int read_mmp_block(struct super_block *sb, struct buffer_head **bh,
get_bh(*bh);
lock_buffer(*bh);
(*bh)->b_end_io = end_buffer_read_sync;
- submit_bh(READ_SYNC, *bh);
+ submit_bh(READ_SYNC | REQ_META | REQ_PRIO, *bh);
wait_on_buffer(*bh);
if (!buffer_uptodate(*bh)) {
brelse(*bh);