diff options
-rw-r--r-- | fs/dlm/ast.c | 1 | ||||
-rw-r--r-- | fs/dlm/dlm_internal.h | 2 | ||||
-rw-r--r-- | fs/dlm/lock.c | 9 |
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 | ||
95 | struct dlm_direntry { | 97 | struct 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); |
87 | static int receive_extralen(struct dlm_message *ms); | 87 | static 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 | ||