aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dlmglue.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ocfs2/dlmglue.h')
-rw-r--r--fs/ocfs2/dlmglue.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/fs/ocfs2/dlmglue.h b/fs/ocfs2/dlmglue.h
index 243ae862ece5..4a2769387229 100644
--- a/fs/ocfs2/dlmglue.h
+++ b/fs/ocfs2/dlmglue.h
@@ -27,10 +27,14 @@
27#ifndef DLMGLUE_H 27#ifndef DLMGLUE_H
28#define DLMGLUE_H 28#define DLMGLUE_H
29 29
30#define OCFS2_LVB_VERSION 3 30#include "dcache.h"
31
32#define OCFS2_LVB_VERSION 4
31 33
32struct ocfs2_meta_lvb { 34struct ocfs2_meta_lvb {
33 __be32 lvb_version; 35 __u8 lvb_version;
36 __u8 lvb_reserved0;
37 __be16 lvb_reserved1;
34 __be32 lvb_iclusters; 38 __be32 lvb_iclusters;
35 __be32 lvb_iuid; 39 __be32 lvb_iuid;
36 __be32 lvb_igid; 40 __be32 lvb_igid;
@@ -41,7 +45,8 @@ struct ocfs2_meta_lvb {
41 __be16 lvb_imode; 45 __be16 lvb_imode;
42 __be16 lvb_inlink; 46 __be16 lvb_inlink;
43 __be32 lvb_iattr; 47 __be32 lvb_iattr;
44 __be32 lvb_reserved[2]; 48 __be32 lvb_igeneration;
49 __be32 lvb_reserved2;
45}; 50};
46 51
47/* ocfs2_meta_lock_full() and ocfs2_data_lock_full() 'arg_flags' flags */ 52/* ocfs2_meta_lock_full() and ocfs2_data_lock_full() 'arg_flags' flags */
@@ -57,9 +62,14 @@ void ocfs2_dlm_shutdown(struct ocfs2_super *osb);
57void ocfs2_lock_res_init_once(struct ocfs2_lock_res *res); 62void ocfs2_lock_res_init_once(struct ocfs2_lock_res *res);
58void ocfs2_inode_lock_res_init(struct ocfs2_lock_res *res, 63void ocfs2_inode_lock_res_init(struct ocfs2_lock_res *res,
59 enum ocfs2_lock_type type, 64 enum ocfs2_lock_type type,
65 unsigned int generation,
60 struct inode *inode); 66 struct inode *inode);
67void ocfs2_dentry_lock_res_init(struct ocfs2_dentry_lock *dl,
68 u64 parent, struct inode *inode);
61void ocfs2_lock_res_free(struct ocfs2_lock_res *res); 69void ocfs2_lock_res_free(struct ocfs2_lock_res *res);
62int ocfs2_create_new_inode_locks(struct inode *inode); 70int ocfs2_create_new_inode_locks(struct inode *inode);
71int ocfs2_create_new_lock(struct ocfs2_super *osb,
72 struct ocfs2_lock_res *lockres, int ex, int local);
63int ocfs2_drop_inode_locks(struct inode *inode); 73int ocfs2_drop_inode_locks(struct inode *inode);
64int ocfs2_data_lock_full(struct inode *inode, 74int ocfs2_data_lock_full(struct inode *inode,
65 int write, 75 int write,
@@ -93,7 +103,12 @@ void ocfs2_super_unlock(struct ocfs2_super *osb,
93 int ex); 103 int ex);
94int ocfs2_rename_lock(struct ocfs2_super *osb); 104int ocfs2_rename_lock(struct ocfs2_super *osb);
95void ocfs2_rename_unlock(struct ocfs2_super *osb); 105void ocfs2_rename_unlock(struct ocfs2_super *osb);
106int ocfs2_dentry_lock(struct dentry *dentry, int ex);
107void ocfs2_dentry_unlock(struct dentry *dentry, int ex);
108
96void ocfs2_mark_lockres_freeing(struct ocfs2_lock_res *lockres); 109void ocfs2_mark_lockres_freeing(struct ocfs2_lock_res *lockres);
110void ocfs2_simple_drop_lockres(struct ocfs2_super *osb,
111 struct ocfs2_lock_res *lockres);
97 112
98/* for the vote thread */ 113/* for the vote thread */
99void ocfs2_process_blocked_lock(struct ocfs2_super *osb, 114void ocfs2_process_blocked_lock(struct ocfs2_super *osb,