* Author: Phil Schwan <phil@clusterfs.com>
*/
-#ifndef EXPORT_SYMTAB
-# define EXPORT_SYMTAB
-#endif
#define DEBUG_SUBSYSTEM S_CLASS
#include <linux/module.h>
CWARN("1a: create a log with name: %s\n", name);
LASSERT(ctxt);
- rc = llog_create(ctxt, &llh, NULL, name);
+ rc = llog_create(NULL, ctxt, &llh, NULL, name);
if (rc) {
CERROR("1a: llog_create with name %s failed: %d\n", name, rc);
llog_ctxt_put(ctxt);
RETURN(rc);
}
- llog_init_handle(llh, LLOG_F_IS_PLAIN, &uuid);
+ llog_init_handle(NULL, llh, LLOG_F_IS_PLAIN, &uuid);
if ((rc = verify_handle("1", llh, 1)))
GOTO(out, rc);
out:
CWARN("1b: close newly-created log\n");
- rc2 = llog_close(llh);
+ rc2 = llog_close(NULL, llh);
llog_ctxt_put(ctxt);
if (rc2) {
CERROR("1b: close log %s failed: %d\n", name, rc2);
ENTRY;
CWARN("2a: re-open a log with name: %s\n", name);
- rc = llog_create(ctxt, llh, NULL, name);
+ rc = llog_create(NULL, ctxt, llh, NULL, name);
if (rc) {
CERROR("2a: re-open log with name %s failed: %d\n", name, rc);
GOTO(out, rc);
}
- llog_init_handle(*llh, LLOG_F_IS_PLAIN, &uuid);
+ llog_init_handle(NULL, *llh, LLOG_F_IS_PLAIN, &uuid);
if ((rc = verify_handle("2", *llh, 1)))
GOTO(out, rc);
lcr.lcr_hdr.lrh_type = OST_SZ_REC;
CWARN("3a: write one create_rec\n");
- rc = llog_write_rec(llh, &lcr.lcr_hdr, NULL, 0, NULL, -1);
+ rc = llog_write_rec(NULL, llh, &lcr.lcr_hdr, NULL, 0, NULL, -1);
num_recs++;
if (rc) {
CERROR("3a: write one log record failed: %d\n", rc);
hdr.lrh_len = 8;
hdr.lrh_type = OBD_CFG_REC;
memset(buf, 0, sizeof buf);
- rc = llog_write_rec(llh, &hdr, NULL, 0, buf, -1);
+ rc = llog_write_rec(NULL, llh, &hdr, NULL, 0, buf, -1);
if (rc) {
CERROR("3b: write 10 records failed at #%d: %d\n",
i + 1, rc);
CWARN("3c: write 1000 more log records\n");
for (i = 0; i < 1000; i++) {
- rc = llog_write_rec(llh, &lcr.lcr_hdr, NULL, 0, NULL, -1);
+ rc = llog_write_rec(NULL, llh, &lcr.lcr_hdr, NULL, 0, NULL,
+ -1);
if (rc) {
CERROR("3c: write 1000 records failed at #%d: %d\n",
i + 1, rc);
if ((i % 2) == 0) {
hdr.lrh_len = 24;
hdr.lrh_type = OBD_CFG_REC;
- rc = llog_write_rec(llh, &hdr, NULL, 0, buf_even, -1);
+ rc = llog_write_rec(NULL, llh, &hdr, NULL, 0, buf_even,
+ -1);
} else {
hdr.lrh_len = 32;
hdr.lrh_type = OBD_CFG_REC;
- rc = llog_write_rec(llh, &hdr, NULL, 0, buf_odd, -1);
+ rc = llog_write_rec(NULL, llh, &hdr, NULL, 0, buf_odd,
+ -1);
}
if (rc) {
if (rc == -ENOSPC) {
sprintf(name, "%x", llog_test_rand+1);
CWARN("4a: create a catalog log with name: %s\n", name);
- rc = llog_create(ctxt, &cath, NULL, name);
+ rc = llog_create(NULL, ctxt, &cath, NULL, name);
if (rc) {
CERROR("1a: llog_create with name %s failed: %d\n", name, rc);
GOTO(out, rc);
}
- llog_init_handle(cath, LLOG_F_IS_CAT, &uuid);
+ llog_init_handle(NULL, cath, LLOG_F_IS_CAT, &uuid);
num_recs++;
cat_logid = cath->lgh_id;
CWARN("4b: write 1 record into the catalog\n");
- rc = llog_cat_add_rec(cath, &lmr.lmr_hdr, &cookie, NULL);
+ rc = llog_cat_add_rec(NULL, cath, &lmr.lmr_hdr, &cookie, NULL);
if (rc != 1) {
CERROR("4b: write 1 catalog record failed at: %d\n", rc);
GOTO(out, rc);
GOTO(ctxt_release, rc);
CWARN("4c: cancel 1 log record\n");
- rc = llog_cat_cancel_records(cath, 1, &cookie);
+ rc = llog_cat_cancel_records(NULL, cath, 1, &cookie);
if (rc) {
CERROR("4c: cancel 1 catalog based record failed: %d\n", rc);
GOTO(out, rc);
CWARN("4d: write 40,000 more log records\n");
for (i = 0; i < 40000; i++) {
- rc = llog_cat_add_rec(cath, &lmr.lmr_hdr, NULL, NULL);
+ rc = llog_cat_add_rec(NULL, cath, &lmr.lmr_hdr, NULL, NULL);
if (rc) {
CERROR("4d: write 40000 records failed at #%d: %d\n",
i + 1, rc);
for (i = 0; i < 5; i++) {
rec.lrh_len = buflen;
rec.lrh_type = OBD_CFG_REC;
- rc = llog_cat_add_rec(cath, &rec, NULL, buf);
+ rc = llog_cat_add_rec(NULL, cath, &rec, NULL, buf);
if (rc) {
CERROR("4e: write 5 records failed at #%d: %d\n",
i + 1, rc);
out:
CWARN("4f: put newly-created catalog\n");
- rc = llog_cat_put(cath);
+ rc = llog_cat_put(NULL, cath);
ctxt_release:
llog_ctxt_put(ctxt);
if (rc)
RETURN(rc);
}
-static int cat_print_cb(struct llog_handle *llh, struct llog_rec_hdr *rec,
- void *data)
+static int cat_print_cb(const struct lu_env *env, struct llog_handle *llh,
+ struct llog_rec_hdr *rec, void *data)
{
struct llog_logid_rec *lir = (struct llog_logid_rec *)rec;
RETURN(0);
}
-static int plain_print_cb(struct llog_handle *llh, struct llog_rec_hdr *rec,
- void *data)
+static int plain_print_cb(const struct lu_env *env, struct llog_handle *llh,
+ struct llog_rec_hdr *rec, void *data)
{
if (!(llh->lgh_hdr->llh_flags & LLOG_F_IS_PLAIN)) {
CERROR("log is not plain\n");
RETURN(0);
}
-static int llog_cancel_rec_cb(struct llog_handle *llh, struct llog_rec_hdr *rec,
- void *data)
+static int llog_cancel_rec_cb(const struct lu_env *env,
+ struct llog_handle *llh,
+ struct llog_rec_hdr *rec, void *data)
{
struct llog_cookie cookie;
static int i = 0;
cookie.lgc_lgl = llh->lgh_id;
cookie.lgc_index = rec->lrh_index;
- llog_cat_cancel_records(llh->u.phd.phd_cat_handle, 1, &cookie);
+ llog_cat_cancel_records(NULL, llh->u.phd.phd_cat_handle, 1, &cookie);
i++;
if (i == 40000)
RETURN(-4711);
lmr.lmr_hdr.lrh_type = 0xf00f00;
CWARN("5a: re-open catalog by id\n");
- rc = llog_create(ctxt, &llh, &cat_logid, NULL);
+ rc = llog_create(NULL, ctxt, &llh, &cat_logid, NULL);
if (rc) {
CERROR("5a: llog_create with logid failed: %d\n", rc);
GOTO(out, rc);
}
- llog_init_handle(llh, LLOG_F_IS_CAT, &uuid);
+ llog_init_handle(NULL, llh, LLOG_F_IS_CAT, &uuid);
CWARN("5b: print the catalog entries.. we expect 2\n");
- rc = llog_process(llh, cat_print_cb, "test 5", NULL);
+ rc = llog_process(NULL, llh, cat_print_cb, "test 5", NULL);
if (rc) {
CERROR("5b: process with cat_print_cb failed: %d\n", rc);
GOTO(out, rc);
}
CWARN("5c: Cancel 40000 records, see one log zapped\n");
- rc = llog_cat_process(llh, llog_cancel_rec_cb, "foobar", 0, 0);
+ rc = llog_cat_process(NULL, llh, llog_cancel_rec_cb, "foobar", 0, 0);
if (rc != -4711) {
CERROR("5c: process with cat_cancel_cb failed: %d\n", rc);
GOTO(out, rc);
}
CWARN("5d: add 1 record to the log with many canceled empty pages\n");
- rc = llog_cat_add_rec(llh, &lmr.lmr_hdr, NULL, NULL);
+ rc = llog_cat_add_rec(NULL, llh, &lmr.lmr_hdr, NULL, NULL);
if (rc) {
CERROR("5d: add record to the log with many canceled empty\
pages failed\n");
}
CWARN("5b: print the catalog entries.. we expect 1\n");
- rc = llog_process(llh, cat_print_cb, "test 5", NULL);
+ rc = llog_process(NULL, llh, cat_print_cb, "test 5", NULL);
if (rc) {
CERROR("5b: process with cat_print_cb failed: %d\n", rc);
GOTO(out, rc);
}
CWARN("5e: print plain log entries.. expect 6\n");
- rc = llog_cat_process(llh, plain_print_cb, "foobar", 0, 0);
+ rc = llog_cat_process(NULL, llh, plain_print_cb, "foobar", 0, 0);
if (rc) {
CERROR("5e: process with plain_print_cb failed: %d\n", rc);
GOTO(out, rc);
}
CWARN("5f: print plain log entries reversely.. expect 6\n");
- rc = llog_cat_reverse_process(llh, plain_print_cb, "foobar");
+ rc = llog_cat_reverse_process(NULL, llh, plain_print_cb, "foobar");
if (rc) {
CERROR("5f: reversely process with plain_print_cb failed: %d\n", rc);
GOTO(out, rc);
out:
CWARN("5: close re-opened catalog\n");
if (llh)
- rc = llog_cat_put(llh);
+ rc = llog_cat_put(NULL, llh);
if (rc)
CERROR("1b: close log %s failed: %d\n", name, rc);
llog_ctxt_put(ctxt);
}
nctxt = llog_get_context(mgc_obd, LLOG_CONFIG_REPL_CTXT);
- rc = llog_create(nctxt, &llh, NULL, name);
+ rc = llog_create(NULL, nctxt, &llh, NULL, name);
if (rc) {
CERROR("6: llog_create failed %d\n", rc);
llog_ctxt_put(nctxt);
GOTO(ctxt_release, rc);
}
- rc = llog_init_handle(llh, LLOG_F_IS_PLAIN, NULL);
+ rc = llog_init_handle(NULL, llh, LLOG_F_IS_PLAIN, NULL);
if (rc) {
CERROR("6: llog_init_handle failed %d\n", rc);
GOTO(parse_out, rc);
}
- rc = llog_process(llh, plain_print_cb, NULL, NULL);
+ rc = llog_process(NULL, llh, plain_print_cb, NULL, NULL);
if (rc)
CERROR("6: llog_process failed %d\n", rc);
- rc = llog_reverse_process(llh, plain_print_cb, NULL, NULL);
+ rc = llog_reverse_process(NULL, llh, plain_print_cb, NULL, NULL);
if (rc)
CERROR("6: llog_reverse_process failed %d\n", rc);
parse_out:
- rc = llog_close(llh);
+ rc = llog_close(NULL, llh);
llog_ctxt_put(nctxt);
if (rc) {
CERROR("6: llog_close failed: rc = %d\n", rc);
CWARN("7: create a log with name: %s\n", name);
LASSERT(ctxt);
- rc = llog_create(ctxt, &llh, NULL, name);
+ rc = llog_create(NULL, ctxt, &llh, NULL, name);
if (rc) {
CERROR("7: llog_create with name %s failed: %d\n", name, rc);
GOTO(ctxt_release, rc);
}
- llog_init_handle(llh, LLOG_F_IS_PLAIN, &uuid);
+ llog_init_handle(NULL, llh, LLOG_F_IS_PLAIN, &uuid);
lcr.lcr_hdr.lrh_len = lcr.lcr_tail.lrt_len = sizeof(lcr);
lcr.lcr_hdr.lrh_type = OST_SZ_REC;
- rc = llog_write_rec(llh, &lcr.lcr_hdr, NULL, 0, NULL, -1);
+ rc = llog_write_rec(NULL, llh, &lcr.lcr_hdr, NULL, 0, NULL, -1);
if (rc) {
CERROR("7: write one log record failed: %d\n", rc);
GOTO(ctxt_release, rc);
}
- rc = llog_destroy(llh);
+ rc = llog_destroy(NULL, llh);
if (rc)
CERROR("7: llog_destroy failed: %d\n", rc);
else
cleanup:
switch (cleanup_phase) {
case 1:
- err = llog_close(llh);
+ err = llog_close(NULL, llh);
if (err)
CERROR("cleanup: llog_close failed: %d\n", err);
if (!rc)
return rc;
}
-
static int llog_test_llog_init(struct obd_device *obd,
struct obd_llog_group *olg,
struct obd_device *tgt, int *index)