X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fdlm%2Fast.c;h=6308122890cae1c2ae6cd03ad5b5452b03581532;hb=a11b18ef94772d2803ef7d651704c943dcb9dc38;hp=57bdf09b520a8a7a23ae907825004861497489cb;hpb=cf57a308436653f3094590202c77459aab250ff3;p=linux-2.6 diff --git a/fs/dlm/ast.c b/fs/dlm/ast.c index 57bdf09b52..6308122890 100644 --- a/fs/dlm/ast.c +++ b/fs/dlm/ast.c @@ -13,6 +13,7 @@ #include "dlm_internal.h" #include "lock.h" +#include "user.h" #include "ast.h" #define WAKE_ASTS 0 @@ -34,6 +35,12 @@ void dlm_del_ast(struct dlm_lkb *lkb) void dlm_add_ast(struct dlm_lkb *lkb, int type) { + if (lkb->lkb_flags & DLM_IFL_USER) { + dlm_user_add_ast(lkb, type); + return; + } + DLM_ASSERT(lkb->lkb_astaddr != DLM_FAKE_USER_AST, dlm_print_lkb(lkb);); + spin_lock(&ast_queue_lock); if (!(lkb->lkb_ast_type & (AST_COMP | AST_BAST))) { kref_get(&lkb->lkb_ref);