The lo_add_dirp_mapping() function assumes lo->mutex is held, so we
should acquire it.

Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
---
 contrib/virtiofsd/passthrough_ll.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contrib/virtiofsd/passthrough_ll.c 
b/contrib/virtiofsd/passthrough_ll.c
index 417a104218..e1d729d26b 100644
--- a/contrib/virtiofsd/passthrough_ll.c
+++ b/contrib/virtiofsd/passthrough_ll.c
@@ -1357,7 +1357,9 @@ static void lo_opendir(fuse_req_t req, fuse_ino_t ino, 
struct fuse_file_info *fi
 
        g_atomic_int_set(&d->refcount, 1); /* paired with lo_releasedir() */
 
+       pthread_mutex_lock(&lo->mutex);
        fh = lo_add_dirp_mapping(req, d);
+       pthread_mutex_unlock(&lo->mutex);
        if (fh == -1)
                goto out_err;
 
-- 
2.21.0


Reply via email to