X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fdlm%2Fast.c;h=6308122890cae1c2ae6cd03ad5b5452b03581532;hb=f768f9d3757be475a20cb5f9d63bda45934150b1;hp=57bdf09b520a8a7a23ae907825004861497489cb;hpb=4b01abc977574253f466f65463019de2571c6401;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);