Message ID | 20221128155632.3950447-3-bfoster@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | filemap: skip write and wait if end offset precedes start | expand |
On Mon, Nov 28, 2022 at 10:56:32AM -0500, Brian Foster wrote: > generic_fadvise() sets endbyte = -1 to specify end of file (i.e. if > length == 0 is passed from userspace). Most other callers to > filemap_fdatawrite_range() use LLONG_MAX for this purpose, > particularly if they also call fdatawait_range() (which requires end > >= start). For example, sync_file_range(), vfs_fsync() (where the > range is passed down through per-fs ->fsync() callbacks), > filemap_flush(), etc. generic_fadvise() does not currently wait on > writeback, but fix the call up to be consistent with other callers. Looks good: Reviewed-by: Christoph Hellwig <hch@lst.de>
diff --git a/mm/fadvise.c b/mm/fadvise.c index c76ee665355a..bf04fec87f35 100644 --- a/mm/fadvise.c +++ b/mm/fadvise.c @@ -72,7 +72,7 @@ int generic_fadvise(struct file *file, loff_t offset, loff_t len, int advice) */ endbyte = (u64)offset + (u64)len; if (!len || endbyte < len) - endbyte = -1; + endbyte = LLONG_MAX; else endbyte--; /* inclusive */