]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fuse: use exclusive lock when FUSE_I_CACHE_IO_MODE is set
authoryangyun <yangyun50@huawei.com>
Sat, 14 Sep 2024 08:51:31 +0000 (16:51 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:33:22 +0000 (16:33 +0200)
commit 2f3d8ff457982f4055fe8f7bf19d3821ba22c376 upstream.

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: 205c1d802683 ("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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/fuse/file.c

index ed76121f73f2e0f11067738e9eaa77ad0db4a19c..08f7d538ca98f4dab3d379d57efbebfea881b123 100644 (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 */
        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. */
        if (fuse_io_past_eof(iocb, from))