tested out fine so far On Sat, Jan 13, 2024 at 3:41 AM gregkh@xxxxxxxxxxxxxxxxxxx <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > On Sat, Jan 13, 2024 at 10:31:46AM +0100, Salvatore Bonaccorso wrote: > > Hi, > > > > On Fri, Jan 12, 2024 at 11:20:53PM -0600, Steve French wrote: > > > Here is a patch similar to what David suggested. Seems > > > straightforward fix. See attached. > > > I did limited testing on it tonight with 6.1 (will do more tomorrow, > > > but feedback welcome) but it did fix the regression in xfstest > > > generic/001 mentioned in this thread. > > > > > > > > > > > > > > > On Fri, Jan 12, 2024 at 8:26 AM David Howells <dhowells@xxxxxxxxxx> wrote: > > > > > > > > gregkh@xxxxxxxxxxxxxxxxxxx <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > > > > > > > > I guess I can just revert the single commit here? Can someone send me > > > > > the revert that I need to do so as I get it right? > > > > > > > > In cifs_flush_folio() the error check for filemap_get_folio() just needs > > > > changing to check !folio instead of IS_ERR(folio). > > > > > > > > David > > > > > > > > > > > > > > > > > -- > > > Thanks, > > > > > > Steve > > > > > From ba288a873fb8ac3d1bf5563366558a905620c071 Mon Sep 17 00:00:00 2001 > > > From: Steve French <stfrench@xxxxxxxxxxxxx> > > > Date: Fri, 12 Jan 2024 23:08:51 -0600 > > > Subject: [PATCH] cifs: fix flushing folio regression for 6.1 backport > > > > > > filemap_get_folio works differenty in 6.1 vs. later kernels > > > (returning NULL in 6.1 instead of an error). Add > > > this minor correction which addresses the regression in the patch: > > > cifs: Fix flushing, invalidation and file size with copy_file_range() > > > > > > Suggested-by: David Howells <dhowells@xxxxxxxxxx> > > > Reported-by: Salvatore Bonaccorso <carnil@xxxxxxxxxx> > > > Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx> > > > --- > > > fs/smb/client/cifsfs.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/fs/smb/client/cifsfs.c b/fs/smb/client/cifsfs.c > > > index 2e15b182e59f..ac0b7f229a23 100644 > > > --- a/fs/smb/client/cifsfs.c > > > +++ b/fs/smb/client/cifsfs.c > > > @@ -1240,7 +1240,7 @@ static int cifs_flush_folio(struct inode *inode, loff_t pos, loff_t *_fstart, lo > > > int rc = 0; > > > > > > folio = filemap_get_folio(inode->i_mapping, index); > > > - if (IS_ERR(folio)) > > > + if ((!folio) || (IS_ERR(folio))) > > > return 0; > > > > > > size = folio_size(folio); > > > > I was able to test the patch with the case from the Debian bugreport > > and seems to resolve the issue. Even if late, as Greg just queued up > > already: > > > > Tested-by: Salvatore Bonaccorso <carnil@xxxxxxxxxx> > > Thanks, I've added your tested-by to the patch now. > > greg k-h -- Thanks, Steve