On Fri, Jun 13, 2025 at 1:51 AM lirongqing <lirongq...@baidu.com> wrote: > > From: Li RongQing <lirongq...@baidu.com> > > Since clear_bit is an atomic operation, the spinlock is redundant and > can be removed, reducing lock contention is good for performance. > > Signed-off-by: Li RongQing <lirongq...@baidu.com> > --- > fs/fuse/virtio_fs.c | 2 -- > 1 file changed, 2 deletions(-)
The spin lock originally protected req->list, so the lock has no use here. The initial req->list access is still protected by fpq->lock in virtio_fs_requests_done_work(): while ((req = virtqueue_get_buf(vq, &len)) != NULL) { spin_lock(&fpq->lock); list_move_tail(&req->list, &reqs); spin_unlock(&fpq->lock); } Looks safe, but please see the kernel test robot email about an unused variable warning. Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com> > > diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c > index 8f2e2f3..de34179 100644 > --- a/fs/fuse/virtio_fs.c > +++ b/fs/fuse/virtio_fs.c > @@ -791,9 +791,7 @@ static void virtio_fs_request_complete(struct fuse_req > *req, > } > } > > - spin_lock(&fpq->lock); > clear_bit(FR_SENT, &req->flags); > - spin_unlock(&fpq->lock); > > fuse_request_end(req); > spin_lock(&fsvq->lock); > -- > 2.9.4 > >