]> www.infradead.org Git - users/hch/misc.git/commitdiff
mm: remove __filemap_fdatawrite_range
authorChristoph Hellwig <hch@lst.de>
Thu, 23 Oct 2025 06:59:24 +0000 (08:59 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 23 Oct 2025 06:59:24 +0000 (08:59 +0200)
Use filemap_fdatawrite_range and filemap_fdatawrite_range_kick instead
of the low-level __filemap_fdatawrite_range that requires the caller
to know the internals of the writeback_control structure and remove
__filemap_fdatawrite_range now that it is trivial and only two callers
would be left.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
fs/sync.c
include/linux/pagemap.h
mm/fadvise.c
mm/filemap.c

index 2955cd4c77a3edf3a58ed67dd6c62786b713c1b2..6d8b04e04c3ccc6a255cb408f304fc02f71c8333 100644 (file)
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -280,14 +280,13 @@ int sync_file_range(struct file *file, loff_t offset, loff_t nbytes,
        }
 
        if (flags & SYNC_FILE_RANGE_WRITE) {
-               int sync_mode = WB_SYNC_NONE;
-
                if ((flags & SYNC_FILE_RANGE_WRITE_AND_WAIT) ==
                             SYNC_FILE_RANGE_WRITE_AND_WAIT)
-                       sync_mode = WB_SYNC_ALL;
-
-               ret = __filemap_fdatawrite_range(mapping, offset, endbyte,
-                                                sync_mode);
+                       ret = filemap_fdatawrite_range(mapping, offset,
+                                       endbyte);
+               else
+                       ret = filemap_fdatawrite_range_kick(mapping, offset,
+                                       endbyte);
                if (ret < 0)
                        goto out;
        }
index 678d8ae23d014c360b28652519d48931f18d49cf..d0a7dd43c8359c7b585120e4fb1d60c24c97b5c4 100644 (file)
@@ -54,8 +54,6 @@ static inline int filemap_fdatawait(struct address_space *mapping)
 bool filemap_range_has_page(struct address_space *, loff_t lstart, loff_t lend);
 int filemap_write_and_wait_range(struct address_space *mapping,
                loff_t lstart, loff_t lend);
-int __filemap_fdatawrite_range(struct address_space *mapping,
-               loff_t start, loff_t end, int sync_mode);
 int filemap_fdatawrite_range(struct address_space *mapping,
                loff_t start, loff_t end);
 int filemap_check_errors(struct address_space *mapping);
index 588fe76c5a142ef982c77be0def7c33ca785db8a..f1be619f0e58b10d39bf689aff11f6e1185016f0 100644 (file)
@@ -111,8 +111,7 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice)
                spin_unlock(&file->f_lock);
                break;
        case POSIX_FADV_DONTNEED:
-               __filemap_fdatawrite_range(mapping, offset, endbyte,
-                                          WB_SYNC_NONE);
+               filemap_fdatawrite_range_kick(mapping, offset, endbyte);
 
                /*
                 * First and last FULL page! Partial pages are deliberately
index 7126d0587c949e7f64e000ef57e1185433d0cae4..f90f5bb2b8251133de9aaed708ebb9454483615b 100644 (file)
@@ -392,32 +392,23 @@ static int filemap_writeback(struct address_space *mapping, loff_t start,
 }
 
 /**
- * __filemap_fdatawrite_range - start writeback on mapping dirty pages in range
+ * filemap_fdatawrite_range - start writeback on mapping dirty pages in range
  * @mapping:   address space structure to write
  * @start:     offset in bytes where the range starts
  * @end:       offset in bytes where the range ends (inclusive)
- * @sync_mode: enable synchronous operation
  *
  * Start writeback against all of a mapping's dirty pages that lie
  * within the byte offsets <start, end> inclusive.
  *
- * If sync_mode is WB_SYNC_ALL then this is a "data integrity" operation, as
- * opposed to a regular memory cleansing writeback.  The difference between
- * these two operations is that if a dirty page/buffer is encountered, it must
- * be waited upon, and not just skipped over.
+ * This is a data integrity operation that waits upon dirty or in writeback
+ * pages.
  *
  * Return: %0 on success, negative error code otherwise.
  */
-int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
-                               loff_t end, int sync_mode)
-{
-       return filemap_writeback(mapping, start, end, sync_mode, NULL);
-}
-
 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
                loff_t end)
 {
-       return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL);
+       return filemap_writeback(mapping, start, end, WB_SYNC_ALL, NULL);
 }
 EXPORT_SYMBOL(filemap_fdatawrite_range);
 
@@ -441,7 +432,7 @@ EXPORT_SYMBOL(filemap_fdatawrite);
 int filemap_fdatawrite_range_kick(struct address_space *mapping, loff_t start,
                                  loff_t end)
 {
-       return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_NONE);
+       return filemap_writeback(mapping, start, end, WB_SYNC_NONE, NULL);
 }
 EXPORT_SYMBOL_GPL(filemap_fdatawrite_range_kick);
 
@@ -689,8 +680,7 @@ int filemap_write_and_wait_range(struct address_space *mapping,
                return 0;
 
        if (mapping_needs_writeback(mapping)) {
-               err = __filemap_fdatawrite_range(mapping, lstart, lend,
-                                                WB_SYNC_ALL);
+               err = filemap_fdatawrite_range(mapping, lstart, lend);
                /*
                 * Even if the above returned error, the pages may be
                 * written partially (e.g. -ENOSPC), so we wait for it.
@@ -792,8 +782,7 @@ int file_write_and_wait_range(struct file *file, loff_t lstart, loff_t lend)
                return 0;
 
        if (mapping_needs_writeback(mapping)) {
-               err = __filemap_fdatawrite_range(mapping, lstart, lend,
-                                                WB_SYNC_ALL);
+               err = filemap_fdatawrite_range(mapping, lstart, lend);
                /* See comment of filemap_write_and_wait() */
                if (err != -EIO)
                        __filemap_fdatawait_range(mapping, lstart, lend);