David Howells <dhowe...@redhat.com> wrote:

> +                     .range_start    = first,
> +                     .range_end      = last,
> ...
> +     truncate_inode_pages_range(mapping, first, last);

These actually take file offsets and not page ranges and so the attached
change is needed.  Without this, the generic/412 xfstest fails.

David
---
diff --git a/mm/filemap.c b/mm/filemap.c
index 53516305b4b4..3916fc8b10e6 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -4171,15 +4171,15 @@ int filemap_invalidate_inode(struct inode *inode, bool 
flush,
                struct writeback_control wbc = {
                        .sync_mode      = WB_SYNC_ALL,
                        .nr_to_write    = LONG_MAX,
-                       .range_start    = first,
-                       .range_end      = last,
+                       .range_start    = start,
+                       .range_end      = end,
                };
 
                filemap_fdatawrite_wbc(mapping, &wbc);
        }
 
        /* Wait for writeback to complete on all folios and discard. */
-       truncate_inode_pages_range(mapping, first, last);
+       truncate_inode_pages_range(mapping, start, end);
 
 unlock:
        filemap_invalidate_unlock(mapping);

Reply via email to