From: Sonia Sharma Date: Fri, 29 Mar 2019 08:19:35 +0000 (-0400) Subject: LU-9121 lnet: ioctl handler for "delete policy" X-Git-Tag: 2.14.51~177^2^2~7 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=8258e7235c7047b927b02acaf67ad5b69a62e025;p=fs%2Flustre-release.git LU-9121 lnet: ioctl handler for "delete policy" The ioctl handler for "delete policy" deletes a policy with the given index value. It returns 0 if a policy with that index is found else it returns -EINVAL. Change-Id: I037c6808e71e5c13ccf46c243145b0ce6f1229cb Test-Parameters: trivial testlist=lnet-selftest,sanity-lnet Signed-off-by: Sonia Sharma Signed-off-by: Amir Shehata Reviewed-on: https://review.whamcloud.com/34552 Reviewed-by: Serguei Smirnov Tested-by: jenkins Tested-by: Maloo Reviewed-by: Chris Horn --- diff --git a/lnet/include/uapi/linux/lnet/libcfs_ioctl.h b/lnet/include/uapi/linux/lnet/libcfs_ioctl.h index 2ac0c31..d7bcd8d 100644 --- a/lnet/include/uapi/linux/lnet/libcfs_ioctl.h +++ b/lnet/include/uapi/linux/lnet/libcfs_ioctl.h @@ -150,7 +150,8 @@ struct libcfs_ioctl_data { #define IOC_LIBCFS_GET_LOCAL_HSTATS _IOWR(IOC_LIBCFS_TYPE, 103, IOCTL_CONFIG_SIZE) #define IOC_LIBCFS_GET_RECOVERY_QUEUE _IOWR(IOC_LIBCFS_TYPE, 104, IOCTL_CONFIG_SIZE) #define IOC_LIBCFS_ADD_UDSP _IOWR(IOC_LIBCFS_TYPE, 105, IOCTL_CONFIG_SIZE) -#define IOC_LIBCFS_MAX_NR 105 +#define IOC_LIBCFS_DEL_UDSP _IOWR(IOC_LIBCFS_TYPE, 106, IOCTL_CONFIG_SIZE) +#define IOC_LIBCFS_MAX_NR 106 extern int libcfs_ioctl_data_adjust(struct libcfs_ioctl_data *data); diff --git a/lnet/lnet/api-ni.c b/lnet/lnet/api-ni.c index 2e9ba1b..257f15e 100644 --- a/lnet/lnet/api-ni.c +++ b/lnet/lnet/api-ni.c @@ -4207,6 +4207,26 @@ LNetCtl(unsigned int cmd, void *arg) return rc; } + case IOC_LIBCFS_DEL_UDSP: { + struct lnet_ioctl_udsp *ioc_udsp = arg; + int idx = ioc_udsp->iou_idx; + + if (ioc_udsp->iou_hdr.ioc_len < sizeof(*ioc_udsp)) + return -EINVAL; + + mutex_lock(&the_lnet.ln_api_mutex); + rc = lnet_udsp_del_policy(idx); + if (!rc) { + rc = lnet_udsp_apply_policies(NULL, false); + CDEBUG(D_NET, "policy re-application returned %d\n", + rc); + rc = 0; + } + mutex_unlock(&the_lnet.ln_api_mutex); + + return rc; + } + default: ni = lnet_net2ni_addref(data->ioc_net); if (ni == NULL)