{
char slen[16];
unsigned len;
+
if (strncmp("nvme", block, 4)) {
- fprintf(stderr,"Device %s is not a nvme device.", block);
+ fprintf(stderr, "Device %s is not a nvme device.", block);
exit(-1);
}
- sscanf(block,"nvme%d", &len);
- sprintf(slen,"%d", len);
- block[4+strlen(slen)] = 0;
+
+ sscanf(block, "nvme%d", &len);
+ sprintf(slen, "%d", len);
+ block[4 + strlen(slen)] = 0;
+
return block;
}
{
char path[256];
struct stat bd;
+ int ctrl, ns, part;
if (d->d_name[0] == '.')
return 0;
snprintf(path, sizeof(path), "%s%s", dev, d->d_name);
if (stat(path, &bd))
return 0;
- if (S_ISBLK(bd.st_mode))
- return 1;
+ if (!S_ISBLK(bd.st_mode))
+ return 0;
+ if (sscanf(d->d_name, "nvme%dn%dp%d", &ctrl, &ns, &part) == 3)
+ return 0;
+ return 1;
}
return 0;
}