diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-08-23 14:50:29 +0200 |
---|---|---|
committer | Brett Rogers <brettrogers11@gmail.com> | 2016-02-16 16:29:47 -0800 |
commit | 04f87da71ab532ee1d794cbb2a464d2f35cd118d (patch) | |
tree | 1cf7ef6f9d9cf3f1b226ee1cbb0040308f90916a /fs/ext4 | |
parent | b1ce5b792e0c6bddb9012dbbff63cfcc3a4aaf87 (diff) | |
download | kernel_samsung_smdk4412-04f87da71ab532ee1d794cbb2a464d2f35cd118d.zip kernel_samsung_smdk4412-04f87da71ab532ee1d794cbb2a464d2f35cd118d.tar.gz kernel_samsung_smdk4412-04f87da71ab532ee1d794cbb2a464d2f35cd118d.tar.bz2 |
block: separate priority boosting from REQ_META
Add a new REQ_PRIO to let requests preempt others in the cfq I/O schedule,
and lave REQ_META purely for marking requests as metadata in blktrace.
All existing callers of REQ_META except for XFS are updated to also
set REQ_PRIO for now.
Backported to 3.0.x by Ketut Putu Kumajaya <ketut.kumajaya@gmail.com>
Change-Id: Iad5ba7a105438776f74788c0aedaf85210c613f9
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/inode.c | 4 | ||||
-rw-r--r-- | fs/ext4/namei.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 0a0c404..294bc8f 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1517,7 +1517,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode, return bh; if (buffer_uptodate(bh)) return bh; - ll_rw_block(READ_META, 1, &bh); + ll_rw_block(READ | REQ_META | REQ_PRIO, 1, &bh); wait_on_buffer(bh); if (buffer_uptodate(bh)) return bh; @@ -4827,7 +4827,7 @@ make_io: trace_ext4_load_inode(inode); get_bh(bh); bh->b_end_io = end_buffer_read_sync; - submit_bh(READ_META, bh); + submit_bh(READ | REQ_META | REQ_PRIO, bh); wait_on_buffer(bh); if (!buffer_uptodate(bh)) { EXT4_ERROR_INODE_BLOCK(inode, block, diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 8b227a9..4098064 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -919,7 +919,8 @@ restart: bh = ext4_getblk(NULL, dir, b++, 0, &err); bh_use[ra_max] = bh; if (bh) - ll_rw_block(READ_META, 1, &bh); + ll_rw_block(READ | REQ_META | REQ_PRIO, + 1, &bh); } } if ((bh = bh_use[ra_ptr++]) == NULL) |