summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/refcounttree.h
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2009-08-18 05:19:58 +0200
committerJoel Becker <joel.becker@oracle.com>2009-09-23 05:09:28 +0200
commit8dec98edfe9684ce00b580a09dde3dcd21ee785b (patch)
tree3002e990974163a09ea6d427d7cf775aaca7acca /fs/ocfs2/refcounttree.h
parentocfs2: Abstract caching info checkpoint. (diff)
downloadlinux-8dec98edfe9684ce00b580a09dde3dcd21ee785b.tar.xz
linux-8dec98edfe9684ce00b580a09dde3dcd21ee785b.zip
ocfs2: Add new refcount tree lock resource in dlmglue.
refcount tree lock resource is used to protect refcount tree read/write among multiple nodes. Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/refcounttree.h')
-rw-r--r--fs/ocfs2/refcounttree.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/fs/ocfs2/refcounttree.h b/fs/ocfs2/refcounttree.h
new file mode 100644
index 000000000000..9a3695cdbb53
--- /dev/null
+++ b/fs/ocfs2/refcounttree.h
@@ -0,0 +1,36 @@
+/* -*- mode: c; c-basic-offset: 8; -*-
+ * vim: noexpandtab sw=8 ts=8 sts=0:
+ *
+ * refcounttree.h
+ *
+ * Copyright (C) 2009 Oracle. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ */
+#ifndef OCFS2_REFCOUNTTREE_H
+#define OCFS2_REFCOUNTTREE_H
+
+struct ocfs2_refcount_tree {
+ struct rb_node rf_node;
+ u64 rf_blkno;
+ u32 rf_generation;
+ struct rw_semaphore rf_sem;
+ struct ocfs2_lock_res rf_lockres;
+ struct kref rf_getcnt;
+ int rf_removed;
+
+ /* the following 4 fields are used by caching_info. */
+ struct ocfs2_caching_info rf_ci;
+ spinlock_t rf_lock;
+ struct mutex rf_io_mutex;
+ struct super_block *rf_sb;
+};
+
+#endif /* OCFS2_REFCOUNTTREE_H */