From afea5285b0e40b68f97b47f0f0edc471b554fb34 Mon Sep 17 00:00:00 2001 From: Flavio Cruz Date: Sun, 7 Feb 2016 01:33:00 -0500 Subject: 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. --- libnetfs/io-reauthenticate.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libnetfs/io-reauthenticate.c') 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; } -- cgit v1.2.3