From e954d93f264d8ae559cbd41ed6d7b977674dd42b Mon Sep 17 00:00:00 2001 From: frank zago Date: Sun, 14 Jan 2018 12:48:21 -0500 Subject: [PATCH] LU-5541 lustreapi: only export the API symbols By default, all kind of symbols are exported from the library (dump, libcfs_ukuc_start, l_ioctl, set_ioctl_dump, ...), which may create external conflicts. Use the linker version-script options to only export the API symbols, and prevent the export of internal symbols. Only the symbols declared in the global section of liblustreapi.map will be seen by applications. Test-Parameters: trivial Change-Id: I4fc2febd2528fc85f546426e08e3ab67e1305c40 Signed-off-by: frank zago Signed-off-by: Nathaniel Clark Reviewed-on: https://review.whamcloud.com/30865 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Andreas Dilger Reviewed-by: Bob Glossman Reviewed-by: Oleg Drokin --- lustre/include/lustre/lustreapi.h | 9 +++- lustre/utils/Makefile.am | 5 +- lustre/utils/lfs.c | 2 +- lustre/utils/liblustreapi.c | 12 ++--- lustre/utils/liblustreapi.map | 15 ++++++ lustre/utils/liblustreapi_util.c | 1 - lustre/utils/lshowmount.c | 8 ++-- lustre/utils/lustre_lfsck.c | 10 ++-- lustre/utils/lustreapi_internal.h | 4 +- lustre/utils/obd.c | 98 +++++++++++++++++++-------------------- 10 files changed, 93 insertions(+), 71 deletions(-) create mode 100644 lustre/utils/liblustreapi.map diff --git a/lustre/include/lustre/lustreapi.h b/lustre/include/lustre/lustreapi.h index f0069d4..a434d10 100644 --- a/lustre/include/lustre/lustreapi.h +++ b/lustre/include/lustre/lustreapi.h @@ -56,9 +56,12 @@ extern "C" { #define lustre_fid struct lu_fid +/* Currently external applications can access this but in the + * future this will no longer be exposed for the user. Instead + * if you want to know if the library is initialized just call + * llapi_liblustreapi_initialized() which is now available. */ extern bool liblustreapi_initialized; - typedef void (*llapi_cb_t)(char *obd_type_name, char *obd_name, char *obd_uuid, void *args); @@ -77,6 +80,10 @@ enum llapi_message_level { typedef void (*llapi_log_callback_t)(enum llapi_message_level level, int err, const char *fmt, va_list ap); +static inline bool llapi_liblustreapi_initialized(void) +{ + return liblustreapi_initialized; +} /* the bottom three bits reserved for llapi_message_level */ #define LLAPI_MSG_MASK 0x00000007 diff --git a/lustre/utils/Makefile.am b/lustre/utils/Makefile.am index 145d9b4..795d49b 100644 --- a/lustre/utils/Makefile.am +++ b/lustre/utils/Makefile.am @@ -95,7 +95,8 @@ liblustreapi_la_SOURCES = liblustreapi.c liblustreapi_hsm.c \ liblustreapi_kernelconn.c liblustreapi_param.c \ liblustreapi_mirror.c \ liblustreapi_ladvise.c liblustreapi_chlg.c -liblustreapi_la_LDFLAGS = $(LIBREADLINE) -version-info 1:0:0 +liblustreapi_la_LDFLAGS = $(LIBREADLINE) -version-info 1:0:0 \ + -Wl,--version-script=liblustreapi.map liblustreapi_la_LIBADD = $(top_builddir)/libcfs/libcfs/libcfs.la if UTILS @@ -202,7 +203,7 @@ wiretest_SOURCES = wiretest.c endif # UTILS -EXTRA_DIST = llstat llobdstat plot-llstat ldlm_debug_upcall +EXTRA_DIST = llstat llobdstat plot-llstat ldlm_debug_upcall liblustreapi.map # NOTE: this should only be run on i386. newwiretest: wirehdr.c wirecheck diff --git a/lustre/utils/lfs.c b/lustre/utils/lfs.c index 769d3ad..40ed514 100644 --- a/lustre/utils/lfs.c +++ b/lustre/utils/lfs.c @@ -6946,7 +6946,7 @@ int main(int argc, char **argv) int rc; /* Ensure that liblustreapi constructor has run */ - if (!liblustreapi_initialized) + if (!llapi_liblustreapi_initialized()) fprintf(stderr, "liblustreapi was not properly initialized\n"); setlinebuf(stdout); diff --git a/lustre/utils/liblustreapi.c b/lustre/utils/liblustreapi.c index a97ecb5..87dffba 100644 --- a/lustre/utils/liblustreapi.c +++ b/lustre/utils/liblustreapi.c @@ -280,7 +280,7 @@ int llapi_parse_size(const char *optarg, unsigned long long *size, return 0; } -int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, int max_len) +int llapi_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, int max_len) { struct obd_ioctl_data *overlay; char *ptr; @@ -327,7 +327,7 @@ int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, int max_len) return 0; } -int obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) +int llapi_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) { struct obd_ioctl_data *overlay; char *ptr; @@ -1049,7 +1049,7 @@ int llapi_dir_create_param(const char *name, mode_t mode, data.ioc_inlbuf2 = (char *)lmu; data.ioc_inllen2 = lmu_size; data.ioc_type = mode; - rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf)); + rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf)); if (rc) { llapi_error(LLAPI_MSG_ERROR, rc, "error: LL_IOC_LMV_SETSTRIPE pack failed '%s'.", @@ -3469,7 +3469,7 @@ int llapi_file_lookup(int dirfd, const char *name) data.ioc_inlbuf1 = (char *)name; data.ioc_inllen1 = strlen(name) + 1; - rc = obd_ioctl_pack(&data, &buf, sizeof(rawbuf)); + rc = llapi_ioctl_pack(&data, &buf, sizeof(rawbuf)); if (rc) { llapi_error(LLAPI_MSG_ERROR, rc, "error: IOC_MDC_LOOKUP pack failed for '%s': rc %d", @@ -4262,7 +4262,7 @@ static int cb_migrate_mdt_init(char *path, DIR *parent, DIR **dirp, data.ioc_inllen1 = strlen(filename) + 1; data.ioc_inlbuf2 = (char *)¶m->fp_mdt_index; data.ioc_inllen2 = sizeof(param->fp_mdt_index); - ret = obd_ioctl_pack(&data, &rawbuf, sizeof(raw)); + ret = llapi_ioctl_pack(&data, &rawbuf, sizeof(raw)); if (ret != 0) { llapi_error(LLAPI_MSG_ERROR, ret, "llapi_obd_statfs: error packing ioctl data"); @@ -4556,7 +4556,7 @@ int llapi_obd_fstatfs(int fd, __u32 type, __u32 index, data.ioc_pbuf2 = (char *)uuid_buf; data.ioc_plen2 = sizeof(struct obd_uuid); - rc = obd_ioctl_pack(&data, &rawbuf, sizeof(raw)); + rc = llapi_ioctl_pack(&data, &rawbuf, sizeof(raw)); if (rc != 0) { llapi_error(LLAPI_MSG_ERROR, rc, "llapi_obd_statfs: error packing ioctl data"); diff --git a/lustre/utils/liblustreapi.map b/lustre/utils/liblustreapi.map new file mode 100644 index 0000000..ecbbc12 --- /dev/null +++ b/lustre/utils/liblustreapi.map @@ -0,0 +1,15 @@ +{ + global: + cfs_*; + llapi_*; + libcfs_*; + liblustreapi_initialized; + l_ioctl; + mdt_hash_name; + Parser_*; + register_ioc_*; + strlcat; + strlcpy; + local: + *; +}; diff --git a/lustre/utils/liblustreapi_util.c b/lustre/utils/liblustreapi_util.c index cc89989..fbc7542 100644 --- a/lustre/utils/liblustreapi_util.c +++ b/lustre/utils/liblustreapi_util.c @@ -53,7 +53,6 @@ */ bool liblustreapi_initialized; - /** * Initialize the library once at startup. * diff --git a/lustre/utils/lshowmount.c b/lustre/utils/lshowmount.c index 5667ea0..cddc2f9 100644 --- a/lustre/utils/lshowmount.c +++ b/lustre/utils/lshowmount.c @@ -51,7 +51,8 @@ #include #include "nidlist.h" -#include "lustreapi_internal.h" +#include +#include #define PROC_UUID_TMPL "%s/%s/uuid" @@ -155,10 +156,9 @@ static int lshowmount(int lookup, int enumerate, int verbose) glob_t exp_list; int i; - i = get_lustre_param_path("{mgs,mdt,obdfilter}", "*", - FILTER_BY_EXACT, "exports", &exp_list); + i = cfs_get_param_paths(&exp_list, "{mgs,mdt,obdfilter}/*/exports"); if (i < 0) - return i; + return -errno; if (!verbose) nidlist = nl_create(); for (i = 0; i < exp_list.gl_pathc; i++) { diff --git a/lustre/utils/lustre_lfsck.c b/lustre/utils/lustre_lfsck.c index 0129d26..972d268 100644 --- a/lustre/utils/lustre_lfsck.c +++ b/lustre/utils/lustre_lfsck.c @@ -436,7 +436,7 @@ bad_type: data.ioc_inlbuf1 = (char *)&start; data.ioc_inllen1 = sizeof(start); 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, "Fail to pack ioctl data: rc = %d.\n", rc); return rc; @@ -448,7 +448,7 @@ bad_type: return rc; } - obd_ioctl_unpack(&data, buf, sizeof(rawbuf)); + llapi_ioctl_unpack(&data, buf, sizeof(rawbuf)); printf("Started LFSCK on the device %s: scrub", device); for (i = 0; lfsck_types_names[i].ltn_name != NULL; i++) { if (start.ls_active & lfsck_types_names[i].ltn_type) { @@ -509,7 +509,7 @@ int jt_lfsck_stop(int argc, char **argv) data.ioc_inlbuf1 = (char *)&stop; data.ioc_inllen1 = sizeof(stop); 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, "Fail to pack ioctl data: rc = %d.\n", rc); return rc; @@ -586,7 +586,7 @@ bad_type: data.ioc_inlbuf1 = (char *)&query; data.ioc_inllen1 = sizeof(query); 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, "Fail to pack ioctl data: rc = %d.\n", rc); return rc; @@ -598,7 +598,7 @@ bad_type: return rc; } - obd_ioctl_unpack(&data, buf, sizeof(rawbuf)); + llapi_ioctl_unpack(&data, buf, sizeof(rawbuf)); for (i = 0, type = 1 << i; i < LFSCK_TYPE_BITS; i++, type = 1 << i) { const char *name; int j; diff --git a/lustre/utils/lustreapi_internal.h b/lustre/utils/lustreapi_internal.h index 8497ca9..92e4994 100644 --- a/lustre/utils/lustreapi_internal.h +++ b/lustre/utils/lustreapi_internal.h @@ -59,8 +59,8 @@ int get_root_path(int want, char *fsname, int *outfd, char *path, int index); int root_ioctl(const char *mdtname, int opc, void *data, int *mdtidxp, int want_error); -int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, int max_len); -int obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len); +int llapi_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, int max_len); +int llapi_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len); int sattr_cache_get_defaults(const char *const fsname, const char *const pathname, unsigned int *scount, unsigned int *ssize, unsigned int *soffset); diff --git a/lustre/utils/obd.c b/lustre/utils/obd.c index 5c1fd8f..d5378a9 100644 --- a/lustre/utils/obd.c +++ b/lustre/utils/obd.c @@ -134,7 +134,7 @@ int lcfg_ioctl(char * func, int dev_id, struct lustre_cfg *lcfg) 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)); @@ -184,7 +184,7 @@ int lcfg_mgs_ioctl(char *func, int dev_id, struct lustre_cfg *lcfg) 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)); @@ -235,7 +235,7 @@ static int do_name2dev(char *func, char *name) 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)); @@ -244,7 +244,7 @@ static int do_name2dev(char *func, char *name) 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)); @@ -858,7 +858,7 @@ int jt_obd_no_transno(int argc, char **argv) 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])); @@ -885,7 +885,7 @@ int jt_obd_set_readonly(int argc, char **argv) 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])); @@ -912,7 +912,7 @@ int jt_obd_abort_recovery(int argc, char **argv) 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])); @@ -1097,7 +1097,7 @@ int jt_obd_alloc_fids(struct jt_fid_space *space, struct lu_fid *fid, 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; @@ -1378,7 +1378,7 @@ int jt_obd_md_common(int argc, char **argv, int cmd) 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); @@ -1514,14 +1514,14 @@ int jt_obd_create(int argc, char **argv) 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", @@ -1584,7 +1584,7 @@ int jt_obd_setattr(int argc, char **argv) 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])); @@ -1661,7 +1661,7 @@ int jt_obd_test_setattr(int argc, char **argv) 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])); @@ -1754,14 +1754,14 @@ int jt_obd_destroy(int argc, char **argv) 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", @@ -1813,14 +1813,14 @@ int jt_obd_getattr(int argc, char **argv) (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)); @@ -1895,7 +1895,7 @@ int jt_obd_test_getattr(int argc, char **argv) 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])); @@ -2126,7 +2126,7 @@ int jt_obd_test_brw(int argc, char **argv) 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])); @@ -2248,7 +2248,7 @@ repeat: 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; @@ -2267,7 +2267,7 @@ repeat: __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; @@ -2314,7 +2314,7 @@ static int do_activate(int argc, char **argv, int flag) 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])); @@ -2362,7 +2362,7 @@ 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])); @@ -2405,7 +2405,7 @@ int jt_obd_recover(int argc, char **argv) } 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])); @@ -2442,7 +2442,7 @@ int jt_obd_mdc_lookup(int argc, char **argv) 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])); @@ -2464,7 +2464,7 @@ int jt_obd_mdc_lookup(int argc, char **argv) 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])); @@ -2495,7 +2495,7 @@ int jt_lcfg_fork(int argc, char **argv) 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])); @@ -2530,7 +2530,7 @@ int jt_lcfg_erase(int argc, char **argv) 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])); @@ -2558,7 +2558,7 @@ int jt_llog_catlist(int argc, char **argv) data.ioc_dev = cur_device; data.ioc_inllen1 = sizeof(rawbuf) - cfs_size_round(sizeof(data)); 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])); @@ -2590,7 +2590,7 @@ int jt_llog_info(int argc, char **argv) data.ioc_inllen2 = sizeof(rawbuf) - cfs_size_round(sizeof(data)) - cfs_size_round(data.ioc_inllen1); 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])); @@ -2637,7 +2637,7 @@ int jt_llog_print(int argc, char **argv) cfs_size_round(data.ioc_inllen2) - cfs_size_round(data.ioc_inllen3); 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])); @@ -2747,7 +2747,7 @@ int jt_llog_cancel(int argc, char **argv) } 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])); @@ -2795,7 +2795,7 @@ int jt_llog_check(int argc, char **argv) cfs_size_round(data.ioc_inllen2) - cfs_size_round(data.ioc_inllen3); 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])); @@ -2829,7 +2829,7 @@ int jt_llog_remove(int argc, char **argv) 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])); @@ -3137,7 +3137,7 @@ static int pool_cmd(enum lcfg_command_type cmd, 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)); @@ -3220,7 +3220,7 @@ static int nodemap_cmd(enum lcfg_command_type cmd, void *ret_data, 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); @@ -3235,7 +3235,7 @@ static int nodemap_cmd(enum lcfg_command_type cmd, void *ret_data, } 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; @@ -4133,7 +4133,7 @@ int jt_barrier_freeze(int argc, char **argv) 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; @@ -4176,7 +4176,7 @@ int jt_barrier_thaw(int argc, char **argv) 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; @@ -4208,7 +4208,7 @@ int __jt_barrier_stat(const char *fsname, struct barrier_ctl *bc) 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; @@ -4219,7 +4219,7 @@ int __jt_barrier_stat(const char *fsname, struct barrier_ctl *bc) 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; } @@ -4327,7 +4327,7 @@ int jt_barrier_rescan(int argc, char **argv) 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; @@ -4338,7 +4338,7 @@ int jt_barrier_rescan(int argc, char **argv) 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]); } @@ -4395,7 +4395,7 @@ 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)); @@ -4409,7 +4409,7 @@ int jt_get_obj_version(int argc, char **argv) return -errno; } - obd_ioctl_unpack(&data, buf, sizeof rawbuf); + llapi_ioctl_unpack(&data, buf, sizeof rawbuf); printf("%#jx\n", (uintmax_t)version); return 0; } @@ -4443,7 +4443,7 @@ int jt_changelog_register(int argc, char **argv) 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)); @@ -4458,7 +4458,7 @@ int jt_changelog_register(int argc, char **argv) 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"); @@ -4497,7 +4497,7 @@ int jt_changelog_deregister(int argc, char **argv) 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])); @@ -4511,7 +4511,7 @@ int jt_changelog_deregister(int argc, char **argv) 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); -- 1.8.3.1