}
#endif
+static bool is_chardev(void)
+{
+ return S_ISCHR(nvme_stat.st_mode);
+}
+
+static bool is_blkdev(void)
+{
+ return S_ISBLK(nvme_stat.st_mode);
+}
+
static int open_dev(char *dev)
{
int err, fd;
close(fd);
goto perror;
}
- if (!S_ISCHR(nvme_stat.st_mode) && !S_ISBLK(nvme_stat.st_mode)) {
+ if (!is_chardev() && !is_blkdev()) {
fprintf(stderr, "%s is not a block or character device\n", dev);
close(fd);
return -ENODEV;
else {
printf("Success formatting namespace:%x\n", cfg.namespace_id);
if (cfg.lbaf != prev_lbaf){
- if (S_ISCHR(nvme_stat.st_mode)) {
+ if (is_chardev()) {
if(ioctl(fd, NVME_IOCTL_RESCAN) < 0){
fprintf(stderr, "failed to rescan namespaces\n");
err = -errno;
}
}
}
- if (cfg.reset && S_ISCHR(nvme_stat.st_mode))
+ if (cfg.reset && is_chardev())
nvme_reset_controller(fd);
}