diff options
| author | Jens Axboe <[email protected]> | 2024-12-20 15:47:48 +0000 |
|---|---|---|
| committer | Andrew Morton <[email protected]> | 2025-01-26 04:22:43 +0000 |
| commit | dddc559f2e7cff9c6525150cd29ef3a4f6692b26 (patch) | |
| tree | 7c161d5482ddffb230308d72c3e035bf34f18ed3 /mm/filemap.c | |
| parent | mm/filemap: drop streaming/uncached pages when writeback completes (diff) | |
| download | kernel-dddc559f2e7cff9c6525150cd29ef3a4f6692b26.tar.gz kernel-dddc559f2e7cff9c6525150cd29ef3a4f6692b26.zip | |
mm/filemap: add filemap_fdatawrite_range_kick() helper
Works like filemap_fdatawrite_range(), except it's a non-integrity data
writeback and hence only starts writeback on the specified range. Will
help facilitate generically starting uncached writeback from
generic_write_sync(), as header dependencies preclude doing this inline
from fs.h.
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
Cc: Brian Foster <[email protected]>
Cc: Chris Mason <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Johannes Weiner <[email protected]>
Cc: Kirill A. Shutemov <[email protected]>
Cc: Matthew Wilcox (Oracle) <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'mm/filemap.c')
| -rw-r--r-- | mm/filemap.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index fb17b573ae51..0aa3861aed45 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -441,6 +441,24 @@ int filemap_fdatawrite_range(struct address_space *mapping, loff_t start, EXPORT_SYMBOL(filemap_fdatawrite_range); /** + * filemap_fdatawrite_range_kick - start writeback on a range + * @mapping: target address_space + * @start: index to start writeback on + * @end: last (non-inclusive) index for writeback + * + * This is a non-integrity writeback helper, to start writing back folios + * for the indicated range. + * + * Return: %0 on success, negative error code otherwise. + */ +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); +} +EXPORT_SYMBOL_GPL(filemap_fdatawrite_range_kick); + +/** * filemap_flush - mostly a non-blocking flush * @mapping: target address_space * |
