We can unref both old/new inodes with the same mutex lock. Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> --- Based-on: <20191212163904.159893-1-dgilb...@redhat.com> "virtiofs daemon" https://www.mail-archive.com/qemu-devel@nongnu.org/msg664652.html
tools/virtiofsd/passthrough_ll.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c index 57f58aef26..5c717cb5a1 100644 --- a/tools/virtiofsd/passthrough_ll.c +++ b/tools/virtiofsd/passthrough_ll.c @@ -1461,8 +1461,10 @@ static void lo_rename(fuse_req_t req, fuse_ino_t parent, const char *name, } out: - unref_inode_lolocked(lo, oldinode, 1); - unref_inode_lolocked(lo, newinode, 1); + pthread_mutex_lock(&lo->mutex); + unref_inode(lo, oldinode, 1); + unref_inode(lo, newinode, 1); + pthread_mutex_unlock(&lo->mutex); lo_inode_put(lo, &oldinode); lo_inode_put(lo, &newinode); lo_inode_put(lo, &parent_inode); -- 2.21.1