aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/dlm/ast.c1
-rw-r--r--fs/dlm/dlm_internal.h2
-rw-r--r--fs/dlm/lock.c9
3 files changed, 7 insertions, 5 deletions
diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c
index a211330cbc42..f91d39cb1e0b 100644
--- a/fs/dlm/ast.c
+++ b/fs/dlm/ast.c
@@ -38,6 +38,7 @@ void dlm_add_ast(struct dlm_lkb *lkb, int type)
38 dlm_user_add_ast(lkb, type); 38 dlm_user_add_ast(lkb, type);
39 return; 39 return;
40 } 40 }
41 DLM_ASSERT(lkb->lkb_astaddr != DLM_FAKE_USER_AST, dlm_print_lkb(lkb););
41 42
42 spin_lock(&ast_queue_lock); 43 spin_lock(&ast_queue_lock);
43 if (!(lkb->lkb_ast_type & (AST_COMP | AST_BAST))) { 44 if (!(lkb->lkb_ast_type & (AST_COMP | AST_BAST))) {
diff --git a/fs/dlm/dlm_internal.h b/fs/dlm/dlm_internal.h
index da7509986699..1e5cd67e1b7a 100644
--- a/fs/dlm/dlm_internal.h
+++ b/fs/dlm/dlm_internal.h
@@ -91,6 +91,8 @@ struct dlm_mhandle;
91 } \ 91 } \
92} 92}
93 93
94#define DLM_FAKE_USER_AST ERR_PTR(-EINVAL)
95
94 96
95struct dlm_direntry { 97struct dlm_direntry {
96 struct list_head list; 98 struct list_head list;
diff --git a/fs/dlm/lock.c b/fs/dlm/lock.c
index 6dcd475826c1..67247f0b508a 100644
--- a/fs/dlm/lock.c
+++ b/fs/dlm/lock.c
@@ -86,8 +86,6 @@ static void __receive_convert_reply(struct dlm_rsb *r, struct dlm_lkb *lkb,
86 struct dlm_message *ms); 86 struct dlm_message *ms);
87static int receive_extralen(struct dlm_message *ms); 87static int receive_extralen(struct dlm_message *ms);
88 88
89#define FAKE_USER_AST (void*)0xff00ff00
90
91/* 89/*
92 * Lock compatibilty matrix - thanks Steve 90 * Lock compatibilty matrix - thanks Steve
93 * UN = Unlocked state. Not really a state, used as a flag 91 * UN = Unlocked state. Not really a state, used as a flag
@@ -2195,6 +2193,7 @@ static int send_convert(struct dlm_rsb *r, struct dlm_lkb *lkb)
2195 if (!error && down_conversion(lkb)) { 2193 if (!error && down_conversion(lkb)) {
2196 remove_from_waiters(lkb); 2194 remove_from_waiters(lkb);
2197 r->res_ls->ls_stub_ms.m_result = 0; 2195 r->res_ls->ls_stub_ms.m_result = 0;
2196 r->res_ls->ls_stub_ms.m_flags = lkb->lkb_flags;
2198 __receive_convert_reply(r, lkb, &r->res_ls->ls_stub_ms); 2197 __receive_convert_reply(r, lkb, &r->res_ls->ls_stub_ms);
2199 } 2198 }
2200 2199
@@ -3615,7 +3614,7 @@ int dlm_user_request(struct dlm_ls *ls, struct dlm_user_args *ua,
3615 lock and that lkb_astparam is the dlm_user_args structure. */ 3614 lock and that lkb_astparam is the dlm_user_args structure. */
3616 3615
3617 error = set_lock_args(mode, &ua->lksb, flags, namelen, parent_lkid, 3616 error = set_lock_args(mode, &ua->lksb, flags, namelen, parent_lkid,
3618 FAKE_USER_AST, ua, FAKE_USER_AST, &args); 3617 DLM_FAKE_USER_AST, ua, DLM_FAKE_USER_AST, &args);
3619 lkb->lkb_flags |= DLM_IFL_USER; 3618 lkb->lkb_flags |= DLM_IFL_USER;
3620 ua->old_mode = DLM_LOCK_IV; 3619 ua->old_mode = DLM_LOCK_IV;
3621 3620
@@ -3686,8 +3685,8 @@ int dlm_user_convert(struct dlm_ls *ls, struct dlm_user_args *ua_tmp,
3686 ua->user_lksb = ua_tmp->user_lksb; 3685 ua->user_lksb = ua_tmp->user_lksb;
3687 ua->old_mode = lkb->lkb_grmode; 3686 ua->old_mode = lkb->lkb_grmode;
3688 3687
3689 error = set_lock_args(mode, &ua->lksb, flags, 0, 0, FAKE_USER_AST, ua, 3688 error = set_lock_args(mode, &ua->lksb, flags, 0, 0, DLM_FAKE_USER_AST,
3690 FAKE_USER_AST, &args); 3689 ua, DLM_FAKE_USER_AST, &args);
3691 if (error) 3690 if (error)
3692 goto out_put; 3691 goto out_put;
3693 3692