X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_ioctl.h;h=fa6335959d8cfd8a2a03a42d1663a7308bf53f3a;hb=a00a07567d4909251e58900a9e5ea27157960fd4;hp=5263e2d46ee8e24538c12faec98d5dd248621fda;hpb=1eb8805a01f495707f6bf16141e4e7a437be6eca;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_ioctl.h b/lustre/include/lustre_ioctl.h index 5263e2d..fa63359 100644 --- a/lustre/include/lustre_ioctl.h +++ b/lustre/include/lustre_ioctl.h @@ -23,11 +23,12 @@ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2011, 2013, 2014, Intel Corporation. + * Copyright (c) 2014, 2016, Intel Corporation. */ #ifndef LUSTRE_IOCTL_H_ #define LUSTRE_IOCTL_H_ +#include #include #include @@ -38,6 +39,7 @@ #else /* __KERNEL__ */ # include # include +#include #endif /* !__KERNEL__ */ #if !defined(__KERNEL__) && !defined(LUSTRE_UTILS) @@ -55,6 +57,12 @@ enum md_echo_cmd { ECHO_MD_ALLOC_FID = 8, /* Get FIDs from MDT */ }; +#define OBD_DEV_ID 1 +#define OBD_DEV_NAME "obd" +#define OBD_DEV_PATH "/dev/" OBD_DEV_NAME +#define OBD_DEV_MAJOR 10 +#define OBD_DEV_MINOR 241 + #define OBD_IOCTL_VERSION 0x00010004 #define OBD_DEV_BY_DEVNAME 0xffffd0de #define OBD_MAX_IOCTL_BUFFER CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER @@ -79,8 +87,8 @@ struct obd_ioctl_data { struct obdo ioc_obdo1; struct obdo ioc_obdo2; - obd_size ioc_count; - obd_off ioc_offset; + __u64 ioc_count; + __u64 ioc_offset; __u32 ioc_dev; __u32 ioc_command; @@ -202,8 +210,8 @@ static inline int obd_ioctl_is_invalid(struct obd_ioctl_data *data) #ifdef __KERNEL__ -int obd_ioctl_getdata(char **buf, int *len, void *arg); -int obd_ioctl_popdata(void *arg, void *data, int len); +int obd_ioctl_getdata(char **buf, int *len, void __user *arg); +int obd_ioctl_popdata(void __user *arg, void *data, int len); static inline void obd_ioctl_freedata(char *buf, size_t len) { @@ -240,17 +248,25 @@ static inline int obd_ioctl_pack(struct obd_ioctl_data *data, char **pbuf, memcpy(*pbuf, data, sizeof(*data)); ptr = overlay->ioc_bulk; - if (data->ioc_inlbuf1 != NULL) - LOGL(data->ioc_inlbuf1, data->ioc_inllen1, ptr); + if (data->ioc_inlbuf1) { + memcpy(ptr, data->ioc_inlbuf1, data->ioc_inllen1); + ptr += cfs_size_round(data->ioc_inllen1); + } - if (data->ioc_inlbuf2 != NULL) - LOGL(data->ioc_inlbuf2, data->ioc_inllen2, ptr); + if (data->ioc_inlbuf2) { + memcpy(ptr, data->ioc_inlbuf2, data->ioc_inllen2); + ptr += cfs_size_round(data->ioc_inllen2); + } - if (data->ioc_inlbuf3 != NULL) - LOGL(data->ioc_inlbuf3, data->ioc_inllen3, ptr); + if (data->ioc_inlbuf3) { + memcpy(ptr, data->ioc_inlbuf3, data->ioc_inllen3); + ptr += cfs_size_round(data->ioc_inllen3); + } - if (data->ioc_inlbuf4 != NULL) - LOGL(data->ioc_inlbuf4, data->ioc_inllen4, ptr); + if (data->ioc_inlbuf4) { + memcpy(ptr, data->ioc_inlbuf4, data->ioc_inllen4); + ptr += cfs_size_round(data->ioc_inllen4); + } if (obd_ioctl_is_invalid(overlay)) { fprintf(stderr, "invalid ioctl data: ioc_len = %u, " @@ -282,17 +298,25 @@ obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) memcpy(data, pbuf, sizeof(*data)); ptr = overlay->ioc_bulk; - if (data->ioc_inlbuf1 != NULL) - LOGU(data->ioc_inlbuf1, data->ioc_inllen1, ptr); + if (data->ioc_inlbuf1) { + memcpy(data->ioc_inlbuf1, ptr, data->ioc_inllen1); + ptr += cfs_size_round(data->ioc_inllen1); + } - if (data->ioc_inlbuf2 != NULL) - LOGU(data->ioc_inlbuf2, data->ioc_inllen2, ptr); + if (data->ioc_inlbuf2) { + memcpy(data->ioc_inlbuf2, ptr, data->ioc_inllen2); + ptr += cfs_size_round(data->ioc_inllen2); + } - if (data->ioc_inlbuf3 != NULL) - LOGU(data->ioc_inlbuf3, data->ioc_inllen3, ptr); + if (data->ioc_inlbuf3) { + memcpy(data->ioc_inlbuf3, ptr, data->ioc_inllen3); + ptr += cfs_size_round(data->ioc_inllen3); + } - if (data->ioc_inlbuf4 != NULL) - LOGU(data->ioc_inlbuf4, data->ioc_inllen4, ptr); + if (data->ioc_inlbuf4) { + memcpy(data->ioc_inlbuf4, ptr, data->ioc_inllen4); + ptr += cfs_size_round(data->ioc_inllen4); + } return 0; } @@ -349,7 +373,7 @@ obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) #define OBD_GET_VERSION _IOWR('f', 144, OBD_IOC_DATA_TYPE) /* OBD_IOC_GSS_SUPPORT _IOWR('f', 145, OBD_IOC_DATA_TYPE) */ /* OBD_IOC_CLOSE_UUID _IOWR('f', 147, OBD_IOC_DATA_TYPE) */ -#define OBD_IOC_CHANGELOG_SEND _IOW ('f', 148, OBD_IOC_DATA_TYPE) +/* OBD_IOC_CHANGELOG_SEND _IOW ('f', 148, OBD_IOC_DATA_TYPE) */ #define OBD_IOC_GETDEVICE _IOWR('f', 149, OBD_IOC_DATA_TYPE) #define OBD_IOC_FID2PATH _IOWR('f', 150, OBD_IOC_DATA_TYPE) /* lustre/lustre_user.h 151-153 */ @@ -357,8 +381,8 @@ obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) /* OBD_IOC_LOV_GETSTRIPE 155 LL_IOC_LOV_GETSTRIPE */ /* OBD_IOC_LOV_SETEA 156 LL_IOC_LOV_SETEA */ /* lustre/lustre_user.h 157-159 */ -#define OBD_IOC_QUOTACHECK _IOW ('f', 160, int) -#define OBD_IOC_POLL_QUOTACHECK _IOR ('f', 161, struct if_quotacheck *) +/* OBD_IOC_QUOTACHECK _IOW ('f', 160, int) */ +/* OBD_IOC_POLL_QUOTACHECK _IOR ('f', 161, struct if_quotacheck *) */ #define OBD_IOC_QUOTACTL _IOWR('f', 162, struct if_quotactl) /* lustre/lustre_user.h 163-176 */ #define OBD_IOC_CHANGELOG_REG _IOW ('f', 177, struct obd_ioctl_data) @@ -369,7 +393,7 @@ obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) /* OBD_IOC_PARSE _IOWR('f', 182, OBD_IOC_DATA_TYPE) */ /* OBD_IOC_DORECORD _IOWR('f', 183, OBD_IOC_DATA_TYPE) */ #define OBD_IOC_PROCESS_CFG _IOWR('f', 184, OBD_IOC_DATA_TYPE) -#define OBD_IOC_DUMP_LOG _IOWR('f', 185, OBD_IOC_DATA_TYPE) +/* OBD_IOC_DUMP_LOG _IOWR('f', 185, OBD_IOC_DATA_TYPE) */ /* OBD_IOC_CLEAR_LOG _IOWR('f', 186, OBD_IOC_DATA_TYPE) */ #define OBD_IOC_PARAM _IOW ('f', 187, OBD_IOC_DATA_TYPE) #define OBD_IOC_POOL _IOWR('f', 188, OBD_IOC_DATA_TYPE) @@ -389,6 +413,8 @@ obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) /* ECHO_IOC_ENQUEUE _IOWR('f', 202, OBD_IOC_DATA_TYPE) */ /* ECHO_IOC_CANCEL _IOWR('f', 203, OBD_IOC_DATA_TYPE) */ +#define OBD_IOC_LCFG_FORK _IOWR('f', 208, OBD_IOC_DATA_TYPE) +#define OBD_IOC_LCFG_ERASE _IOWR('f', 209, OBD_IOC_DATA_TYPE) #define OBD_IOC_GET_OBJ_VERSION _IOR ('f', 210, OBD_IOC_DATA_TYPE) /* lustre/lustre_user.h 212-217 */ @@ -397,9 +423,12 @@ obd_ioctl_unpack(struct obd_ioctl_data *data, char *pbuf, int max_len) #define OBD_IOC_ECHO_ALLOC_SEQ _IOWR('f', 222, struct obd_ioctl_data) #define OBD_IOC_START_LFSCK _IOWR('f', 230, OBD_IOC_DATA_TYPE) #define OBD_IOC_STOP_LFSCK _IOW ('f', 231, OBD_IOC_DATA_TYPE) -/* lustre/lustre_user.h 240-246 */ +#define OBD_IOC_QUERY_LFSCK _IOR('f', 232, struct obd_ioctl_data) +/* lustre/lustre_user.h 240-249 */ /* LIBCFS_IOC_DEBUG_MASK 250 */ +#define OBD_IOC_BARRIER _IOWR('f', 261, OBD_IOC_DATA_TYPE) + #define IOC_OSC_SET_ACTIVE _IOWR('h', 21, void *) #endif /* LUSTRE_IOCTL_H_ */