diff options
author | Theodore Ts'o <tytso@mit.edu> | 2013-04-20 15:46:17 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-04-20 15:46:17 -0400 |
commit | 9f203507ed277ee86e3f76a15e09db1c92e40b94 (patch) | |
tree | 3055dbd2f6a885b20db3fda1d56ea0d9e780d9dd /fs/ext4/mmp.c | |
parent | c4d8b0235aa98f8c26bf94d308be3fdd24154572 (diff) | |
download | linux-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.c | 4 |
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); |