fuse: use exclusive lock when FUSE_I_CACHE_IO_MODE is set

This may be a typo. The comment has said shared locks are
not allowed when this bit is set. If using shared lock, the
wait in `fuse_file_cached_io_open` may be forever.

Fixes: 205c1d8026 ("fuse: allow parallel dio writes with FUSE_DIRECT_IO_ALLOW_MMAP")
CC: stable@vger.kernel.org # v6.9
Signed-off-by: yangyun <yangyun50@huawei.com>
Reviewed-by: Bernd Schubert <bschubert@ddn.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
yangyun 2024-09-14 16:51:31 +08:00 committed by Miklos Szeredi
parent fcd2d9e1fd
commit 2f3d8ff457

View File

@ -1345,7 +1345,7 @@ static bool fuse_dio_wr_exclusive_lock(struct kiocb *iocb, struct iov_iter *from
/* shared locks are not allowed with parallel page cache IO */ /* shared locks are not allowed with parallel page cache IO */
if (test_bit(FUSE_I_CACHE_IO_MODE, &fi->state)) if (test_bit(FUSE_I_CACHE_IO_MODE, &fi->state))
return false; return true;
/* Parallel dio beyond EOF is not supported, at least for now. */ /* Parallel dio beyond EOF is not supported, at least for now. */
if (fuse_io_past_eof(iocb, from)) if (fuse_io_past_eof(iocb, from))