[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>
- Re: [PATCH 10/13] trans: fix reference counting bug in fakeroot, (continued)
- Re: More fixes for fakeroot-hurd, Samuel Thibault, 2013/12/09
- [PATCH 1/5] utils/settrans: fix the teardown of chrooted environments, Justus Winter, 2013/12/10
- [PATCH 2/5] trans/fakeroot: fix ownership of newly created files, Justus Winter, 2013/12/10
- [PATCH 3/5] trans/fakeroot: drop else, Justus Winter, 2013/12/10
- Re: [PATCH 3/5] trans/fakeroot: drop else,
Samuel Thibault <=
- [PATCH 4/5] trans/fakeroot: remove dead code, Justus Winter, 2013/12/10
- [PATCH 5/5] trans/fakeroot: remove dead code, Justus Winter, 2013/12/10
- updated 1st patch, Justus Winter, 2013/12/10
- Re: [PATCH 1/5] utils/settrans: fix the teardown of chrooted environments, Samuel Thibault, 2013/12/10