diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index bf0da0382c9ed99b4d9c54cb56c09f5bf8399996..c5e38061a48b1f9435474c40fd01a18a3b4c6adf 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -2032,8 +2032,10 @@ static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe, ret = fuse_dev_do_write(fud, &cs, len); + pipe_lock(pipe); for (idx = 0; idx < nbuf; idx++) pipe_buf_release(pipe, &bufs[idx]); + pipe_unlock(pipe); out: kvfree(bufs);