addpts("sun", read_sun_pt);
}
-static char short_opts[] = "rladgvp:t:su";
+static char short_opts[] = "rladfgvp:t:su";
/* Used in gpt.c */
int force_gpt=0;
+int force_devmap=0;
+
static int
usage(void) {
- printf("usage : kpartx [-a|-d|-l] [-v] wholedisk\n");
+ printf("usage : kpartx [-a|-d|-l] [-f] [-v] wholedisk\n");
printf("\t-a add partition devmappings\n");
printf("\t-r devmappings will be readonly\n");
printf("\t-d del partition devmappings\n");
printf("\t-l list partitions devmappings that would be added by -a\n");
printf("\t-p set device name-partition number delimiter\n");
printf("\t-g force GUID partition table (GPT)\n");
+ printf("\t-f force devmap create\n");
printf("\t-v verbose\n");
printf("\t-s sync mode. Don't return until the partitions are created\n");
return 1;
while ((arg = getopt(argc, argv, short_opts)) != EOF) switch(arg) {
case 'r':
ro=1;
+ case 'f':
+ force_devmap=1;
break;
case 'g':
force_gpt=1;
if (!mapname)
mapname = device + off;
- else if (dm_no_partitions((unsigned int)MAJOR(buf.st_rdev),
+ else if (!force_devmap &&
+ dm_no_partitions((unsigned int)MAJOR(buf.st_rdev),
(unsigned int)MINOR(buf.st_rdev))) {
/* Feature 'no_partitions' is set, return */
return 0;