Whamcloud - gitweb
File I/O fix: move the lock name space to the filter itself.
authorbraam <braam>
Sat, 29 Jun 2002 13:10:22 +0000 (13:10 +0000)
committerbraam <braam>
Sat, 29 Jun 2002 13:10:22 +0000 (13:10 +0000)
lustre/mds/handler.c
lustre/obdfilter/filter.c
lustre/ost/ost_handler.c

index 69d1f49..c2245e3 100644 (file)
@@ -261,7 +261,7 @@ static int mds_getattr_name(int offset, struct ptlrpc_request *req)
         __u64 res_id[3] = {0, 0, 0};
         ENTRY;
 
-        if (strcmp(req->rq_obd->obd_type->typ_name, "mds") != 0)
+        if (strcmp(req->rq_export->export_obd->obd_type->typ_name, "mds") != 0)
                 LBUG();
 
         if (req->rq_reqmsg->bufcount <= offset + 1) {
index b150729..5612e60 100644 (file)
@@ -15,6 +15,7 @@
 #define DEBUG_SUBSYSTEM S_FILTER
 
 #include <linux/module.h>
+#include <linux/lustre_dlm.h>
 #include <linux/obd_filter.h>
 #include <linux/ext3_jbd.h>
 #include <linux/quotaops.h>
@@ -414,6 +415,11 @@ static int filter_setup(struct obd_device *obddev, obd_count len, void *buf)
                 GOTO(err_kfree, err);
         spin_lock_init(&filter->fo_lock);
 
+        obddev->obd_namespace =
+                ldlm_namespace_new("filter-tgt", LDLM_NAMESPACE_SERVER);
+        if (obddev->obd_namespace == NULL)
+                LBUG();
+
         RETURN(0);
 
 err_kfree:
@@ -443,6 +449,8 @@ static int filter_cleanup(struct obd_device * obddev)
                 RETURN(-EBUSY);
         }
 
+        ldlm_namespace_free(obddev->obd_namespace);
+
         sb = obddev->u.filter.fo_sb;
         if (!obddev->u.filter.fo_sb)
                 RETURN(0);
index 1962279..14b8517 100644 (file)
@@ -545,11 +545,6 @@ static int ost_setup(struct obd_device *obddev, obd_count len, void *buf)
                 GOTO(error_dec, err = -EINVAL);
         }
 
-        obddev->obd_namespace =
-                ldlm_namespace_new("ost", LDLM_NAMESPACE_SERVER);
-        if (obddev->obd_namespace == NULL)
-                LBUG();
-
         ost->ost_service = ptlrpc_init_svc(64 * 1024, OST_REQUEST_PORTAL,
                                            OSC_REPLY_PORTAL, "self",ost_handle);
         if (!ost->ost_service) {
@@ -596,8 +591,6 @@ static int ost_cleanup(struct obd_device * obddev)
                 RETURN(-EINVAL);
         }
 
-        ldlm_namespace_free(obddev->obd_namespace);
-
         MOD_DEC_USE_COUNT;
         RETURN(0);
 }