bug-hurd
[Top][All Lists]
Advanced

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

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


From: Justus Winter
Subject: [PATCH 3/5] trans/fakeroot: drop else
Date: Tue, 10 Dec 2013 17:50:28 +0100

* trans/fakeroot.c (netfs_S_dir_lookup): Drop else.
---
 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




reply via email to

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