#include <lustre_fid.h>
#include "fid_internal.h"
+int client_fid_init(struct obd_export *exp, enum lu_cli_type type)
+{
+ struct client_obd *cli = &exp->exp_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",
+ exp->exp_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_export *exp)
+{
+ struct client_obd *cli = &exp->exp_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. */
int seq_server_set_cli(struct lu_server_seq *seq,
struct lu_client_seq *cli,
ENTRY;
ss_site = lu_site2seq(site);
+
switch (opc) {
case SEQ_ALLOC_META:
if (!ss_site->ss_server_seq) {
}
EXPORT_SYMBOL(seq_query);
-static void seq_server_proc_fini(struct lu_server_seq *seq);
#ifdef LPROCFS
static int seq_server_proc_init(struct lu_server_seq *seq)
LUSTRE_SEQ_ZERO_RANGE:
LUSTRE_SEQ_SPACE_RANGE;
+ LASSERT(ss != NULL);
seq->lss_space.lsr_index = ss->ss_node_id;
LCONSOLE_INFO("%s: No data found "
"on store. Initialize space\n",