X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fobdclass%2Fllog_test.c;h=037e0a7af9772ea316394b59c58bc6c0d007d58c;hp=6d467cee80603ddb067220a8317e013a9490571a;hb=801469af8c31afad1bd8aaa23b01bfc42abe45eb;hpb=a928591d58b5d0dbbcc9a7f534dca2b6df22da9e diff --git a/lustre/obdclass/llog_test.c b/lustre/obdclass/llog_test.c index 6d467ce..037e0a7 100644 --- a/lustre/obdclass/llog_test.c +++ b/lustre/obdclass/llog_test.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -26,7 +24,7 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. */ /* @@ -38,9 +36,6 @@ * Author: Phil Schwan */ -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif #define DEBUG_SUBSYSTEM S_CLASS #include @@ -104,20 +99,20 @@ static int llog_test_1(struct obd_device *obd, char *name) CWARN("1a: create a log with name: %s\n", name); LASSERT(ctxt); - rc = llog_create(ctxt, &llh, NULL, name); + rc = llog_open_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); @@ -136,12 +131,12 @@ static int llog_test_2(struct obd_device *obd, char *name, ENTRY; CWARN("2a: re-open a log with name: %s\n", name); - rc = llog_create(ctxt, llh, NULL, name); + rc = llog_open(NULL, ctxt, llh, NULL, name, LLOG_OPEN_EXISTS); 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); @@ -190,7 +185,7 @@ static int llog_test_3(struct obd_device *obd, struct llog_handle *llh) 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); @@ -207,7 +202,7 @@ static int llog_test_3(struct obd_device *obd, struct llog_handle *llh) 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); @@ -223,7 +218,8 @@ static int llog_test_3(struct obd_device *obd, struct llog_handle *llh) 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); @@ -248,11 +244,13 @@ static int llog_test_3(struct obd_device *obd, struct llog_handle *llh) 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) { @@ -295,17 +293,17 @@ static int llog_test_4(struct obd_device *obd) 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_open_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); @@ -318,7 +316,7 @@ static int llog_test_4(struct obd_device *obd) 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); @@ -330,7 +328,7 @@ static int llog_test_4(struct obd_device *obd) 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); @@ -348,7 +346,7 @@ static int llog_test_4(struct obd_device *obd) 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); @@ -361,7 +359,7 @@ static int llog_test_4(struct obd_device *obd) out: CWARN("4f: put newly-created catalog\n"); - rc = llog_cat_put(cath); + rc = llog_cat_close(NULL, cath); ctxt_release: llog_ctxt_put(ctxt); if (rc) @@ -369,8 +367,8 @@ ctxt_release: 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; @@ -385,8 +383,8 @@ static int cat_print_cb(struct llog_handle *llh, struct llog_rec_hdr *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"); @@ -398,8 +396,9 @@ static int plain_print_cb(struct llog_handle *llh, struct llog_rec_hdr *rec, 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; @@ -412,7 +411,7 @@ static int llog_cancel_rec_cb(struct llog_handle *llh, struct llog_rec_hdr *rec, 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); @@ -434,29 +433,29 @@ static int llog_test_5(struct obd_device *obd) lmr.lmr_hdr.lrh_type = 0xf00f00; CWARN("5a: re-open catalog by id\n"); - rc = llog_create(ctxt, &llh, &cat_logid, NULL); + rc = llog_open(NULL, ctxt, &llh, &cat_logid, NULL, LLOG_OPEN_EXISTS); 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"); @@ -464,21 +463,21 @@ static int llog_test_5(struct obd_device *obd) } 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); @@ -487,7 +486,7 @@ static int llog_test_5(struct obd_device *obd) out: CWARN("5: close re-opened catalog\n"); if (llh) - rc = llog_cat_put(llh); + rc = llog_cat_close(NULL, llh); if (rc) CERROR("1b: close log %s failed: %d\n", name, rc); llog_ctxt_put(ctxt); @@ -526,29 +525,29 @@ static int llog_test_6(struct obd_device *obd, char *name) } nctxt = llog_get_context(mgc_obd, LLOG_CONFIG_REPL_CTXT); - rc = llog_create(nctxt, &llh, NULL, name); + rc = llog_open(NULL, nctxt, &llh, NULL, name, LLOG_OPEN_EXISTS); 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); @@ -571,26 +570,25 @@ static int llog_test_7(struct obd_device *obd) CWARN("7: create a log with name: %s\n", name); LASSERT(ctxt); - rc = llog_create(ctxt, &llh, NULL, name); + rc = llog_open_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 - llog_free_handle(llh); + llog_close(NULL, llh); ctxt_release: llog_ctxt_put(ctxt); RETURN(rc); @@ -643,7 +641,7 @@ static int llog_run_tests(struct obd_device *obd) 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) @@ -655,7 +653,6 @@ static int llog_run_tests(struct obd_device *obd) return rc; } - static int llog_test_llog_init(struct obd_device *obd, struct obd_llog_group *olg, struct obd_device *tgt, int *index) @@ -726,7 +723,7 @@ static int llog_test_setup(struct obd_device *obd, struct lustre_cfg *lcfg) if (rc) RETURN(rc); - llog_test_rand = ll_rand(); + llog_test_rand = cfs_rand(); rc = llog_run_tests(obd); if (rc)