-/* -*- 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.
* 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.
+ *
+ * Copyright (c) 2011, Whamcloud, Inc.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#define DEBUG_SUBSYSTEM S_LOG
-#ifndef EXPORT_SYMTAB
-#define EXPORT_SYMTAB
-#endif
-
#include <obd_class.h>
#include <lustre_log.h>
#include <libcfs/list.h>
RETURN(-EINVAL);
*end = '\0';
- logid->lgl_ogr = simple_strtoull(start, &endp, 0);
+ logid->lgl_oseq = simple_strtoull(start, &endp, 0);
if (endp != end)
RETURN(-EINVAL);
if (ioc_data && (ioc_data->ioc_inllen1)) {
l = 0;
remains = ioc_data->ioc_inllen4 +
- size_round(ioc_data->ioc_inllen1) +
- size_round(ioc_data->ioc_inllen2) +
- size_round(ioc_data->ioc_inllen3);
+ cfs_size_round(ioc_data->ioc_inllen1) +
+ cfs_size_round(ioc_data->ioc_inllen2) +
+ cfs_size_round(ioc_data->ioc_inllen3);
from = simple_strtol(ioc_data->ioc_inlbuf2, &endp, 0);
if (*endp != '\0')
RETURN(-EINVAL);
if (rc) {
CDEBUG(D_IOCTL,
"cannot find log #"LPX64"#"LPX64"#%08x\n",
- lir->lid_id.lgl_oid, lir->lid_id.lgl_ogr,
+ lir->lid_id.lgl_oid, lir->lid_id.lgl_oseq,
lir->lid_id.lgl_ogen);
RETURN(rc);
}
case OST_RAID1_REC:
case MDS_UNLINK_REC:
case MDS_SETATTR_REC:
+ case MDS_SETATTR64_REC:
case OBD_CFG_REC:
case LLOG_HDR_MAGIC: {
l = snprintf(out, remains, "[index]: %05d [type]: "
if (ioc_data->ioc_inllen1) {
l = 0;
remains = ioc_data->ioc_inllen4 +
- size_round(ioc_data->ioc_inllen1) +
- size_round(ioc_data->ioc_inllen2) +
- size_round(ioc_data->ioc_inllen3);
+ cfs_size_round(ioc_data->ioc_inllen1) +
+ cfs_size_round(ioc_data->ioc_inllen2) +
+ cfs_size_round(ioc_data->ioc_inllen3);
from = simple_strtol(ioc_data->ioc_inlbuf2, &endp, 0);
if (*endp != '\0')
RETURN(-EINVAL);
l = snprintf(out, remains,
"[index]: %05d [logid]: #"LPX64"#"LPX64"#%08x\n",
cur_index, lir->lid_id.lgl_oid,
- lir->lid_id.lgl_ogr, lir->lid_id.lgl_ogen);
+ lir->lid_id.lgl_oseq, lir->lid_id.lgl_ogen);
} else {
l = snprintf(out, remains,
"[index]: %05d [type]: %02x [len]: %04d\n",
int rc, index = 0;
ENTRY;
- down_write(&cat->lgh_lock);
+ cfs_down_write(&cat->lgh_lock);
rc = llog_cat_id2handle(cat, &log, logid);
if (rc) {
CDEBUG(D_IOCTL, "cannot find log #"LPX64"#"LPX64"#%08x\n",
- logid->lgl_oid, logid->lgl_ogr, logid->lgl_ogen);
+ logid->lgl_oid, logid->lgl_oseq, logid->lgl_ogen);
GOTO(out, rc = -ENOENT);
}
rc = llog_cancel_rec(cat, index);
out:
llog_free_handle(log);
- up_write(&cat->lgh_lock);
+ cfs_up_write(&cat->lgh_lock);
RETURN(rc);
}
case OBD_IOC_LLOG_INFO: {
int l;
int remains = data->ioc_inllen2 +
- size_round(data->ioc_inllen1);
+ cfs_size_round(data->ioc_inllen1);
char *out = data->ioc_bulk;
l = snprintf(out, remains,
"flags: %x (%s)\n"
"records count: %d\n"
"last index: %d\n",
- handle->lgh_id.lgl_oid, handle->lgh_id.lgl_ogr,
+ handle->lgh_id.lgl_oid, handle->lgh_id.lgl_oseq,
handle->lgh_id.lgl_ogen,
handle->lgh_hdr->llh_flags,
handle->lgh_hdr->llh_flags &
GOTO(out_close, err = -EINVAL);
if (handle->lgh_hdr->llh_flags & LLOG_F_IS_CAT) {
- down_write(&handle->lgh_lock);
+ cfs_down_write(&handle->lgh_lock);
err = llog_cancel_rec(handle, cookie.lgc_index);
- up_write(&handle->lgh_lock);
+ cfs_up_write(&handle->lgh_lock);
GOTO(out_close, err);
}
ENTRY;
size = sizeof(*idarray) * count;
- OBD_ALLOC(idarray, size);
+ OBD_ALLOC_LARGE(idarray, size);
if (!idarray)
RETURN(-ENOMEM);
- memset(idarray, 0, size);
- rc = llog_get_cat_list(obd, obd, name, count, idarray);
- if (rc) {
- OBD_FREE(idarray, size);
- RETURN(rc);
- }
+ cfs_mutex_lock(&obd->obd_olg.olg_cat_processing);
+ rc = llog_get_cat_list(obd, name, 0, count, idarray);
+ if (rc)
+ GOTO(out, rc);
out = data->ioc_bulk;
remains = data->ioc_inllen1;
id = &idarray[i].lci_logid;
l = snprintf(out, remains,
"catalog log: #"LPX64"#"LPX64"#%08x\n",
- id->lgl_oid, id->lgl_ogr, id->lgl_ogen);
+ id->lgl_oid, id->lgl_oseq, id->lgl_ogen);
out += l;
remains -= l;
if (remains <= 0) {
break;
}
}
- OBD_FREE(idarray, size);
- RETURN(0);
+out:
+ /* release semaphore */
+ cfs_mutex_unlock(&obd->obd_olg.olg_cat_processing);
+
+ OBD_FREE_LARGE(idarray, size);
+ RETURN(rc);
}
EXPORT_SYMBOL(llog_catalog_list);