From: Christoph Hellwig Date: Thu, 2 May 2019 03:16:40 +0000 (-0700) Subject: iomap: move iomap_read_inline_data around X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=cbbf4c0be8a725f08153949f45a85b2adafbbbd3;p=openwrt%2Fstaging%2Fblogic.git iomap: move iomap_read_inline_data around iomap_read_inline_data ended up being placed in the middle of the bio based read I/O completion handling, which tends to confuse the heck out of me whenever I follow the code. Move it to a more suitable place. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong --- diff --git a/fs/iomap.c b/fs/iomap.c index fbfe20b7f6f0..9ef049d61e8a 100644 --- a/fs/iomap.c +++ b/fs/iomap.c @@ -240,26 +240,6 @@ iomap_read_page_end_io(struct bio_vec *bvec, int error) iomap_read_finish(iop, page); } -static void -iomap_read_inline_data(struct inode *inode, struct page *page, - struct iomap *iomap) -{ - size_t size = i_size_read(inode); - void *addr; - - if (PageUptodate(page)) - return; - - BUG_ON(page->index); - BUG_ON(size > PAGE_SIZE - offset_in_page(iomap->inline_data)); - - addr = kmap_atomic(page); - memcpy(addr, iomap->inline_data, size); - memset(addr + size, 0, PAGE_SIZE - size); - kunmap_atomic(addr); - SetPageUptodate(page); -} - static void iomap_read_end_io(struct bio *bio) { @@ -281,6 +261,26 @@ struct iomap_readpage_ctx { struct list_head *pages; }; +static void +iomap_read_inline_data(struct inode *inode, struct page *page, + struct iomap *iomap) +{ + size_t size = i_size_read(inode); + void *addr; + + if (PageUptodate(page)) + return; + + BUG_ON(page->index); + BUG_ON(size > PAGE_SIZE - offset_in_page(iomap->inline_data)); + + addr = kmap_atomic(page); + memcpy(addr, iomap->inline_data, size); + memset(addr + size, 0, PAGE_SIZE - size); + kunmap_atomic(addr); + SetPageUptodate(page); +} + static loff_t iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data, struct iomap *iomap)