diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-08-23 14:50:29 +0200 |
---|---|---|
committer | Ziyan <jaraidaniel@gmail.com> | 2015-05-02 14:35:54 +0200 |
commit | 759d71e29c2ee78df36110cc08da177b1b9649ed (patch) | |
tree | c5536184e9a48448bd4ef8721a9a013035da2b2c /fs/ext4 | |
parent | e4881eee95150d52292b6d5de0499c662ea07e15 (diff) | |
download | kernel_samsung_tuna-759d71e29c2ee78df36110cc08da177b1b9649ed.zip kernel_samsung_tuna-759d71e29c2ee78df36110cc08da177b1b9649ed.tar.gz kernel_samsung_tuna-759d71e29c2ee78df36110cc08da177b1b9649ed.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.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
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 2867338..4c01932 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -1512,7 +1512,7 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode, return bh; if (buffer_uptodate(bh)) return bh; - ll_rw_block(READ | REQ_META, 1, &bh); + ll_rw_block(READ | REQ_META | REQ_PRIO, 1, &bh); wait_on_buffer(bh); if (buffer_uptodate(bh)) return bh; @@ -4818,7 +4818,7 @@ make_io: trace_ext4_load_inode(inode); get_bh(bh); bh->b_end_io = end_buffer_read_sync; - submit_bh(READ | REQ_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 2df8f00..df748b6 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 | REQ_META, 1, &bh); + ll_rw_block(READ | REQ_META | REQ_PRIO, + 1, &bh); } } if ((bh = bh_use[ra_ptr++]) == NULL) |