-
-#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