]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
9p: Add a migrate_folio method
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 2 Apr 2025 14:59:55 +0000 (15:59 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jun 2025 13:32:36 +0000 (15:32 +0200)
commit 03ddd7725ed1b39cf9251e1a420559f25dac49b3 upstream.

The migration code used to be able to migrate dirty 9p folios by writing
them back using writepage.  When the writepage method was removed,
we neglected to add a migrate_folio method, which means that dirty 9p
folios have been unmovable ever since.  This reduced our success at
defragmenting memory on machines which use 9p heavily.

Fixes: 80105ed2fd27 (9p: Use netfslib read/write_iter)
Cc: stable@vger.kernel.org
Cc: David Howells <dhowells@redhat.com>
Cc: v9fs@lists.linux.dev
Signed-off-by: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Link: https://lore.kernel.org/r/20250402150005.2309458-2-willy@infradead.org
Acked-by: Dominique Martinet <asmadeus@codewreck.org>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/9p/vfs_addr.c

index 819c752332355e2e45976a7f962c2ef480678f7d..db78c06ba0cc6f0a478bc07d105dff72c357ddf7 100644 (file)
@@ -160,4 +160,5 @@ const struct address_space_operations v9fs_addr_operations = {
        .invalidate_folio       = netfs_invalidate_folio,
        .direct_IO              = noop_direct_IO,
        .writepages             = netfs_writepages,
+       .migrate_folio          = filemap_migrate_folio,
 };