]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/gfs2/util.c
GFS2: Merge lock_dlm module into GFS2
[linux-2.6-omap-h63xx.git] / fs / gfs2 / util.c
index d31e355c61fbc5040f0a2b8ac9775724a67eee53..9d12b1118ba0311b35362124b959cd966054a614 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/buffer_head.h>
 #include <linux/crc32.h>
 #include <linux/gfs2_ondisk.h>
-#include <linux/lm_interface.h>
 #include <asm/uaccess.h>
 
 #include "gfs2.h"
@@ -25,6 +24,7 @@ struct kmem_cache *gfs2_glock_cachep __read_mostly;
 struct kmem_cache *gfs2_inode_cachep __read_mostly;
 struct kmem_cache *gfs2_bufdata_cachep __read_mostly;
 struct kmem_cache *gfs2_rgrpd_cachep __read_mostly;
+struct kmem_cache *gfs2_quotad_cachep __read_mostly;
 
 void gfs2_assert_i(struct gfs2_sbd *sdp)
 {
@@ -34,6 +34,8 @@ void gfs2_assert_i(struct gfs2_sbd *sdp)
 
 int gfs2_lm_withdraw(struct gfs2_sbd *sdp, char *fmt, ...)
 {
+       struct lm_lockstruct *ls = &sdp->sd_lockstruct;
+       const struct lm_lockops *lm = ls->ls_ops;
        va_list args;
 
        if (test_and_set_bit(SDF_SHUTDOWN, &sdp->sd_flags))
@@ -46,8 +48,12 @@ int gfs2_lm_withdraw(struct gfs2_sbd *sdp, char *fmt, ...)
        fs_err(sdp, "about to withdraw this file system\n");
        BUG_ON(sdp->sd_args.ar_debug);
 
-       fs_err(sdp, "telling LM to withdraw\n");
-       gfs2_withdraw_lockproto(&sdp->sd_lockstruct);
+       kobject_uevent(&sdp->sd_kobj, KOBJ_OFFLINE);
+
+       if (lm->lm_unmount) {
+               fs_err(sdp, "telling LM to unmount\n");
+               lm->lm_unmount(sdp);
+       }
        fs_err(sdp, "withdrawn\n");
        dump_stack();