fuse: lock inode unconditionally in fuse_fallocate()
authorMiklos Szeredi <mszeredi@redhat.com>
Wed, 23 Nov 2022 08:10:42 +0000 (09:10 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Wed, 23 Nov 2022 08:10:42 +0000 (09:10 +0100)
commit44361e8cf9ddb23f17bdcc40ca944abf32e83e79
tree5ed4b8a896e1f68fdf096ae86621413d8a2cafc1
parenteb7081409f94a9a8608593d0fb63a1aa3d6f95d8
fuse: lock inode unconditionally in fuse_fallocate()

file_modified() must be called with inode lock held.  fuse_fallocate()
didn't lock the inode in case of just FALLOC_KEEP_SIZE flags value, which
resulted in a kernel Warning in notify_change().

Lock the inode unconditionally, like all other fallocate implementations
do.

Reported-by: Pengfei Xu <pengfei.xu@intel.com>
Reported-and-tested-by: syzbot+462da39f0667b357c4b6@syzkaller.appspotmail.com
Fixes: 4a6f278d4827 ("fuse: add file_modified() to fallocate")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/file.c