* Philippe Mathieu-Daudé ([email protected]) wrote: > 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);
While that would work; I'd rather keep that code simpler and the same as every other normal operation - we only use the unref_inode in one other place and that's because we're iterating the hash table while deleting stuff. Dave > lo_inode_put(lo, &oldinode); > lo_inode_put(lo, &newinode); > lo_inode_put(lo, &parent_inode); > -- > 2.21.1 > -- Dr. David Alan Gilbert / [email protected] / Manchester, UK
