Whamcloud - gitweb
LU-5031 tests: obdfilter-survey fixes
[fs/lustre-release.git] / lustre / fid / fid_request.c
index 4487fee..3d8a401 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_FID
 
-#ifdef __KERNEL__
-# include <libcfs/libcfs.h>
-# include <linux/module.h>
-#else /* __KERNEL__ */
-# include <liblustre.h>
-#endif
-
+#include <linux/module.h>
+#include <libcfs/libcfs.h>
 #include <obd.h>
 #include <obd_class.h>
 #include <obd_support.h>
@@ -69,6 +64,7 @@ static int seq_client_rpc(struct lu_client_seq *seq,
        int                    rc;
        ENTRY;
 
+       LASSERT(exp != NULL && !IS_ERR(exp));
        req = ptlrpc_request_alloc_pack(class_exp2cliimp(exp), &RQF_SEQ_QUERY,
                                        LUSTRE_MDS_VERSION, SEQ_QUERY);
        if (req == NULL)
@@ -103,19 +99,25 @@ static int seq_client_rpc(struct lu_client_seq *seq,
                        req->rq_no_delay = req->rq_no_resend = 1;
                debug_mask = D_CONSOLE;
        } else {
-               if (seq->lcs_type == LUSTRE_SEQ_METADATA)
+               if (seq->lcs_type == LUSTRE_SEQ_METADATA) {
+                       req->rq_reply_portal = MDC_REPLY_PORTAL;
                        req->rq_request_portal = SEQ_METADATA_PORTAL;
-               else
+               } else {
+                       req->rq_reply_portal = OSC_REPLY_PORTAL;
                        req->rq_request_portal = SEQ_DATA_PORTAL;
+               }
+
                debug_mask = D_INFO;
        }
 
        ptlrpc_at_set_req_timeout(req);
 
-       if (seq->lcs_type == LUSTRE_SEQ_METADATA)
+       if (opc != SEQ_ALLOC_SUPER && seq->lcs_type == LUSTRE_SEQ_METADATA)
                mdc_get_rpc_lock(exp->exp_obd->u.cli.cl_rpc_lock, NULL);
+
        rc = ptlrpc_queue_wait(req);
-       if (seq->lcs_type == LUSTRE_SEQ_METADATA)
+
+       if (opc != SEQ_ALLOC_SUPER && seq->lcs_type == LUSTRE_SEQ_METADATA)
                mdc_put_rpc_lock(exp->exp_obd->u.cli.cl_rpc_lock, NULL);
        if (rc)
                GOTO(out_req, rc);
@@ -438,10 +440,9 @@ static int seq_client_proc_init(struct lu_client_seq *seq)
         int rc;
         ENTRY;
 
-        seq->lcs_proc_dir = lprocfs_register(seq->lcs_name,
-                                             seq_type_proc_dir,
-                                             NULL, NULL);
-
+       seq->lcs_proc_dir = lprocfs_seq_register(seq->lcs_name,
+                                                seq_type_proc_dir,
+                                                NULL, NULL);
         if (IS_ERR(seq->lcs_proc_dir)) {
                 CERROR("%s: LProcFS failed in seq-init\n",
                        seq->lcs_name);
@@ -449,8 +450,8 @@ static int seq_client_proc_init(struct lu_client_seq *seq)
                 RETURN(rc);
         }
 
-        rc = lprocfs_add_vars(seq->lcs_proc_dir,
-                              seq_client_proc_list, seq);
+       rc = lprocfs_seq_add_vars(seq->lcs_proc_dir,
+                                 seq_client_proc_list, seq);
         if (rc) {
                 CERROR("%s: Can't init sequence manager "
                        "proc, rc %d\n", seq->lcs_name, rc);
@@ -495,8 +496,6 @@ int seq_client_init(struct lu_client_seq *seq,
 
        if (exp != NULL)
                seq->lcs_exp = class_export_get(exp);
-       else if (type == LUSTRE_SEQ_METADATA)
-               LASSERT(seq->lcs_srv != NULL);
 
        snprintf(seq->lcs_name, sizeof(seq->lcs_name),
                 "cli-%s", prefix);
@@ -571,14 +570,13 @@ int client_fid_fini(struct obd_device *obd)
 }
 EXPORT_SYMBOL(client_fid_fini);
 
-#ifdef __KERNEL__
 struct proc_dir_entry *seq_type_proc_dir;
 
 static int __init fid_mod_init(void)
 {
-       seq_type_proc_dir = lprocfs_register(LUSTRE_SEQ_NAME,
-                                            proc_lustre_root,
-                                            NULL, NULL);
+       seq_type_proc_dir = lprocfs_seq_register(LUSTRE_SEQ_NAME,
+                                                proc_lustre_root,
+                                                NULL, NULL);
        if (IS_ERR(seq_type_proc_dir))
                return PTR_ERR(seq_type_proc_dir);
 
@@ -606,4 +604,3 @@ MODULE_DESCRIPTION("Lustre FID Module");
 MODULE_LICENSE("GPL");
 
 cfs_module(fid, "0.1.0", fid_mod_init, fid_mod_exit);
-#endif /* __KERNEL__ */