diff options
Diffstat (limited to 'fs/ocfs2/stack_o2cb.c')
| -rw-r--r-- | fs/ocfs2/stack_o2cb.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c index 3038c92af493..c4cedff365df 100644 --- a/fs/ocfs2/stack_o2cb.c +++ b/fs/ocfs2/stack_o2cb.c | |||
| @@ -161,20 +161,26 @@ static int dlm_status_to_errno(enum dlm_status status) | |||
| 161 | 161 | ||
| 162 | static void o2dlm_lock_ast_wrapper(void *astarg) | 162 | static void o2dlm_lock_ast_wrapper(void *astarg) |
| 163 | { | 163 | { |
| 164 | union ocfs2_dlm_lksb *lksb = astarg; | ||
| 165 | |||
| 164 | BUG_ON(o2cb_stack.sp_proto == NULL); | 166 | BUG_ON(o2cb_stack.sp_proto == NULL); |
| 165 | 167 | ||
| 166 | o2cb_stack.sp_proto->lp_lock_ast(astarg); | 168 | o2cb_stack.sp_proto->lp_lock_ast(lksb); |
| 167 | } | 169 | } |
| 168 | 170 | ||
| 169 | static void o2dlm_blocking_ast_wrapper(void *astarg, int level) | 171 | static void o2dlm_blocking_ast_wrapper(void *astarg, int level) |
| 170 | { | 172 | { |
| 173 | union ocfs2_dlm_lksb *lksb = astarg; | ||
| 174 | |||
| 171 | BUG_ON(o2cb_stack.sp_proto == NULL); | 175 | BUG_ON(o2cb_stack.sp_proto == NULL); |
| 172 | 176 | ||
| 173 | o2cb_stack.sp_proto->lp_blocking_ast(astarg, level); | 177 | o2cb_stack.sp_proto->lp_blocking_ast(lksb, level); |
| 174 | } | 178 | } |
| 175 | 179 | ||
| 176 | static void o2dlm_unlock_ast_wrapper(void *astarg, enum dlm_status status) | 180 | static void o2dlm_unlock_ast_wrapper(void *astarg, enum dlm_status status) |
| 177 | { | 181 | { |
| 182 | union ocfs2_dlm_lksb *lksb = astarg; | ||
| 183 | |||
| 178 | int error = dlm_status_to_errno(status); | 184 | int error = dlm_status_to_errno(status); |
| 179 | 185 | ||
| 180 | BUG_ON(o2cb_stack.sp_proto == NULL); | 186 | BUG_ON(o2cb_stack.sp_proto == NULL); |
| @@ -193,7 +199,7 @@ static void o2dlm_unlock_ast_wrapper(void *astarg, enum dlm_status status) | |||
| 193 | if (status == DLM_CANCELGRANT) | 199 | if (status == DLM_CANCELGRANT) |
| 194 | return; | 200 | return; |
| 195 | 201 | ||
| 196 | o2cb_stack.sp_proto->lp_unlock_ast(astarg, error); | 202 | o2cb_stack.sp_proto->lp_unlock_ast(lksb, error); |
| 197 | } | 203 | } |
| 198 | 204 | ||
| 199 | static int o2cb_dlm_lock(struct ocfs2_cluster_connection *conn, | 205 | static int o2cb_dlm_lock(struct ocfs2_cluster_connection *conn, |
| @@ -201,8 +207,7 @@ static int o2cb_dlm_lock(struct ocfs2_cluster_connection *conn, | |||
| 201 | union ocfs2_dlm_lksb *lksb, | 207 | union ocfs2_dlm_lksb *lksb, |
| 202 | u32 flags, | 208 | u32 flags, |
| 203 | void *name, | 209 | void *name, |
| 204 | unsigned int namelen, | 210 | unsigned int namelen) |
| 205 | void *astarg) | ||
| 206 | { | 211 | { |
| 207 | enum dlm_status status; | 212 | enum dlm_status status; |
| 208 | int o2dlm_mode = mode_to_o2dlm(mode); | 213 | int o2dlm_mode = mode_to_o2dlm(mode); |
| @@ -211,7 +216,7 @@ static int o2cb_dlm_lock(struct ocfs2_cluster_connection *conn, | |||
| 211 | 216 | ||
| 212 | status = dlmlock(conn->cc_lockspace, o2dlm_mode, &lksb->lksb_o2dlm, | 217 | status = dlmlock(conn->cc_lockspace, o2dlm_mode, &lksb->lksb_o2dlm, |
| 213 | o2dlm_flags, name, namelen, | 218 | o2dlm_flags, name, namelen, |
| 214 | o2dlm_lock_ast_wrapper, astarg, | 219 | o2dlm_lock_ast_wrapper, lksb, |
| 215 | o2dlm_blocking_ast_wrapper); | 220 | o2dlm_blocking_ast_wrapper); |
| 216 | ret = dlm_status_to_errno(status); | 221 | ret = dlm_status_to_errno(status); |
| 217 | return ret; | 222 | return ret; |
| @@ -219,15 +224,14 @@ static int o2cb_dlm_lock(struct ocfs2_cluster_connection *conn, | |||
| 219 | 224 | ||
| 220 | static int o2cb_dlm_unlock(struct ocfs2_cluster_connection *conn, | 225 | static int o2cb_dlm_unlock(struct ocfs2_cluster_connection *conn, |
| 221 | union ocfs2_dlm_lksb *lksb, | 226 | union ocfs2_dlm_lksb *lksb, |
| 222 | u32 flags, | 227 | u32 flags) |
| 223 | void *astarg) | ||
| 224 | { | 228 | { |
| 225 | enum dlm_status status; | 229 | enum dlm_status status; |
| 226 | int o2dlm_flags = flags_to_o2dlm(flags); | 230 | int o2dlm_flags = flags_to_o2dlm(flags); |
| 227 | int ret; | 231 | int ret; |
| 228 | 232 | ||
| 229 | status = dlmunlock(conn->cc_lockspace, &lksb->lksb_o2dlm, | 233 | status = dlmunlock(conn->cc_lockspace, &lksb->lksb_o2dlm, |
| 230 | o2dlm_flags, o2dlm_unlock_ast_wrapper, astarg); | 234 | o2dlm_flags, o2dlm_unlock_ast_wrapper, lksb); |
| 231 | ret = dlm_status_to_errno(status); | 235 | ret = dlm_status_to_errno(status); |
| 232 | return ret; | 236 | return ret; |
| 233 | } | 237 | } |
