From: Jens Axboe <axboe@kernel.dk> To: linux-fsdevel@vger.kernel.org Cc: viro@zeniv.linux.org.uk, akpm@linux-foundation.org, Jens Axboe <axboe@kernel.dk> Subject: [PATCH 4/4] ext4: readpages() should submit IO as read-ahead Date: Wed, 20 Jun 2018 19:07:25 -0600 Message-ID: <20180621010725.17813-5-axboe@kernel.dk> (raw) In-Reply-To: <20180621010725.17813-1-axboe@kernel.dk> a_ops->readpages() is only ever used for read-ahead. Ensure that we pass this information down to the block layer. Signed-off-by: Jens Axboe <axboe@kernel.dk> --- fs/ext4/ext4.h | 2 +- fs/ext4/inode.c | 5 +++-- fs/ext4/readpage.c | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 0b127853c584..e416cb0a2b8c 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -3065,7 +3065,7 @@ static inline void ext4_set_de_type(struct super_block *sb, /* readpages.c */ extern int ext4_mpage_readpages(struct address_space *mapping, struct list_head *pages, struct page *page, - unsigned nr_pages); + unsigned nr_pages, bool is_readahead); /* symlink.c */ extern const struct inode_operations ext4_encrypted_symlink_inode_operations; diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 2ea07efbe016..de1235fa1bfb 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3327,7 +3327,8 @@ static int ext4_readpage(struct file *file, struct page *page) ret = ext4_readpage_inline(inode, page); if (ret == -EAGAIN) - return ext4_mpage_readpages(page->mapping, NULL, page, 1); + return ext4_mpage_readpages(page->mapping, NULL, page, 1, + false); return ret; } @@ -3342,7 +3343,7 @@ ext4_readpages(struct file *file, struct address_space *mapping, if (ext4_has_inline_data(inode)) return 0; - return ext4_mpage_readpages(mapping, pages, NULL, nr_pages); + return ext4_mpage_readpages(mapping, pages, NULL, nr_pages, true); } static void ext4_invalidatepage(struct page *page, unsigned int offset, diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c index 19b87a8de6ff..f461d75ac049 100644 --- a/fs/ext4/readpage.c +++ b/fs/ext4/readpage.c @@ -98,7 +98,7 @@ static void mpage_end_io(struct bio *bio) int ext4_mpage_readpages(struct address_space *mapping, struct list_head *pages, struct page *page, - unsigned nr_pages) + unsigned nr_pages, bool is_readahead) { struct bio *bio = NULL; sector_t last_block_in_bio = 0; @@ -259,7 +259,8 @@ int ext4_mpage_readpages(struct address_space *mapping, bio->bi_iter.bi_sector = blocks[0] << (blkbits - 9); bio->bi_end_io = mpage_end_io; bio->bi_private = ctx; - bio_set_op_attrs(bio, REQ_OP_READ, 0); + bio_set_op_attrs(bio, REQ_OP_READ, + is_readahead ? REQ_RAHEAD : 0); } length = first_hole << blkbits; -- 2.17.1
next prev parent reply index Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-06-21 1:07 [PATCH v4 0/4] Submit ->readpages() " Jens Axboe 2018-06-21 1:07 ` [PATCH 1/4] mpage: add argument structure for do_mpage_readpage() Jens Axboe 2018-06-21 1:07 ` [PATCH 2/4] mpage: mpage_readpages() should submit IO as read-ahead Jens Axboe 2018-06-21 17:27 ` Randy Dunlap 2018-06-21 17:29 ` Jens Axboe 2018-06-21 18:47 ` Jaegeuk Kim 2018-06-21 19:18 ` Jens Axboe 2018-06-21 19:32 ` Jaegeuk Kim 2018-06-21 19:32 ` Jens Axboe 2018-06-21 1:07 ` [PATCH 3/4] btrfs: readpages() " Jens Axboe 2018-06-21 1:07 ` Jens Axboe [this message] -- strict thread matches above, loose matches on Subject: below -- 2018-05-30 14:42 [PATCHSET v3 0/4] Submit ->readpages() " Jens Axboe 2018-05-30 14:42 ` [PATCH 4/4] ext4: readpages() should submit " Jens Axboe 2018-05-29 22:17 [PATCHSET v2 0/4] Submit ->readpages() " Jens Axboe 2018-05-29 22:17 ` [PATCH 4/4] ext4: readpages() should submit " Jens Axboe
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180621010725.17813-5-axboe@kernel.dk \ --to=axboe@kernel.dk \ --cc=akpm@linux-foundation.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=viro@zeniv.linux.org.uk \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-Fsdevel Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-fsdevel/0 linux-fsdevel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-fsdevel linux-fsdevel/ https://lore.kernel.org/linux-fsdevel \ linux-fsdevel@vger.kernel.org public-inbox-index linux-fsdevel Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-fsdevel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git