[Virtio-fs] [PATCH 1/6] virtiofsd: Drop ->vu_dispatch_rwlock while waiting for thread to exit
Greg Kurz
groug at kaod.org
Fri Jan 29 12:03:09 UTC 2021
On Tue, 26 Jan 2021 13:33:36 -0500
Vivek Goyal <vgoyal at redhat.com> wrote:
[...]
> >
> > Also, since pthread_rwlock_wrlock() can fail, I think we should
> > always check it's return value, at least with an assert() like
> > already done elsewhere.
>
> Will check return code of pthread_rwlock_wrlock() and probably use
> assert().
>
It turns out that pthread_rwlock_rdlock() and pthread_rwlock_unlock() can
also fail for various reasons that would likely indicate a programming
error, but their return values are never checked anywhere.
I have a patch to address this globally in this file. Should I post it
now or you prefer this series goes first ?
> Vivek
>
> >
> > > for (int i = 0; i < se->virtio_dev->nqueues; i++) {
> > > if (!se->virtio_dev->qi[i]) {
> > > continue;
> > > @@ -961,6 +974,7 @@ int virtio_loop(struct fuse_session *se)
> > > fuse_log(FUSE_LOG_INFO, "%s: Stopping queue %d thread\n", __func__, i);
> > > fv_queue_cleanup_thread(se->virtio_dev, i);
> > > }
> > > + pthread_rwlock_unlock(&se->virtio_dev->vu_dispatch_rwlock);
> > >
> > > fuse_log(FUSE_LOG_INFO, "%s: Exit\n", __func__);
> > >
> >
>
More information about the Virtio-fs
mailing list