• David Howells's avatar
    mm: Fix filemap_invalidate_inode() to use invalidate_inode_pages2_range() · c26096ee
    David Howells authored
    Fix filemap_invalidate_inode() to use invalidate_inode_pages2_range()
    rather than truncate_inode_pages_range().  The latter clears the
    invalidated bit of a partial pages rather than discarding it entirely.
    This causes copy_file_range() to fail on cifs because the partial pages at
    either end of the destination range aren't evicted and reread, but rather
    just partly cleared.
    
    This causes generic/075 and generic/112 xfstests to fail.
    
    Fixes: 74e797d7 ("mm: Provide a means of invalidation without using launder_folio")
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Link: https://lore.kernel.org/r/20240828210249.1078637-5-dhowells@redhat.com
    cc: Matthew Wilcox <willy@infradead.org>
    cc: Miklos Szeredi <miklos@szeredi.hu>
    cc: Trond Myklebust <trond.myklebust@hammerspace.com>
    cc: Christoph Hellwig <hch@lst.de>
    cc: Andrew Morton <akpm@linux-foundation.org>
    cc: Alexander Viro <viro@zeniv.linux.org.uk>
    cc: Christian Brauner <brauner@kernel.org>
    cc: Jeff Layton <jlayton@kernel.org>
    cc: linux-mm@kvack.org
    cc: linux-fsdevel@vger.kernel.org
    cc: netfs@lists.linux.dev
    cc: v9fs@lists.linux.dev
    cc: linux-afs@lists.infradead.org
    cc: ceph-devel@vger.kernel.org
    cc: linux-cifs@vger.kernel.org
    cc: linux-nfs@vger.kernel.org
    cc: devel@lists.orangefs.org
    Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
    c26096ee
filemap.c 125 KB