X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fllog_ioctl.c;h=9de449f2f9c151fbc63cc164a587bc5d5a268c23;hb=93fe562c5dd3829939e3bc0533918f66b19776a4;hp=f377397c2eae647e8c0637257fe4e84ba395c825;hpb=d1697c70862f9b60771e6f1b07d8ba503fcdb3c4;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/llog_ioctl.c b/lustre/obdclass/llog_ioctl.c index f377397..9de449f 100644 --- a/lustre/obdclass/llog_ioctl.c +++ b/lustre/obdclass/llog_ioctl.c @@ -27,7 +27,7 @@ * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2012, Intel Corporation. + * Copyright (c) 2011, 2013, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -43,6 +43,7 @@ static int str2logid(struct llog_logid *logid, char *str, int len) { char *start, *end, *endp; + __u64 id, seq; ENTRY; start = str; @@ -57,7 +58,7 @@ static int str2logid(struct llog_logid *logid, char *str, int len) RETURN(-EINVAL); *end = '\0'; - logid->lgl_oid = simple_strtoull(start, &endp, 0); + id = simple_strtoull(start, &endp, 0); if (endp != end) RETURN(-EINVAL); @@ -69,11 +70,14 @@ static int str2logid(struct llog_logid *logid, char *str, int len) RETURN(-EINVAL); *end = '\0'; - logid->lgl_oseq = simple_strtoull(start, &endp, 0); + seq = simple_strtoull(start, &endp, 0); if (endp != end) RETURN(-EINVAL); - start = ++end; + ostid_set_seq(&logid->lgl_oi, seq); + ostid_set_id(&logid->lgl_oi, id); + + start = ++end; if (start - str >= len - 1) RETURN(-EINVAL); logid->lgl_ogen = simple_strtoul(start, &endp, 16); @@ -87,7 +91,8 @@ static int llog_check_cb(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, void *data) { struct obd_ioctl_data *ioc_data = (struct obd_ioctl_data *)data; - static int l, remains, from, to; + static int l, remains; + static long from, to; static char *out; char *endp; int cur_index, rc = 0; @@ -130,9 +135,8 @@ static int llog_check_cb(const struct lu_env *env, struct llog_handle *handle, RETURN(-EOPNOTSUPP); rc = llog_cat_id2handle(env, handle, &loghandle, &lir->lid_id); if (rc) { - CDEBUG(D_IOCTL, - "cannot find log #"LPX64"#"LPX64"#%08x\n", - lir->lid_id.lgl_oid, lir->lid_id.lgl_oseq, + CDEBUG(D_IOCTL, "cannot find log #"DOSTID"#%08x\n", + POSTID(&lir->lid_id.lgl_oi), lir->lid_id.lgl_ogen); RETURN(rc); } @@ -174,7 +178,8 @@ static int llog_print_cb(const struct lu_env *env, struct llog_handle *handle, struct llog_rec_hdr *rec, void *data) { struct obd_ioctl_data *ioc_data = (struct obd_ioctl_data *)data; - static int l, remains, from, to; + static int l, remains; + static long from, to; static char *out; char *endp; int cur_index; @@ -210,10 +215,10 @@ static int llog_print_cb(const struct lu_env *env, struct llog_handle *handle, RETURN(-EINVAL); } - l = snprintf(out, remains, - "[index]: %05d [logid]: #"LPX64"#"LPX64"#%08x\n", - cur_index, lir->lid_id.lgl_oid, - lir->lid_id.lgl_oseq, lir->lid_id.lgl_ogen); + l = snprintf(out, remains, + "[index]: %05d [logid]: #"DOSTID"#%08x\n", + cur_index, POSTID(&lir->lid_id.lgl_oi), + lir->lid_id.lgl_ogen); } else if (rec->lrh_type == OBD_CFG_REC) { int rc; @@ -245,8 +250,8 @@ static int llog_remove_log(const struct lu_env *env, struct llog_handle *cat, rc = llog_cat_id2handle(env, cat, &log, logid); if (rc) { - CDEBUG(D_IOCTL, "cannot find log #"LPX64"#"LPX64"#%08x\n", - logid->lgl_oid, logid->lgl_oseq, logid->lgl_ogen); + CDEBUG(D_IOCTL, "cannot find log #"DOSTID"#%08x\n", + POSTID(&logid->lgl_oi), logid->lgl_ogen); RETURN(-ENOENT); } @@ -316,18 +321,18 @@ int llog_ioctl(const struct lu_env *env, struct llog_ctxt *ctxt, int cmd, cfs_size_round(data->ioc_inllen1); char *out = data->ioc_bulk; - l = snprintf(out, remains, - "logid: #"LPX64"#"LPX64"#%08x\n" - "flags: %x (%s)\n" - "records count: %d\n" - "last index: %d\n", - 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 & - LLOG_F_IS_CAT ? "cat" : "plain", - handle->lgh_hdr->llh_count, - handle->lgh_last_idx); + l = snprintf(out, remains, + "logid: #"DOSTID"#%08x\n" + "flags: %x (%s)\n" + "records count: %d\n" + "last index: %d\n", + POSTID(&handle->lgh_id.lgl_oi), + handle->lgh_id.lgl_ogen, + handle->lgh_hdr->llh_flags, + handle->lgh_hdr->llh_flags & + LLOG_F_IS_CAT ? "cat" : "plain", + handle->lgh_hdr->llh_count, + handle->lgh_last_idx); out += l; remains -= l; if (remains <= 0) { @@ -422,51 +427,3 @@ out_close: RETURN(rc); } EXPORT_SYMBOL(llog_ioctl); - -#ifdef HAVE_LDISKFS_OSD -int llog_catalog_list(struct obd_device *obd, int count, - struct obd_ioctl_data *data) -{ - int size, i; - struct llog_catid *idarray; - struct llog_logid *id; - char name[32] = CATLIST; - char *out; - int l, remains, rc = 0; - - ENTRY; - size = sizeof(*idarray) * count; - - OBD_ALLOC_LARGE(idarray, size); - if (!idarray) - RETURN(-ENOMEM); - - 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; - for (i = 0; i < count; i++) { - id = &idarray[i].lci_logid; - l = snprintf(out, remains, - "catalog log: #"LPX64"#"LPX64"#%08x\n", - id->lgl_oid, id->lgl_oseq, id->lgl_ogen); - out += l; - remains -= l; - if (remains <= 0) { - CWARN("not enough memory for catlog list\n"); - break; - } - } -out: - /* release semaphore */ - mutex_unlock(&obd->obd_olg.olg_cat_processing); - - OBD_FREE_LARGE(idarray, size); - RETURN(rc); - -} -EXPORT_SYMBOL(llog_catalog_list); -#endif