Message ID | 20220518233709.1937634-4-shr@fb.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | io-uring/xfs: support async buffered writes | expand |
On Wed, May 18, 2022 at 04:36:54PM -0700, Stefan Roesch wrote: > This change uses the new iomap_page_create_gfp() function in the > function __iomap_write_begin(). .. and this now loses the check if we actually need the creation, see my previous comment.
On 5/19/22 1:19 AM, Christoph Hellwig wrote: > On Wed, May 18, 2022 at 04:36:54PM -0700, Stefan Roesch wrote: >> This change uses the new iomap_page_create_gfp() function in the >> function __iomap_write_begin(). > > .. and this now loses the check if we actually need the creation, > see my previous comment. The new version avoids this problem by removing iomap_page_create_gfp() and adding a gfp flag to iomap_page_create().
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 85aa32f50db0..6b06fd358958 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -572,17 +572,21 @@ static int __iomap_write_begin(const struct iomap_iter *iter, loff_t pos, size_t len, struct folio *folio) { const struct iomap *srcmap = iomap_iter_srcmap(iter); - struct iomap_page *iop = iomap_page_create(iter->inode, folio); + struct iomap_page *iop = to_iomap_page(folio); loff_t block_size = i_blocksize(iter->inode); loff_t block_start = round_down(pos, block_size); loff_t block_end = round_up(pos + len, block_size); + unsigned int nr_blocks = i_blocks_per_folio(iter->inode, folio); size_t from = offset_in_folio(folio, pos), to = from + len; size_t poff, plen; + gfp_t gfp = GFP_NOFS | __GFP_NOFAIL; if (folio_test_uptodate(folio)) return 0; folio_clear_error(folio); + iop = iomap_page_create_gfp(iter->inode, folio, nr_blocks, gfp); + do { iomap_adjust_read_range(iter->inode, folio, &block_start, block_end - block_start, &poff, &plen);
This change uses the new iomap_page_create_gfp() function in the function __iomap_write_begin(). No intended functional changes in this patch. Signed-off-by: Stefan Roesch <shr@fb.com> --- fs/iomap/buffered-io.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)