bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH 3/5] trans/fakeroot: drop else


From: Samuel Thibault
Subject: Re: [PATCH 3/5] trans/fakeroot: drop else
Date: Wed, 11 Dec 2013 00:21:02 +0100
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Justus Winter, le Tue 10 Dec 2013 17:50:28 +0100, a écrit :
> * trans/fakeroot.c (netfs_S_dir_lookup): Drop else.

Ack.

> ---
>  trans/fakeroot.c |   76 
> ++++++++++++++++++++++++++----------------------------
>  1 file changed, 37 insertions(+), 39 deletions(-)
> 
> diff --git a/trans/fakeroot.c b/trans/fakeroot.c
> index 6882618..f278db1 100644
> --- a/trans/fakeroot.c
> +++ b/trans/fakeroot.c
> @@ -329,54 +329,52 @@ netfs_S_dir_lookup (struct protid *diruser,
>        mach_port_deallocate (mach_task_self (), file);
>        return err;
>      }
> +
> +  mach_port_deallocate (mach_task_self (), fsidport);
> +  if (fsidport == netfs_fsys_identity)
> +    {
> +      /* Talking to ourselves!  We just looked up one of our
> +      own nodes.  Find the node and return it.  */
> +      assert (! "reached");
> +    }
>    else
>      {
> -      mach_port_deallocate (mach_task_self (), fsidport);
> -      if (fsidport == netfs_fsys_identity)
> +      pthread_mutex_lock (&idport_ihash_lock);
> +      pthread_mutex_lock (&dnp->lock);
> +      struct netnode *nn = hurd_ihash_find (&idport_ihash, idport);
> +      if (nn != NULL)
>       {
> -       /* Talking to ourselves!  We just looked up one of our
> -          own nodes.  Find the node and return it.  */
> -       assert (! "reached");
> -     }
> -      else
> -     {
> -       pthread_mutex_lock (&idport_ihash_lock);
> -       pthread_mutex_lock (&dnp->lock);
> -       struct netnode *nn = hurd_ihash_find (&idport_ihash, idport);
> -       if (nn != NULL)
> +       assert (nn->np->nn == nn);
> +       np = nn->np;
> +       /* We already know about this node.  */
> +       mach_port_deallocate (mach_task_self (), idport);
> +
> +       if (np == dnp)
>           {
> -           assert (nn->np->nn == nn);
> -           np = nn->np;
> -           /* We already know about this node.  */
> -           mach_port_deallocate (mach_task_self (), idport);
> -
> -           if (np == dnp)
> -             {
> -               /* dnp is already locked.  */
> -             }
> -           else
> -             {
> -               pthread_mutex_lock (&np->lock);
> -               pthread_mutex_unlock (&dnp->lock);
> -             }
> -
> -           /* If the looked-up file carries a fake reference, we
> -              use that and clear the FAKE_REFERENCE flag.  */
> -           if (np->nn->faked & FAKE_REFERENCE)
> -             np->nn->faked &= ~FAKE_REFERENCE;
> -           else
> -             netfs_nref (np);
> -
> -           err = check_openmodes (np->nn, (flags & (O_RDWR|O_EXEC)), file);
> -           pthread_mutex_unlock (&idport_ihash_lock);
> +           /* dnp is already locked.  */
>           }
>         else
>           {
> -           err = new_node (file, idport, 1, flags, &np);
> +           pthread_mutex_lock (&np->lock);
>             pthread_mutex_unlock (&dnp->lock);
> -           if (!err)
> -             err = netfs_validate_stat (np, diruser->user);
>           }
> +
> +       /* If the looked-up file carries a fake reference, we
> +          use that and clear the FAKE_REFERENCE flag.  */
> +       if (np->nn->faked & FAKE_REFERENCE)
> +         np->nn->faked &= ~FAKE_REFERENCE;
> +       else
> +         netfs_nref (np);
> +
> +       err = check_openmodes (np->nn, (flags & (O_RDWR|O_EXEC)), file);
> +       pthread_mutex_unlock (&idport_ihash_lock);
> +     }
> +      else
> +     {
> +       err = new_node (file, idport, 1, flags, &np);
> +       pthread_mutex_unlock (&dnp->lock);
> +       if (!err)
> +         err = netfs_validate_stat (np, diruser->user);
>       }
>      }
>    if (err)
> -- 
> 1.7.10.4
> 

-- 
Samuel
#include <culture.h>



reply via email to

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