On Mon, Jun 24, 2024 at 12:28:15PM +0800, Yang Erkun wrote: > After commit f3dc1bdb6b0b("cifs: Fix writeback data corruption"), the > writepages for cifs will find all folio needed writepage with two phase. > The first folio will be found in cifs_writepages_begin, and the latter > various folios will be found in cifs_extend_writeback. > > All those will first get folio, and for normal case, once we set page > writeback and after do really write, we should put the reference, folio > found in cifs_extend_writeback do this with folio_batch_release. But the > folio found in cifs_writepages_begin never get the chance do it. And > every writepages call, we will leak a folio(found this problem while do > xfstests over cifs). > > Besides, the exist path seem never handle this folio correctly, fix it too > with this patch. > > The problem does not exist in mainline since writepages path for cifs > has changed to netfs. It's had to backport all related change, so try fix > this problem with this single patch. > > Fixes: f3dc1bdb6b0b ("cifs: Fix writeback data corruption") > Signed-off-by: Yang Erkun <yangerkun@xxxxxxxxxx> > --- > fs/smb/client/file.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. </formletter>