We can unref both old/new inodes with the same mutex lock.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
Based-on: <[email protected]>
"virtiofs daemon"
https://www.mail-archive.com/[email protected]/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