Whamcloud - gitweb
- Replaces the LDLM lock counters (in /proc/ldlm/)
authorpschwan <pschwan>
Tue, 5 Nov 2002 19:18:19 +0000 (19:18 +0000)
committerpschwan <pschwan>
Tue, 5 Nov 2002 19:18:19 +0000 (19:18 +0000)
- Removes the second LDLM import that Peter added, in favour of doing a
  last-minute fixup of the portal numbers in ldlm_cli_cancel

lustre/include/linux/lustre_idl.h
lustre/include/linux/obd.h
lustre/ldlm/ldlm_lockd.c
lustre/ldlm/ldlm_resource.c
lustre/lib/client.c
lustre/lib/target.c
lustre/mds/handler.c
lustre/obdfilter/filter.c

index a8f73c1..6335d93 100644 (file)
@@ -72,8 +72,6 @@ typedef __u8 obd_uuid_t[37];
 #define LDLM_CB_REPLY_PORTAL       16
 #define LDLM_CANCEL_REQUEST_PORTAL     17
 #define LDLM_CANCEL_REPLY_PORTAL       18
-#define LDLM_CLI_REQUEST_PORTAL 19
-#define LDLM_CLI_REPLY_PORTAL   20
 
 #define SVC_KILLED               1
 #define SVC_EVENT                2
index 9e545c0..cb897aa 100644 (file)
@@ -234,8 +234,7 @@ struct obd_device {
         struct list_head       obd_exports;
         struct list_head       obd_imports;
         struct ldlm_namespace *obd_namespace;
-        struct ptlrpc_client   obd_ldlm_cancel_client; /* XXX OST/MDS only */
-        struct ptlrpc_client   obd_ldlm_cb_client; /* XXX OST/MDS only */
+        struct ptlrpc_client   obd_ldlm_client; /* XXX OST/MDS only */
         /* a spinlock is OK for what we do now, may need a semaphore later */
         spinlock_t obd_dev_lock;
         union {
index a861281..43d23fb 100644 (file)
@@ -1,5 +1,3 @@
-
-
 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
  * vim:expandtab:shiftwidth=8:tabstop=8:
  *
@@ -459,7 +457,8 @@ static int ldlm_handle_cp_callback(struct ptlrpc_request *req)
         if (memcmp(dlm_req->lock_desc.l_resource.lr_name,
                    lock->l_resource->lr_name,
                    sizeof(__u64) * RES_NAME_SIZE) != 0) {
-                ldlm_lock_change_resource(lock, dlm_req->lock_desc.l_resource.lr_name);
+                ldlm_lock_change_resource(lock,
+                                         dlm_req->lock_desc.l_resource.lr_name);
                 LDLM_DEBUG(lock, "completion AST, new resource");
         }
         lock->l_resource->lr_tmp = &ast_list;
@@ -532,7 +531,7 @@ static int ldlm_cancel_handler(struct ptlrpc_request *req)
         }
 
         switch (req->rq_reqmsg->opc) {
+
         /* XXX FIXME move this back to mds/handler.c, bug 625069 */
         case LDLM_CANCEL:
                 CDEBUG(D_INODE, "cancel\n");
@@ -604,11 +603,11 @@ static int ldlm_setup(struct obd_device *obddev, obd_count len, void *buf)
                 RETURN(-EALREADY);
 
         MOD_INC_USE_COUNT;
-        /*
+
         rc = ldlm_proc_setup(obddev);
         if (rc != 0)
                 GOTO(out_dec, rc);
-        */
+
         ldlm->ldlm_cb_service =
                 ptlrpc_init_svc(LDLM_NEVENTS, LDLM_NBUFS, LDLM_BUFSIZE,
                                 LDLM_MAXREQSIZE, LDLM_CB_REQUEST_PORTAL,
@@ -620,8 +619,7 @@ static int ldlm_setup(struct obd_device *obddev, obd_count len, void *buf)
 
         ldlm->ldlm_cancel_service =
                 ptlrpc_init_svc(LDLM_NEVENTS, LDLM_NBUFS, LDLM_BUFSIZE,
-                                LDLM_MAXREQSIZE, 
-                                LDLM_CANCEL_REQUEST_PORTAL,
+                                LDLM_MAXREQSIZE, LDLM_CANCEL_REQUEST_PORTAL,
                                 LDLM_CANCEL_REPLY_PORTAL, "self",
                                 ldlm_cancel_handler, "ldlm_canceld");
 
@@ -631,7 +629,8 @@ static int ldlm_setup(struct obd_device *obddev, obd_count len, void *buf)
         for (i = 0; i < LDLM_NUM_THREADS; i++) {
                 char name[32];
                 sprintf(name, "lustre_dlm_%02d", i);
-                rc = ptlrpc_start_thread(obddev, ldlm->ldlm_cancel_service, name);
+                rc = ptlrpc_start_thread(obddev, ldlm->ldlm_cancel_service,
+                                         name);
                 if (rc) {
                         CERROR("cannot start LDLM thread #%d: rc %d\n", i, rc);
                         LBUG();
@@ -665,11 +664,11 @@ static int ldlm_setup(struct obd_device *obddev, obd_count len, void *buf)
         ptlrpc_unregister_service(ldlm->ldlm_cancel_service);
         ptlrpc_stop_all_threads(ldlm->ldlm_cb_service);
         ptlrpc_unregister_service(ldlm->ldlm_cb_service);
-        /*
+
  out_proc:
 
          ldlm_proc_cleanup(obddev);
-        */
+
  out_dec:
         MOD_DEC_USE_COUNT;
         return rc;
@@ -689,7 +688,7 @@ static int ldlm_cleanup(struct obd_device *obddev)
         ptlrpc_unregister_service(ldlm->ldlm_cb_service);
         ptlrpc_stop_all_threads(ldlm->ldlm_cancel_service);
         ptlrpc_unregister_service(ldlm->ldlm_cancel_service);
-        /* ldlm_proc_cleanup(obddev); */
+        ldlm_proc_cleanup(obddev);
 
         ldlm_already_setup = 0;
         MOD_DEC_USE_COUNT;
index 0bb0df9..8b850df 100644 (file)
@@ -19,17 +19,17 @@ kmem_cache_t *ldlm_resource_slab, *ldlm_lock_slab;
 spinlock_t ldlm_namespace_lock = SPIN_LOCK_UNLOCKED;
 struct list_head ldlm_namespace_list = LIST_HEAD_INIT(ldlm_namespace_list);
 static struct proc_dir_entry *ldlm_ns_proc_dir = NULL;
+extern struct proc_dir_entry proc_root;
 
 int ldlm_proc_setup(struct obd_device *obd)
 {
         ENTRY;
 
-        if (obd->obd_proc_entry == NULL)
-                RETURN(-EINVAL);
+        LASSERT(ldlm_ns_proc_dir == NULL);
 
-        ldlm_ns_proc_dir = proc_mkdir("namespaces", obd->obd_proc_entry);
+        ldlm_ns_proc_dir = proc_mkdir("ldlm", &proc_root);
         if (ldlm_ns_proc_dir == NULL) {
-                CERROR("Couldn't create /proc/lustre/ldlm/namespaces\n");
+                CERROR("Couldn't create /proc/ldlm\n");
                 RETURN(-EPERM);
         }
         RETURN(0);
@@ -37,12 +37,11 @@ int ldlm_proc_setup(struct obd_device *obd)
 
 void ldlm_proc_cleanup(struct obd_device *obd)
 {
-        proc_lustre_remove_obd_entry("namespaces", obd);
+        remove_proc_entry("ldlm", &proc_root);
 }
 
-#if 0
 /* FIXME: This can go away when we start to really use lprocfs */
-static int lprocfs_ll_rd(char *page, char **start, off_t off,
+static int ldlm_proc_ll_rd(char *page, char **start, off_t off,
                          int count, int *eof, void *data)
 {
         int len;
@@ -52,7 +51,6 @@ static int lprocfs_ll_rd(char *page, char **start, off_t off,
 
         return len;
 }
-#endif
 
 struct ldlm_namespace *ldlm_namespace_new(char *name, __u32 client)
 {
@@ -100,10 +98,10 @@ struct ldlm_namespace *ldlm_namespace_new(char *name, __u32 client)
         if (ns->ns_proc_dir == NULL)
                 CERROR("Unable to create proc directory for namespace.\n");
         proc_entry = create_proc_entry("resource_count", 0444, ns->ns_proc_dir);
-        proc_entry->read_proc = lprocfs_ll_rd;
+        proc_entry->read_proc = ldlm_proc_ll_rd;
         proc_entry->data = &ns->ns_resources;
         proc_entry = create_proc_entry("lock_count", 0444, ns->ns_proc_dir);
-        proc_entry->read_proc = lprocfs_ll_rd;
+        proc_entry->read_proc = ldlm_proc_ll_rd;
         proc_entry->data = &ns->ns_locks;
 
         RETURN(ns);
index 8d5ae5f..1f596e8 100644 (file)
@@ -90,10 +90,8 @@ int client_obd_setup(struct obd_device *obddev, obd_count len, void *buf)
                 RETURN(-ENOENT);
 
         ptlrpc_init_client(rq_portal, rp_portal, name,
-                           &obddev->obd_ldlm_cb_client);
-        ptlrpc_init_client(rq_portal, rp_portal, name,
-                           &obddev->obd_ldlm_cancel_client);
-        cli->cl_import.imp_client = &obddev->obd_ldlm_cb_client;
+                           &obddev->obd_ldlm_client);
+        cli->cl_import.imp_client = &obddev->obd_ldlm_client;
         cli->cl_import.imp_obd = obddev;
 
         cli->cl_max_mds_easize = sizeof(struct lov_mds_md);
index 51cf000..8786ee8 100644 (file)
@@ -95,7 +95,7 @@ int target_handle_connect(struct ptlrpc_request *req)
 
         dlmimp = &export->exp_ldlm_data.led_import;
         dlmimp->imp_connection = req->rq_connection;
-        dlmimp->imp_client = &export->exp_obd->obd_ldlm_cb_client;
+        dlmimp->imp_client = &export->exp_obd->obd_ldlm_client;
         dlmimp->imp_handle.addr = req->rq_reqmsg->addr;
         dlmimp->imp_handle.cookie = req->rq_reqmsg->cookie;
         dlmimp->imp_obd = /* LDLM! */ NULL;
index 80b850a..e33f1b9 100644 (file)
@@ -383,7 +383,7 @@ static int mds_disconnect(struct lustre_handle *conn)
          */
         spin_lock(&med->med_open_lock);
         list_for_each_safe(tmp, n, &med->med_open_head) {
-                struct mds_file_data *mfd = 
+                struct mds_file_data *mfd =
                         list_entry(tmp, struct mds_file_data, mfd_list);
                 rc = mds_close_mfd(mfd, med);
                 if (rc) {
@@ -1247,13 +1247,8 @@ static int mds_setup(struct obd_device *obddev, obd_count len, void *buf)
         if (rc)
                 GOTO(err_fs, rc);
 
-        ptlrpc_init_client(LDLM_CANCEL_REQUEST_PORTAL, 
-                           LDLM_CANCEL_REPLY_PORTAL,
-                           "mds_ldlm_client", &obddev->obd_ldlm_cancel_client);
-
-        ptlrpc_init_client(LDLM_CB_REQUEST_PORTAL, 
-                           LDLM_CB_REPLY_PORTAL,
-                           "mds_ldlm_client", &obddev->obd_ldlm_cb_client);
+        ptlrpc_init_client(LDLM_CB_REQUEST_PORTAL, LDLM_CB_REPLY_PORTAL,
+                           "mds_ldlm_client", &obddev->obd_ldlm_client);
 
         RETURN(0);
 
@@ -1457,13 +1452,13 @@ static int ldlm_intent_policy(struct ldlm_lock *lock, void *req_cookie,
         RETURN(rc);
 }
 
-int mds_attach(struct obd_device *dev, 
+int mds_attach(struct obd_device *dev,
                obd_count len, void *data)
 {
         int rc;
-        rc = lprocfs_reg_obd(dev, (struct lprocfs_vars*)status_var_nm_1, 
+        rc = lprocfs_reg_obd(dev, (struct lprocfs_vars*)status_var_nm_1,
                              (void*)dev);
-        return rc; 
+        return rc;
 }
 
 int mds_detach(struct obd_device *dev)
@@ -1549,34 +1544,34 @@ static struct obd_ops mdt_obd_ops = {
 
 static int __init mds_init(void)
 {
-     
+
         mds_file_cache = kmem_cache_create("ll_mds_file_data",
                                            sizeof(struct mds_file_data),
                                            0, 0, NULL, NULL);
         if (mds_file_cache == NULL)
                 return -ENOMEM;
 
-        class_register_type(&mds_obd_ops, 
-                            (struct lprocfs_vars*)status_class_var, 
+        class_register_type(&mds_obd_ops,
+                            (struct lprocfs_vars*)status_class_var,
                             LUSTRE_MDS_NAME);
         class_register_type(&mdt_obd_ops, 0, LUSTRE_MDT_NAME);
 
         ldlm_register_intent(ldlm_intent_policy);
-        
+
         return 0;
-        
+
 }
 
 static void __exit mds_exit(void)
 {
-        
-        
+
+
         ldlm_unregister_intent();
         class_unregister_type(LUSTRE_MDS_NAME);
         class_unregister_type(LUSTRE_MDT_NAME);
         if (kmem_cache_destroy(mds_file_cache))
                 CERROR("couldn't free MDS file cache\n");
-        
+
 }
 
 MODULE_AUTHOR("Cluster File Systems <info@clusterfs.com>");
index d0d4b72..d31e175 100644 (file)
@@ -585,9 +585,7 @@ static int filter_setup(struct obd_device *obd, obd_count len, void *buf)
                 LBUG();
 
         ptlrpc_init_client(LDLM_CB_REQUEST_PORTAL, LDLM_CB_REPLY_PORTAL,
-                           "filter_ldlm_cb_client", &obd->obd_ldlm_cb_client);
-        ptlrpc_init_client(LDLM_CANCEL_REQUEST_PORTAL, LDLM_CANCEL_REPLY_PORTAL,
-                           "filter_ldlm_cancel_client", &obd->obd_ldlm_cancel_client);
+                           "filter_ldlm_cb_client", &obd->obd_ldlm_client);
 
         RETURN(0);