#include "nvme-ioctl.h"
-int nvme_subsystem_reset(int fd)
+void nvme_verify_chr(int fd)
{
static struct stat nvme_stat;
int err = fstat(fd, &nvme_stat);
- if (err < 0)
- return err;
+ if (err < 0) {
+ perror("fstat");
+ exit(err);
+ }
if (!S_ISCHR(nvme_stat.st_mode)) {
fprintf(stderr,
- "Error: requesting subsystem reset on non-controller handle\n");
+ "Error: requesting reset on non-controller handle\n");
exit(ENOTBLK);
}
+}
+
+int nvme_subsystem_reset(int fd)
+{
+ nvme_verify_chr(fd);
return ioctl(fd, NVME_IOCTL_SUBSYS_RESET);
}
int nvme_reset_controller(int fd)
{
- static struct stat nvme_stat;
- int err = fstat(fd, &nvme_stat);
-
- if (err < 0)
- return err;
- if (!S_ISCHR(nvme_stat.st_mode)) {
- fprintf(stderr,
- "Error: requesting reset on non-controller handle\n");
- exit(ENOTBLK);
- }
+ nvme_verify_chr(fd);
return ioctl(fd, NVME_IOCTL_RESET);
}