]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
fuse: launder page should wait for page writeback
authorMiklos Szeredi <mszeredi@redhat.com>
Wed, 11 Nov 2020 16:22:31 +0000 (17:22 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Wed, 11 Nov 2020 16:22:31 +0000 (17:22 +0100)
commit3993382bb3198cc5e263c3519418e716bd57b056
treea2d97126ba8c865f429696c7797894fb0dbf8aff
parent3650b228f83adda7e5ee532e2b90429c03f7b9ec
fuse: launder page should wait for page writeback

Qian Cai reports that the WARNING in tree_insert() can be triggered by a
fuzzer with the following call chain:

invalidate_inode_pages2_range()
   fuse_launder_page()
      fuse_writepage_locked()
         tree_insert()

The reason is that another write for the same page is already queued.

The simplest fix is to wait until the pending write is completed and only
after that queue the new write.

Since this case is very rare, the additional wait should not be a problem.

Reported-by: Qian Cai <cai@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/file.c