Whamcloud - gitweb
LU-1330 fid: prepare FID module for client server split
[fs/lustre-release.git] / lustre / fid / fid_handler.c
index 262d3d6..efdd33c 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_FID
 
-#ifdef __KERNEL__
-# include <libcfs/libcfs.h>
-# include <linux/module.h>
-#else /* __KERNEL__ */
-# include <liblustre.h>
-#endif
-
+#include <libcfs/libcfs.h>
+#include <linux/module.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <dt_object.h>
 #include <obd_support.h>
 #include <lustre_req_layout.h>
 #include <lustre_fid.h>
+#include <lustre_mdt.h> /* err_serious() */
 #include "fid_internal.h"
 
-int client_fid_init(struct obd_device *obd,
-                   struct obd_export *exp, enum lu_cli_type type)
-{
-       struct client_obd *cli = &obd->u.cli;
-       char *prefix;
-       int rc;
-       ENTRY;
-
-       OBD_ALLOC_PTR(cli->cl_seq);
-       if (cli->cl_seq == NULL)
-               RETURN(-ENOMEM);
-
-       OBD_ALLOC(prefix, MAX_OBD_NAME + 5);
-       if (prefix == NULL)
-               GOTO(out_free_seq, rc = -ENOMEM);
-
-       snprintf(prefix, MAX_OBD_NAME + 5, "cli-%s", obd->obd_name);
-
-       /* Init client side sequence-manager */
-       rc = seq_client_init(cli->cl_seq, exp, type, prefix, NULL);
-       OBD_FREE(prefix, MAX_OBD_NAME + 5);
-       if (rc)
-               GOTO(out_free_seq, rc);
-
-       RETURN(rc);
-out_free_seq:
-       OBD_FREE_PTR(cli->cl_seq);
-       cli->cl_seq = NULL;
-       return rc;
-}
-EXPORT_SYMBOL(client_fid_init);
-
-int client_fid_fini(struct obd_device *obd)
-{
-       struct client_obd *cli = &obd->u.cli;
-       ENTRY;
-
-       if (cli->cl_seq != NULL) {
-               seq_client_fini(cli->cl_seq);
-               OBD_FREE_PTR(cli->cl_seq);
-               cli->cl_seq = NULL;
-       }
-
-       RETURN(0);
-}
-EXPORT_SYMBOL(client_fid_fini);
-
-#ifdef __KERNEL__
 static void seq_server_proc_fini(struct lu_server_seq *seq);
 
 /* Assigns client to sequence controller node. */
@@ -463,10 +411,10 @@ int seq_query(struct com_thread_info *info)
 }
 EXPORT_SYMBOL(seq_query);
 
-
-#ifdef LPROCFS
 static int seq_server_proc_init(struct lu_server_seq *seq)
 {
+#ifdef LPROCFS
+
         int rc;
         ENTRY;
 
@@ -491,10 +439,14 @@ static int seq_server_proc_init(struct lu_server_seq *seq)
 out_cleanup:
         seq_server_proc_fini(seq);
         return rc;
+#else /* LPROCFS */
+       return 0;
+#endif
 }
 
 static void seq_server_proc_fini(struct lu_server_seq *seq)
 {
+#ifdef LPROCFS
         ENTRY;
         if (seq->lss_proc_dir != NULL) {
                 if (!IS_ERR(seq->lss_proc_dir))
@@ -502,20 +454,9 @@ static void seq_server_proc_fini(struct lu_server_seq *seq)
                 seq->lss_proc_dir = NULL;
         }
         EXIT;
-}
-#else
-static int seq_server_proc_init(struct lu_server_seq *seq)
-{
-        return 0;
+#endif /* LPROCFS */
 }
 
-static void seq_server_proc_fini(struct lu_server_seq *seq)
-{
-        return;
-}
-#endif
-
-
 int seq_server_init(struct lu_server_seq *seq,
                    struct dt_device *dev,
                    const char *prefix,
@@ -635,33 +576,13 @@ int seq_site_fini(const struct lu_env *env, struct seq_server_site *ss)
 }
 EXPORT_SYMBOL(seq_site_fini);
 
-cfs_proc_dir_entry_t *seq_type_proc_dir = NULL;
-
-static int __init fid_mod_init(void)
+int fid_server_mod_init(void)
 {
-        seq_type_proc_dir = lprocfs_register(LUSTRE_SEQ_NAME,
-                                             proc_lustre_root,
-                                             NULL, NULL);
-        if (IS_ERR(seq_type_proc_dir))
-                return PTR_ERR(seq_type_proc_dir);
-
-        LU_CONTEXT_KEY_INIT(&seq_thread_key);
-        lu_context_key_register(&seq_thread_key);
-        return 0;
+       LU_CONTEXT_KEY_INIT(&seq_thread_key);
+       return lu_context_key_register(&seq_thread_key);
 }
 
-static void __exit fid_mod_exit(void)
+void fid_server_mod_exit(void)
 {
-        lu_context_key_degister(&seq_thread_key);
-        if (seq_type_proc_dir != NULL && !IS_ERR(seq_type_proc_dir)) {
-                lprocfs_remove(&seq_type_proc_dir);
-                seq_type_proc_dir = NULL;
-        }
+       lu_context_key_degister(&seq_thread_key);
 }
-
-MODULE_AUTHOR("Sun Microsystems, Inc. <http://www.lustre.org/>");
-MODULE_DESCRIPTION("Lustre FID Module");
-MODULE_LICENSE("GPL");
-
-cfs_module(fid, "0.1.0", fid_mod_init, fid_mod_exit);
-#endif