summaryrefslogtreecommitdiff
path: root/src/sys/include/os
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/include/os')
-rw-r--r--src/sys/include/os/vnode.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sys/include/os/vnode.h b/src/sys/include/os/vnode.h
index ed98206..354c73c 100644
--- a/src/sys/include/os/vnode.h
+++ b/src/sys/include/os/vnode.h
@@ -31,6 +31,7 @@
#define _OS_VNODE_H_ 1
#include <sys/types.h>
+#include <sys/atomic.h>
/* Forward declarations */
struct vnode;
@@ -82,16 +83,20 @@ struct vop {
* [V] Set up by VFS
* [F/V]: Both F and V
*
+ * @refcount: How many objects have a reference
* @type: Vnode type [F/V]
* @vops: Vnode operations hooks [F]
* @data: Filesystem specific data [F]
*/
struct vnode {
+ int refcount;
vtype_t type;
struct vop *vops;
void *data;
};
+#define vnode_ref(VP) (atomic_inc_int(&(VP)->refcount))
+
/*
* Allocate a new vnode
*