* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2016, Intel Corporation.
+ * Copyright (c) 2011, 2017, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
lcfg->lcfg_buflens);
data.ioc_pbuf1 = (void *)lcfg;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(func));
lcfg->lcfg_buflens);
data.ioc_pbuf1 = (void *)lcfg;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(func));
data.ioc_inlbuf1 = name;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc < 0) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(func));
rc = l2_ioctl(OBD_DEV_ID, OBD_IOC_NAME2DEV, buf);
if (rc < 0)
return errno;
- rc = obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ rc = llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid reply\n",
jt_cmdname(func));
return CMD_HELP;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return CMD_HELP;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return CMD_HELP;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_plen2 = sizeof(max_count);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: invalid ioctl rc = %d\n", rc);
return rc;
count += data.ioc_count;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl %d\n",
jt_cmdname(argv[0]), rc);
OBD_MD_FLPROJID;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return rc;
}
rc = l2_ioctl(OBD_DEV_ID, OBD_IOC_CREATE, buf);
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
shmem_bump(1);
if (rc < 0) {
fprintf(stderr, "error: %s: #%d - %s\n",
data.ioc_obdo1.o_valid = OBD_MD_FLID | OBD_MD_FLTYPE | OBD_MD_FLMODE;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_obdo1.o_mode = S_IFREG;
data.ioc_obdo1.o_valid = OBD_MD_FLID | OBD_MD_FLTYPE | OBD_MD_FLMODE;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
if (argc < 2 || argc > 4)
return CMD_HELP;
+ errno = 0;
id = strtoull(argv[1], &end, 0);
if (*end || id == 0 || errno != 0) {
fprintf(stderr, "error: %s: invalid objid '%s'\n",
data.ioc_obdo1.o_valid = OBD_MD_FLID | OBD_MD_FLMODE;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return rc;
}
rc = l2_ioctl(OBD_DEV_ID, OBD_IOC_DESTROY, buf);
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
shmem_bump(1);
if (rc < 0) {
fprintf(stderr, "error: %s: objid %#jx: %s\n",
(uintmax_t)ostid_id(&data.ioc_obdo1.o_oi));
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return rc;
}
rc = l2_ioctl(OBD_DEV_ID, OBD_IOC_GETATTR, buf);
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: %s\n", jt_cmdname(argv[0]),
strerror(rc = errno));
data.ioc_obdo1.o_mode = S_IFREG;
data.ioc_obdo1.o_valid = 0xffffffff;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
for (i = 1, next_count = verbose; i <= count && shmem_running(); i++) {
data.ioc_obdo1.o_valid &= ~(OBD_MD_FLBLOCKS|OBD_MD_FLGRANT);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_inllen3 = desc.ld_tgt_count * sizeof(*obdgens);
data.ioc_inlbuf3 = (char *)obdgens;
- if (obd_ioctl_pack(&data, &buf, sizeof(rawbuf))) {
+ if (llapi_ioctl_pack(&data, &buf, sizeof(rawbuf))) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
rc = -EINVAL;
__u32 *genp;
int i;
- if (obd_ioctl_unpack(&data, buf, sizeof(rawbuf))) {
+ if (llapi_ioctl_unpack(&data, buf, sizeof(rawbuf))) {
fprintf(stderr, "error: %s: invalid reply\n",
jt_cmdname(argv[0]));
rc = -EINVAL;
data.ioc_offset = flag;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
* are skipped and recorded with new nids and uuid.
*
* \see mgs_replace_nids
- * \see mgs_replace_nids_log
- * \see mgs_replace_handler
+ * \see mgs_replace_log
+ * \see mgs_replace_nids_handler
*/
int jt_replace_nids(int argc, char **argv)
{
data.ioc_inllen2 = strlen(argv[2]) + 1;
data.ioc_inlbuf2 = argv[2];
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return rc;
}
+/**
+ * Clear config logs for given device or filesystem.
+ * lctl clear_conf <devicename|fsname>
+ * Command has to be run on MGS node having MGS device mounted with -o
+ * nosvc.
+ *
+ * Configuration logs for filesystem or one particular log is
+ * processed. New log is created, original log is read, its records
+ * marked SKIP do not get copied to new log. Others are copied as-is.
+ * Original file is renamed to log.${time}.bak.
+ *
+ * \see mgs_clear_configs
+ * \see mgs_replace_log
+ * \see mgs_clear_config_handler
+ **/
+int jt_lcfg_clear(int argc, char **argv)
+{
+ int rc;
+ char rawbuf[MAX_IOC_BUFLEN], *buf = rawbuf;
+ struct obd_ioctl_data data;
+
+ memset(&data, 0, sizeof(data));
+ data.ioc_dev = get_mgs_device();
+ if (argc != 2)
+ return CMD_HELP;
+
+ data.ioc_inllen1 = strlen(argv[1]) + 1;
+ data.ioc_inlbuf1 = argv[1];
+
+ memset(buf, 0, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ if (rc) {
+ fprintf(stderr, "error: %s: invalid ioctl\n",
+ jt_cmdname(argv[0]));
+ return rc;
+ }
+
+ rc = l2_ioctl(OBD_DEV_ID, OBD_IOC_CLEAR_CONFIGS, buf);
+ if (rc < 0) {
+ fprintf(stderr, "error: %s: %s\n", jt_cmdname(argv[0]),
+ strerror(rc = errno));
+ }
+
+ return rc;
+}
+
int jt_obd_deactivate(int argc, char **argv)
{
return do_activate(argc, argv, 0);
}
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_inlbuf1 = child;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
close(fd);
if (verbose) {
- rc = obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ rc = llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid reply\n",
jt_cmdname(argv[0]));
data.ioc_inlbuf2 = argv[2];
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_inlbuf1 = argv[1];
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
memset(&data, 0, sizeof(data));
data.ioc_dev = cur_device;
- data.ioc_inllen1 = sizeof(rawbuf) - cfs_size_round(sizeof(data));
+ data.ioc_inllen1 = sizeof(rawbuf) - __ALIGN_KERNEL(sizeof(data), 8);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_dev = cur_device;
data.ioc_inllen1 = strlen(argv[1]) + 1;
data.ioc_inlbuf1 = argv[1];
- data.ioc_inllen2 = sizeof(rawbuf) - cfs_size_round(sizeof(data)) -
- cfs_size_round(data.ioc_inllen1);
+ data.ioc_inllen2 = sizeof(rawbuf) - __ALIGN_KERNEL(sizeof(data), 8) -
+ __ALIGN_KERNEL(data.ioc_inllen1, 8);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_inllen3 = strlen(to) + 1;
data.ioc_inlbuf3 = to;
}
- data.ioc_inllen4 = sizeof(rawbuf) - cfs_size_round(sizeof(data)) -
- cfs_size_round(data.ioc_inllen1) -
- cfs_size_round(data.ioc_inllen2) -
- cfs_size_round(data.ioc_inllen3);
+ data.ioc_inllen4 = sizeof(rawbuf) - __ALIGN_KERNEL(sizeof(data), 8) -
+ __ALIGN_KERNEL(data.ioc_inllen1, 8) -
+ __ALIGN_KERNEL(data.ioc_inllen2, 8) -
+ __ALIGN_KERNEL(data.ioc_inllen3, 8);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
}
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_inllen3 = strlen(to) + 1;
data.ioc_inlbuf3 = to;
}
- data.ioc_inllen4 = sizeof(rawbuf) - cfs_size_round(sizeof(data)) -
- cfs_size_round(data.ioc_inllen1) -
- cfs_size_round(data.ioc_inllen2) -
- cfs_size_round(data.ioc_inllen3);
+ data.ioc_inllen4 = sizeof(rawbuf) - __ALIGN_KERNEL(sizeof(data), 8) -
+ __ALIGN_KERNEL(data.ioc_inllen1, 8) -
+ __ALIGN_KERNEL(data.ioc_inllen2, 8) -
+ __ALIGN_KERNEL(data.ioc_inllen3, 8);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
data.ioc_inlbuf2 = argv[2];
}
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
if (shmem_setup() != 0)
return -1;
- register_ioc_dev(OBD_DEV_ID, OBD_DEV_PATH,
- OBD_DEV_MAJOR, OBD_DEV_MINOR);
+ register_ioc_dev(OBD_DEV_ID, OBD_DEV_PATH);
return 0;
}
data.ioc_pbuf1 = (void *)lcfg;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(cmdname));
out:
if (rc)
rc = -errno;
+ switch (rc) {
+ case -ENAMETOOLONG:
+ fprintf(stderr, "error: %s: either the pool or file "
+ "system name is too long (max pool name len "
+ "is %d and file system name is %d)\n",
+ jt_cmdname(cmdname), LOV_MAXPOOLNAME,
+ LUSTRE_MAXFSNAME);
+ break;
+ case -EINVAL:
+ fprintf(stderr, "error: %s can contain only "
+ "alphanumeric characters, underscores, and "
+ "dashes besides the required '.'\n",
+ jt_cmdname(cmdname));
+ default:
+ break;
+ }
free(lcfg);
- return rc;
+ return rc;
}
/**
data.ioc_pbuf1 = (void *)lcfg;
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc != 0) {
fprintf(stderr, "error: invalid ioctl: %08x errno: %d with "
"rc=%d\n", cmd, errno, rc);
}
if (ret_data != NULL) {
- rc = obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ rc = llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
if (rc != 0)
goto out;
return -1;
}
- if (!cfs_nidrange_is_contiguous(&nidlist)) {
- fprintf(stderr, "error: %s: nodemap ranges must be "
- "contiguous\n", jt_cmdname(argv[0]));
- return -1;
+ rc = cfs_nidrange_find_min_max(&nidlist, &min_nid[0], &max_nid[0],
+ LNET_NIDSTR_SIZE);
+ if (rc < 0) {
+ errno = -rc;
+ if (rc == -EINVAL)
+ fprintf(stderr, "error: %s: nid range uses "
+ "currently unsupported features\n",
+ jt_cmdname(argv[0]));
+ else if (rc == -ERANGE)
+ fprintf(stderr, "error: %s: nodemap ranges must be "
+ "contiguous\n", jt_cmdname(argv[0]));
+
+ return rc;
}
- cfs_nidrange_find_min_max(&nidlist, &min_nid[0], &max_nid[0],
- LNET_NIDSTR_SIZE);
snprintf(nid_range, sizeof(nid_range), "%s:%s", min_nid, max_nid);
rc = nodemap_cmd(LCFG_NODEMAP_ADD_RANGE, NULL, 0, argv[0],
return -1;
}
- if (!cfs_nidrange_is_contiguous(&nidlist)) {
- fprintf(stderr, "error: %s: nodemap ranges must be "
- "contiguous\n", jt_cmdname(argv[0]));
- return -1;
+ rc = cfs_nidrange_find_min_max(&nidlist, &min_nid[0], &max_nid[0],
+ LNET_NIDSTR_SIZE);
+ if (rc < 0) {
+ errno = -rc;
+ if (rc == -EINVAL)
+ fprintf(stderr, "error: %s: nid range uses "
+ "currently unsupported features\n",
+ jt_cmdname(argv[0]));
+ else if (rc == -ERANGE)
+ fprintf(stderr, "error: %s: nodemap ranges must be "
+ "contiguous\n", jt_cmdname(argv[0]));
+
+ return rc;
}
- cfs_nidrange_find_min_max(&nidlist, &min_nid[0], &max_nid[0],
- LNET_NIDSTR_SIZE);
snprintf(nid_range, sizeof(nid_range), "%s:%s", min_nid, max_nid);
rc = nodemap_cmd(LCFG_NODEMAP_DEL_RANGE, NULL, 0, argv[0],
fprintf(stderr, "usage: nodemap_modify --name <nodemap_name> "
"--property <property_name> --value <value>\n");
fprintf(stderr, "valid properties: admin trusted map_mode "
- "squash_uid squash_gid deny_unknown\n");
+ "squash_uid squash_gid deny_unknown audit_mode\n");
return -1;
}
cmd = LCFG_NODEMAP_SQUASH_GID;
} else if (strcmp("map_mode", param) == 0) {
cmd = LCFG_NODEMAP_MAP_MODE;
+ } else if (strcmp("audit_mode", param) == 0) {
+ cmd = LCFG_NODEMAP_AUDIT_MODE;
} else {
fprintf(stderr, "error: %s: nodemap_modify invalid "
"subcommand: %s\n",
char *ptr;
int rc;
- strlcpy(fsname, arg, PATH_MAX + 1);
+ snprintf(fsname, PATH_MAX + 1, "%s", arg);
ptr = strchr(fsname, '.');
if (ptr == NULL) {
fprintf(stderr, ". is missing in %s\n", fsname);
strncpy(poolname, ptr, LOV_MAXPOOLNAME);
poolname[LOV_MAXPOOLNAME] = '\0';
+
+ if (strncmp(poolname, "none", LOV_MAXPOOLNAME) == 0) {
+ fprintf(stderr, "poolname cannot be 'none'\n");
+ return -EINVAL;
+ }
return 0;
err:
return rc;
}
+#ifdef HAVE_SERVER_SUPPORT
static const char *barrier_status2name(enum barrier_status status)
{
switch (status) {
data.ioc_inlbuf1 = (char *)&bc;
data.ioc_inllen1 = sizeof(bc);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "Fail to pack ioctl data: rc = %d.\n", rc);
return rc;
data.ioc_inlbuf1 = (char *)&bc;
data.ioc_inllen1 = sizeof(bc);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "Fail to pack ioctl data: rc = %d.\n", rc);
return rc;
data.ioc_inlbuf1 = (char *)bc;
data.ioc_inllen1 = sizeof(*bc);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "Fail to pack ioctl data: rc = %d.\n", rc);
return rc;
fprintf(stderr, "Fail to query barrier for %s: %s\n",
fsname, strerror(errno));
else
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
return rc;
}
data.ioc_inlbuf1 = (char *)&bc;
data.ioc_inllen1 = sizeof(bc);
memset(buf, 0, sizeof(rawbuf));
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc) {
fprintf(stderr, "Fail to pack ioctl data: rc = %d.\n", rc);
return rc;
fprintf(stderr, "Fail to rescan barrier bitmap for %s: %s\n",
argv[1], strerror(errno));
} else {
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
printf("%u of %u MDT(s) in the filesystem %s are inactive\n",
bc.bc_absence, bc.bc_total, argv[1]);
}
return rc;
}
+#endif /* HAVE_SERVER_SUPPORT */
int jt_get_obj_version(int argc, char **argv)
{
data.ioc_inllen2 = sizeof version;
memset(buf, 0, sizeof *buf);
- rc = obd_ioctl_pack(&data, &buf, sizeof rawbuf);
+ rc = llapi_ioctl_pack(&data, &buf, sizeof rawbuf);
if (rc) {
fprintf(stderr, "error: %s: packing ioctl arguments: %s\n",
jt_cmdname(argv[0]), strerror(-rc));
return -errno;
}
- obd_ioctl_unpack(&data, buf, sizeof rawbuf);
+ llapi_ioctl_unpack(&data, buf, sizeof rawbuf);
printf("%#jx\n", (uintmax_t)version);
return 0;
}
data.ioc_dev = cur_device;
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc < 0) {
fprintf(stderr, "error: %s: cannot pack ioctl: %s\n",
jt_cmdname(argv[0]), strerror(-rc));
return rc;
}
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
if (data.ioc_u32_1 == 0) {
fprintf(stderr, "received invalid userid!\n");
data.ioc_dev = cur_device;
data.ioc_u32_1 = id;
- rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf));
+ rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf));
if (rc < 0) {
fprintf(stderr, "error: %s: invalid ioctl\n",
jt_cmdname(argv[0]));
return rc;
}
- obd_ioctl_unpack(&data, buf, sizeof(rawbuf));
+ llapi_ioctl_unpack(&data, buf, sizeof(rawbuf));
printf("%s: Deregistered changelog user '%s%u'\n",
device, CHANGELOG_USER_PREFIX, data.ioc_u32_1);