Message ID | 20230108165645.381077-7-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/7] btrfs: don't read the disk superblock for zoned devices in btrfs_scratch_superblocks | expand |
On Sun 08-01-23 17:56:44, Christoph Hellwig wrote: > Use filemap_write_and_wait_range to write back the range of the dirty > page instead of write_one_page in preparation of removing write_one_page > and eventually ->writepage. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > fs/ocfs2/refcounttree.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c > index 623db358b1efa8..4a73405962ec4f 100644 > --- a/fs/ocfs2/refcounttree.c > +++ b/fs/ocfs2/refcounttree.c > @@ -2952,10 +2952,11 @@ int ocfs2_duplicate_clusters_by_page(handle_t *handle, > */ > if (PAGE_SIZE <= OCFS2_SB(sb)->s_clustersize) { > if (PageDirty(page)) { > - /* > - * write_on_page will unlock the page on return > - */ > - ret = write_one_page(page); > + unlock_page(page); > + put_page(page); > + > + ret = filemap_write_and_wait_range(mapping, > + offset, map_end - 1); > goto retry; > } > } > -- > 2.35.1 >
On 1/9/23 12:56 AM, Christoph Hellwig via Ocfs2-devel wrote: > Use filemap_write_and_wait_range to write back the range of the dirty > page instead of write_one_page in preparation of removing write_one_page > and eventually ->writepage. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Looks good. Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com> > --- > fs/ocfs2/refcounttree.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c > index 623db358b1efa8..4a73405962ec4f 100644 > --- a/fs/ocfs2/refcounttree.c > +++ b/fs/ocfs2/refcounttree.c > @@ -2952,10 +2952,11 @@ int ocfs2_duplicate_clusters_by_page(handle_t *handle, > */ > if (PAGE_SIZE <= OCFS2_SB(sb)->s_clustersize) { > if (PageDirty(page)) { > - /* > - * write_on_page will unlock the page on return > - */ > - ret = write_one_page(page); > + unlock_page(page); > + put_page(page); > + > + ret = filemap_write_and_wait_range(mapping, > + offset, map_end - 1); > goto retry; > } > }
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c index 623db358b1efa8..4a73405962ec4f 100644 --- a/fs/ocfs2/refcounttree.c +++ b/fs/ocfs2/refcounttree.c @@ -2952,10 +2952,11 @@ int ocfs2_duplicate_clusters_by_page(handle_t *handle, */ if (PAGE_SIZE <= OCFS2_SB(sb)->s_clustersize) { if (PageDirty(page)) { - /* - * write_on_page will unlock the page on return - */ - ret = write_one_page(page); + unlock_page(page); + put_page(page); + + ret = filemap_write_and_wait_range(mapping, + offset, map_end - 1); goto retry; } }
Use filemap_write_and_wait_range to write back the range of the dirty page instead of write_one_page in preparation of removing write_one_page and eventually ->writepage. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/ocfs2/refcounttree.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)