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 19:55:16 +0100

On Mon, Jan 20, 2020 at 7:52 PM Dr. David Alan Gilbert
<address@hidden> wrote:
> * Philippe Mathieu-Daudé (address@hidden) 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);
>
> 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.

OK I understand.

> Dave
>
> >      lo_inode_put(lo, &oldinode);
> >      lo_inode_put(lo, &newinode);
> >      lo_inode_put(lo, &parent_inode);
> > --
> > 2.21.1
> >
> --
> Dr. David Alan Gilbert / address@hidden / Manchester, UK




reply via email to

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