• Miklos Szeredi's avatar
    fuse: launder page should wait for page writeback · 3993382b
    Miklos Szeredi authored
    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: default avatarQian Cai <cai@redhat.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    3993382b
file.c 85.4 KB