f2fs: relocate is_merged_page
PATCH v2 1/4 f2fs: relocate is_merged_page
Operations in is_merged_page is related to inner bio cache, move it to data.c.
Signed-off-by Chao Yu <[email protected]>
--- fs/f2fs/data.c | 38 ++++++++++++++++++++++++++++++++++++++ fs/f2fs/f2fs.h | 1 + fs/f2fs/segment.c | 38 -------------------------------------- 3 files changed, 39 insertions(+), 38 deletions(-)
fs/f2fs/data.c +38 -0
@@ -116,6 +116,44 @@ static void __submit_merged_bio(struct f2fs_bio_info *io) io->bio =NULL ; } +bool is_merged_page (struct f2fs_sb_info *sbi,struct page *page, +enum page_type type) +{ +enum page_type btype =PAGE_TYPE_OF_BIO (type); +struct f2fs_bio_info *io = &sbi->write_io[btype]; +struct bio_vec *bvec; +struct page *target; +int i; + +down_read (&io->io_rwsem); +if (!io->bio) { +up_read (&io->io_rwsem); +return false; + } + +bio_for_each_segment_all (bvec, io->bio, i) { + +if (bvec->bv_page->mapping) { + target = bvec->bv_page; + }else { +struct f2fs_crypto_ctx *ctx; + +/* encrypted page */ + ctx = (struct f2fs_crypto_ctx *)page_private ( + bvec->bv_page); + target = ctx->w.control_page; + } + +if (page == target) { +up_read (&io->io_rwsem); +return true; + } + } + +up_read (&io->io_rwsem); +return false; +} +void f2fs_submit_merged_bio (struct f2fs_sb_info *sbi,enum page_type type,int rw) {
fs/f2fs/f2fs.h +1 -0
@@ -1882,6 +1882,7 @@ void destroy_checkpoint_caches(void);/* * data.c */ +bool is_merged_page (struct f2fs_sb_info *,struct page *,enum page_type );void f2fs_submit_merged_bio (struct f2fs_sb_info *,enum page_type ,int );int f2fs_submit_page_bio (struct f2fs_io_info *);void f2fs_submit_page_mbio (struct f2fs_io_info *);
fs/f2fs/segment.c +0 -38
@@ -1415,44 +1415,6 @@ void f2fs_replace_block(struct f2fs_sb_info *sbi, struct dnode_of_data *dn,f2fs_update_extent_cache (dn); } -static inline bool is_merged_page (struct f2fs_sb_info *sbi, -struct page *page,enum page_type type) -{ -enum page_type btype =PAGE_TYPE_OF_BIO (type); -struct f2fs_bio_info *io = &sbi->write_io[btype]; -struct bio_vec *bvec; -struct page *target; -int i; - -down_read (&io->io_rwsem); -if (!io->bio) { -up_read (&io->io_rwsem); -return false; - } - -bio_for_each_segment_all (bvec, io->bio, i) { - -if (bvec->bv_page->mapping) { - target = bvec->bv_page; - }else { -struct f2fs_crypto_ctx *ctx; - -/* encrypted page */ - ctx = (struct f2fs_crypto_ctx *)page_private ( - bvec->bv_page); - target = ctx->w.control_page; - } - -if (page == target) { -up_read (&io->io_rwsem); -return true; - } - } - -up_read (&io->io_rwsem); -return false; -} -void f2fs_wait_on_page_writeback (struct page *page,enum page_type type) {
Signature · 1 line
2.6.3