]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/dlm/ast.c
hugetlb: pull gigantic page initialisation out of the default path
[linux-2.6-omap-h63xx.git] / fs / dlm / ast.c
index 57bdf09b520a8a7a23ae907825004861497489cb..8bf31e3fbf01fe627be25ed47931ba40d9e70a90 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "dlm_internal.h"
 #include "lock.h"
+#include "user.h"
 #include "ast.h"
 
 #define WAKE_ASTS  0
@@ -34,6 +35,11 @@ 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;
+       }
+
        spin_lock(&ast_queue_lock);
        if (!(lkb->lkb_ast_type & (AST_COMP | AST_BAST))) {
                kref_get(&lkb->lkb_ref);
@@ -51,8 +57,8 @@ static void process_asts(void)
        struct dlm_ls *ls = NULL;
        struct dlm_rsb *r = NULL;
        struct dlm_lkb *lkb;
-       void (*cast) (long param);
-       void (*bast) (long param, int mode);
+       void (*cast) (void *astparam);
+       void (*bast) (void *astparam, int mode);
        int type = 0, found, bmode;
 
        for (;;) {
@@ -76,8 +82,8 @@ static void process_asts(void)
                if (!found)
                        break;
 
-               cast = lkb->lkb_astaddr;
-               bast = lkb->lkb_bastaddr;
+               cast = lkb->lkb_astfn;
+               bast = lkb->lkb_bastfn;
                bmode = lkb->lkb_bastmode;
 
                if ((type & AST_COMP) && cast)