diff options
author | Flavio Cruz <flaviocruz@gmail.com> | 2016-02-07 01:33:00 -0500 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2016-02-07 15:42:23 +0100 |
commit | afea5285b0e40b68f97b47f0f0edc471b554fb34 (patch) | |
tree | d050d0e9738372db680d1d4036c63bd7d6de6cfb /libnetfs/io-reauthenticate.c | |
parent | 35ae0168bbdae2eb7029262f49d394046a67860f (diff) | |
download | hurd-afea5285b0e40b68f97b47f0f0edc471b554fb34.tar.gz hurd-afea5285b0e40b68f97b47f0f0edc471b554fb34.tar.bz2 hurd-afea5285b0e40b68f97b47f0f0edc471b554fb34.zip |
Use refcount_t for peropen reference counting in libnetfs.
* libnetfs/netfs.h: Use refcount_t.
* libnetfs/make-peropen.c: Initialize to 1 with refcount_init just like in libdiskfs.
* libnetfs/make-protid.c: Don't increment the count here. Do it like libdiskfs.
* libnetfs/io-duplicate.c: Add refcount_ref since netfs_make_protid no longer increments the refcount.
* libnetfs/io-reauthenticate.c: Likewise.
* libnetfs/io-restrict-auth.c: Likewise.
* libnetfs/release-peropen.c: Dereference without locking.
Diffstat (limited to 'libnetfs/io-reauthenticate.c')
-rw-r--r-- | libnetfs/io-reauthenticate.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libnetfs/io-reauthenticate.c b/libnetfs/io-reauthenticate.c index 8ff4182b..b2d4a440 100644 --- a/libnetfs/io-reauthenticate.c +++ b/libnetfs/io-reauthenticate.c @@ -34,12 +34,14 @@ netfs_S_io_reauthenticate (struct protid *user, mach_port_t rend_port) /* This routine must carefully ignore EINTR because we are a simpleroutine, so callers won't know to restart. */ + refcount_ref (&user->po->refcnt); pthread_mutex_lock (&user->po->np->lock); do newpi = netfs_make_protid (user->po, 0); while (! newpi && errno == EINTR); if (! newpi) { + refcount_deref (&user->po->refcnt); pthread_mutex_unlock (&user->po->np->lock); return errno; } |