nvme_set_features_timestamp2;
                nvme_set_features_host_behavior2;
                nvme_set_features_host_id2;
+               nvme_set_features_iocs_profile2;
 };
 
 LIBNVME_1_8 {
 
 }
 
 int nvme_set_features_iocs_profile(int fd, __u16 iocsi, bool save)
+{
+       __u32 value = NVME_SET(iocsi, FEAT_IOCSP_IOCSCI);
+       __u32 result = 0;
+       int err;
+
+       err = __nvme_set_features(fd, NVME_FEAT_FID_IOCS_PROFILE, value,
+                                 save, &result);
+       if (err && result)
+               err = result;
+       return err;
+}
+
+int nvme_set_features_iocs_profile2(int fd, __u16 iocsi, bool save,
+                                   __u32 *result)
 {
        __u32 value = NVME_SET(iocsi, FEAT_IOCSP_IOCSCI);
 
        return __nvme_set_features(fd, NVME_FEAT_FID_IOCS_PROFILE, value,
-                                  save, NULL);
+                                  save, result);
 }
 
 int nvme_get_features(struct nvme_get_features_args *args)
 
  */
 int nvme_set_features_iocs_profile(int fd, __u16 iocsi, bool save);
 
+/**
+ * nvme_set_features_iocs_profile2() - Set I/O command set profile feature
+ * @fd:                File descriptor of nvme device
+ * @iocsi:     I/O Command Set Combination Index
+ * @save:      Save value across power states
+ * @result:    The command completion result from CQE dword0
+ *
+ * Return: 0 if the ioctl was successful, -1 with errno set to EPROTO when
+ * a non-zero state is returned in @result, or -1 with errno set otherwise.
+ */
+int nvme_set_features_iocs_profile2(int fd, __u16 iocsi, bool save,
+                                   __u32 *result);
+
 /**
  * nvme_get_features() - Retrieve a feature attribute
  * @args:      &struct nvme_get_features_args argument structure