summaryrefslogtreecommitdiff
path: root/libdiskfs/diskfs.h
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-06 18:58:10 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-05-26 11:18:13 +0200
commitdc00a94df4a06764d822b29cbf35b532343821c8 (patch)
treee7564cd1b9db1e8019cf1d4a458922c0de245b04 /libdiskfs/diskfs.h
parentb793108b09138edf0a963d9e3107eb400ee27011 (diff)
libdiskfs: lock-less reference counting for peropen objects
* libdiskfs/diskfs.h (struct peropen): Use refcount_t for field refcnt. * libdiskfs/peropen-make.c (diskfs_make_peropen): Initialize refcnt. * libdiskfs/peropen-rele.c (diskfs_release_peropen): Adjust accordingly. * libdiskfs/protid-make.c (diskfs_start_protid): Likewise. Also, the node must no longer be locked, adjust comment accordingly. (diskfs_create_protid): Likewise.
Diffstat (limited to 'libdiskfs/diskfs.h')
-rw-r--r--libdiskfs/diskfs.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h
index 8151ddc1..ae1a1502 100644
--- a/libdiskfs/diskfs.h
+++ b/libdiskfs/diskfs.h
@@ -28,6 +28,7 @@
#include <hurd/iohelp.h>
#include <idvec.h>
#include <features.h>
+#include <refcount.h>
#ifdef DISKFS_DEFINE_EXTERN_INLINE
#define DISKFS_EXTERN_INLINE
@@ -57,7 +58,7 @@ struct peropen
{
int filepointer;
int lock_status;
- int refcnt;
+ refcount_t refcnt;
int openstat;
struct node *np;
@@ -792,12 +793,12 @@ diskfs_create_node (struct node *dir, const char *name, mode_t mode,
struct dirstat *ds);
/* Create and return a protid for an existing peropen PO in CRED,
- referring to user USER. The node PO->np must be locked. */
+ referring to user USER. */
error_t diskfs_create_protid (struct peropen *po, struct iouser *user,
struct protid **cred);
/* Build and return in CRED a protid which has no user identification, for
- peropen PO. The node PO->np must be locked. */
+ peropen PO. */
error_t diskfs_start_protid (struct peropen *po, struct protid **cred);
/* Finish building protid CRED started with diskfs_start_protid;