cifs: Enable large folio support
authorDavid Howells <dhowells@redhat.com>
Wed, 17 Apr 2024 14:00:55 +0000 (15:00 +0100)
committerDavid Howells <dhowells@redhat.com>
Wed, 1 May 2024 17:08:22 +0000 (18:08 +0100)
Now that cifs is using netfslib for its VM interaction, it only sees I/O in
terms of iov_iter iterators and does not see pages or folios.  This makes
large multipage folios transparent to cifs and so we can turn on multipage
folios on regular files.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Steve French <sfrench@samba.org>
cc: Shyam Prasad N <nspmangalore@gmail.com>
cc: Rohith Surabattula <rohiths.msft@gmail.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cifs@vger.kernel.org
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
cc: linux-mm@kvack.org

fs/smb/client/inode.c

index 5239c823de8655943e6f27837370ae4b54b3d680..e8bfeea23660e47a6cf2e59544bafdfa0f913b16 100644 (file)
@@ -72,6 +72,7 @@ static void cifs_set_ops(struct inode *inode)
                        inode->i_data.a_ops = &cifs_addr_ops_smallbuf;
                else
                        inode->i_data.a_ops = &cifs_addr_ops;
+               mapping_set_large_folios(inode->i_mapping);
                break;
        case S_IFDIR:
                if (IS_AUTOMOUNT(inode)) {