qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 105/104] virtiofsd: Unref old/new inodes with the same mutex


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 105/104] virtiofsd: Unref old/new inodes with the same mutex lock in lo_rename()
Date: Mon, 20 Jan 2020 09:27:22 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

On 1/19/20 9:35 AM, Xiao Yang wrote:
On 2020/1/17 21:32, Philippe Mathieu-Daudé wrote:
We can unref both old/new inodes with the same mutex lock.

Signed-off-by: Philippe Mathieu-Daudé<address@hidden>
---
Based-on:<address@hidden>
"virtiofs daemon"
https://www.mail-archive.com/address@hidden/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);
Hi,

It seems to avoid calling pthread_mutex_lock and pthread_mutex_unlock twice.
Does the change fix some issues or improve the performance?

No issue, simply intend to improve the performance.

Best Regards,
Xiao Yang
      lo_inode_put(lo,&oldinode);
      lo_inode_put(lo,&newinode);
      lo_inode_put(lo,&parent_inode);







reply via email to

[Prev in Thread] Current Thread [Next in Thread]