Whamcloud - gitweb
LU-2675 llog: remove obd_llog_init() and obd_llod_finish()
[fs/lustre-release.git] / lustre / mdc / mdc_request.c
index 4bee7c2..032f88f 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_MDC
 
-#ifdef __KERNEL__
-# include <linux/module.h>
-# include <linux/pagemap.h>
-# include <linux/miscdevice.h>
-# include <linux/init.h>
-# include <linux/utsname.h>
-#else
-# include <liblustre.h>
-#endif
+#include <linux/module.h>
+#include <linux/pagemap.h>
+#include <linux/miscdevice.h>
+#include <linux/init.h>
+#include <linux/utsname.h>
 
 #include <lustre_acl.h>
 #include <lustre_ioctl.h>
@@ -1156,7 +1152,6 @@ restart_bulk:
        RETURN(0);
 }
 
-#ifdef __KERNEL__
 static void mdc_release_page(struct page *page, int remove)
 {
        if (remove) {
@@ -1339,7 +1334,7 @@ static void mdc_adjust_dirpages(struct page **pages, int cfs_pgs, int lu_pgs)
 
                kunmap(pages[i]);
        }
-       LASSERTF(lu_pgs == 0, "left = %d", lu_pgs);
+       LASSERTF(lu_pgs == 0, "left = %d\n", lu_pgs);
 }
 #else
 #define mdc_adjust_dirpages(pages, cfs_pgs, lu_pgs) do {} while (0)
@@ -1609,53 +1604,6 @@ fail:
        goto out_unlock;
 }
 
-#else /* __KERNEL__ */
-
-static struct page
-*mdc_read_page_remote(struct obd_export *exp, const struct lmv_oinfo *lmo,
-                     const __u64 hash, struct obd_capa *oc)
-{
-       struct ptlrpc_request *req = NULL;
-       struct page *page;
-       int rc;
-
-       OBD_PAGE_ALLOC(page, 0);
-       if (page == NULL)
-               return ERR_PTR(-ENOMEM);
-
-       rc = mdc_getpage(exp, &lmo->lmo_fid, hash, oc, &page, 1, &req);
-       if (req != NULL)
-               ptlrpc_req_finished(req);
-
-       if (unlikely(rc)) {
-               OBD_PAGE_FREE(page);
-               return ERR_PTR(rc);
-       }
-       return page;
-}
-
-
-static int mdc_read_page(struct obd_export *exp, struct md_op_data *op_data,
-                       struct md_callback *cb_op, __u64 hash_offset,
-                       struct page **ppage)
-{
-       struct page *page;
-       struct lmv_oinfo *lmo;
-       int rc = 0;
-
-       /* No local cache for liblustre, always read entry remotely */
-       lmo = &op_data->op_mea1->lsm_md_oinfo[op_data->op_stripe_offset];
-       page = mdc_read_page_remote(exp, lmo, hash_offset,
-                                   op_data->op_capa1);
-       if (IS_ERR(page))
-               return PTR_ERR(page);
-
-       *ppage = page;
-
-       return rc;
-}
-
-#endif
 
 static int mdc_statfs(const struct lu_env *env,
                       struct obd_export *exp, struct obd_statfs *osfs,
@@ -2047,8 +1995,6 @@ static struct kuc_hdr *changelog_kuc_hdr(char *buf, int len, int flags)
        return lh;
 }
 
-#define D_CHANGELOG 0
-
 struct changelog_show {
        __u64           cs_startrec;
        __u32           cs_flags;
@@ -2076,17 +2022,17 @@ static int changelog_kkuc_cb(const struct lu_env *env, struct llog_handle *llh,
 
        if (rec->cr.cr_index < cs->cs_startrec) {
                /* Skip entries earlier than what we are interested in */
-               CDEBUG(D_CHANGELOG, "rec="LPU64" start="LPU64"\n",
+               CDEBUG(D_HSM, "rec="LPU64" start="LPU64"\n",
                       rec->cr.cr_index, cs->cs_startrec);
                RETURN(0);
        }
 
-       CDEBUG(D_CHANGELOG, LPU64" %02d%-5s "LPU64" 0x%x t="DFID" p="DFID
-               " %.*s\n", rec->cr.cr_index, rec->cr.cr_type,
-               changelog_type2str(rec->cr.cr_type), rec->cr.cr_time,
-               rec->cr.cr_flags & CLF_FLAGMASK,
-               PFID(&rec->cr.cr_tfid), PFID(&rec->cr.cr_pfid),
-               rec->cr.cr_namelen, changelog_rec_name(&rec->cr));
+       CDEBUG(D_HSM, LPU64" %02d%-5s "LPU64" 0x%x t="DFID" p="DFID" %.*s\n",
+              rec->cr.cr_index, rec->cr.cr_type,
+              changelog_type2str(rec->cr.cr_type), rec->cr.cr_time,
+              rec->cr.cr_flags & CLF_FLAGMASK,
+              PFID(&rec->cr.cr_tfid), PFID(&rec->cr.cr_pfid),
+              rec->cr.cr_namelen, changelog_rec_name(&rec->cr));
 
        len = sizeof(*lh) + changelog_rec_size(&rec->cr) + rec->cr.cr_namelen;
 
@@ -2095,7 +2041,7 @@ static int changelog_kkuc_cb(const struct lu_env *env, struct llog_handle *llh,
         memcpy(lh + 1, &rec->cr, len - sizeof(*lh));
 
         rc = libcfs_kkuc_msg_put(cs->cs_fp, lh);
-        CDEBUG(D_CHANGELOG, "kucmsg fp %p len %d rc %d\n", cs->cs_fp, len,rc);
+       CDEBUG(D_HSM, "kucmsg fp %p len %d rc %d\n", cs->cs_fp, len, rc);
 
         RETURN(rc);
 }
@@ -2108,7 +2054,7 @@ static int mdc_changelog_send_thread(void *csdata)
        struct kuc_hdr *kuch;
        int rc;
 
-       CDEBUG(D_CHANGELOG, "changelog to fp=%p start "LPU64"\n",
+       CDEBUG(D_HSM, "changelog to fp=%p start "LPU64"\n",
               cs->cs_fp, cs->cs_startrec);
 
        OBD_ALLOC(cs->cs_buf, KUC_CHANGELOG_MSG_MAXSIZE);
@@ -2184,8 +2130,7 @@ static int mdc_ioc_changelog_send(struct obd_device *obd,
                OBD_FREE_PTR(cs);
        } else {
                rc = 0;
-               CDEBUG(D_CHANGELOG, "%s: started changelog thread\n",
-                      obd->obd_name);
+               CDEBUG(D_HSM, "%s: started changelog thread\n", obd->obd_name);
        }
 
        return rc;
@@ -2338,7 +2283,7 @@ out:
 }
 
 static int mdc_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
-                         void *karg, void *uarg)
+                        void *karg, void __user *uarg)
 {
         struct obd_device *obd = exp->exp_obd;
         struct obd_ioctl_data *data = karg;
@@ -2347,7 +2292,8 @@ static int mdc_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
         ENTRY;
 
        if (!try_module_get(THIS_MODULE)) {
-               CERROR("Can't get module. Is it alive?");
+               CERROR("%s: cannot get module '%s'\n", obd->obd_name,
+                      module_name(THIS_MODULE));
                return -EINVAL;
        }
         switch (cmd) {
@@ -2899,6 +2845,39 @@ struct ldlm_valblock_ops inode_lvbo = {
        .lvbo_free = mdc_resource_inode_free
 };
 
+static int mdc_llog_init(struct obd_device *obd)
+{
+       struct obd_llog_group   *olg = &obd->obd_olg;
+       struct llog_ctxt        *ctxt;
+       int                      rc;
+
+       ENTRY;
+
+       rc = llog_setup(NULL, obd, olg, LLOG_CHANGELOG_REPL_CTXT, obd,
+                       &llog_client_ops);
+       if (rc < 0)
+               RETURN(rc);
+
+       ctxt = llog_group_get_ctxt(olg, LLOG_CHANGELOG_REPL_CTXT);
+       llog_initiator_connect(ctxt);
+       llog_ctxt_put(ctxt);
+
+       RETURN(0);
+}
+
+static void mdc_llog_finish(struct obd_device *obd)
+{
+       struct llog_ctxt *ctxt;
+
+       ENTRY;
+
+       ctxt = llog_get_context(obd, LLOG_CHANGELOG_REPL_CTXT);
+       if (ctxt != NULL)
+               llog_cleanup(NULL, ctxt);
+
+       EXIT;
+}
+
 static int mdc_setup(struct obd_device *obd, struct lustre_cfg *cfg)
 {
        struct client_obd               *cli = &obd->u.cli;
@@ -2924,7 +2903,7 @@ static int mdc_setup(struct obd_device *obd, struct lustre_cfg *cfg)
                 GOTO(err_close_lock, rc);
 #ifdef LPROCFS
        obd->obd_vars = lprocfs_mdc_obd_vars;
-       lprocfs_seq_obd_setup(obd);
+       lprocfs_obd_setup(obd);
        lprocfs_alloc_md_stats(obd, 0);
 #endif
        sptlrpc_lprocfs_cliobd_attach(obd);
@@ -2934,7 +2913,7 @@ static int mdc_setup(struct obd_device *obd, struct lustre_cfg *cfg)
 
        obd->obd_namespace->ns_lvbo = &inode_lvbo;
 
-        rc = obd_llog_init(obd, &obd->obd_olg, obd, NULL);
+       rc = mdc_llog_init(obd);
         if (rc) {
                 mdc_cleanup(obd);
                 CERROR("failed to setup llogging subsystems\n");
@@ -2998,10 +2977,7 @@ static int mdc_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage)
                 ptlrpc_lprocfs_unregister_obd(obd);
                 lprocfs_obd_cleanup(obd);
                lprocfs_free_md_stats(obd);
-
-                rc = obd_llog_finish(obd, 0);
-                if (rc != 0)
-                        CERROR("failed to cleanup llogging subsystems\n");
+               mdc_llog_finish(obd);
                 break;
         }
         RETURN(rc);
@@ -3019,47 +2995,10 @@ static int mdc_cleanup(struct obd_device *obd)
         return client_obd_cleanup(obd);
 }
 
-
-static int mdc_llog_init(struct obd_device *obd, struct obd_llog_group *olg,
-                         struct obd_device *tgt, int *index)
-{
-       struct llog_ctxt        *ctxt;
-       int                      rc;
-
-       ENTRY;
-
-       LASSERT(olg == &obd->obd_olg);
-
-       rc = llog_setup(NULL, obd, olg, LLOG_CHANGELOG_REPL_CTXT, tgt,
-                       &llog_client_ops);
-       if (rc)
-               RETURN(rc);
-
-       ctxt = llog_group_get_ctxt(olg, LLOG_CHANGELOG_REPL_CTXT);
-       llog_initiator_connect(ctxt);
-       llog_ctxt_put(ctxt);
-
-       RETURN(0);
-}
-
-static int mdc_llog_finish(struct obd_device *obd, int count)
-{
-       struct llog_ctxt *ctxt;
-
-       ENTRY;
-
-       ctxt = llog_get_context(obd, LLOG_CHANGELOG_REPL_CTXT);
-       if (ctxt)
-               llog_cleanup(NULL, ctxt);
-
-       RETURN(0);
-}
-
 static int mdc_process_config(struct obd_device *obd, obd_count len, void *buf)
 {
         struct lustre_cfg *lcfg = buf;
-       int rc = class_process_proc_seq_param(PARAM_MDC, obd->obd_vars,
-                                             lcfg, obd);
+       int rc = class_process_proc_param(PARAM_MDC, obd->obd_vars, lcfg, obd);
        return (rc > 0 ? 0: rc);
 }
 
@@ -3174,8 +3113,6 @@ struct obd_ops mdc_obd_ops = {
        .o_fid_fini         = client_fid_fini,
         .o_fid_alloc        = mdc_fid_alloc,
         .o_import_event     = mdc_import_event,
-        .o_llog_init        = mdc_llog_init,
-        .o_llog_finish      = mdc_llog_finish,
         .o_get_info         = mdc_get_info,
         .o_process_config   = mdc_process_config,
         .o_get_uuid         = mdc_get_uuid,
@@ -3220,13 +3157,9 @@ struct md_ops mdc_md_ops = {
 int __init mdc_init(void)
 {
        return class_register_type(&mdc_obd_ops, &mdc_md_ops, true, NULL,
-#ifndef HAVE_ONLY_PROCFS_SEQ
-                                  NULL,
-#endif
                                   LUSTRE_MDC_NAME, NULL);
 }
 
-#ifdef __KERNEL__
 static void /*__exit*/ mdc_exit(void)
 {
         class_unregister_type(LUSTRE_MDC_NAME);
@@ -3238,4 +3171,3 @@ MODULE_LICENSE("GPL");
 
 module_init(mdc_init);
 module_exit(mdc_exit);
-#endif