ocfs2: don't use write_one_page in ocfs2_duplicate_clusters_by_page
authorChristoph Hellwig <hch@lst.de>
Tue, 7 Mar 2023 14:31:24 +0000 (15:31 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 28 Mar 2023 23:20:14 +0000 (16:20 -0700)
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.

Link: https://lkml.kernel.org/r/20230307143125.27778-3-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Changwei Ge <gechangwei@live.cn>
Cc: Dave Kleikamp <dave.kleikamp@oracle.com>
Cc: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Gang He <ghe@suse.com>
Cc: Jan Kara via Ocfs2-devel <ocfs2-devel@oss.oracle.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Jun Piao <piaojun@huawei.com>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/ocfs2/refcounttree.c

index 5a656dc..564ab48 100644 (file)
@@ -2952,10 +2952,11 @@ retry:
                 */
                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;
                        }
                }