summaryrefslogtreecommitdiff
path: root/sys/src/cmd/disk
diff options
context:
space:
mode:
authorment <thement@ibawizard.net>2011-05-09 00:02:02 +0200
committerment <thement@ibawizard.net>2011-05-09 00:02:02 +0200
commitdca7c99602b6aaf5bd8fdab80d0b4958054970e5 (patch)
tree313e95393df1008a3a074c9ce8b1cb0357c1b135 /sys/src/cmd/disk
parent52c77e17cacef05e111c777404566a822254a92c (diff)
disk/partfs: minor bugfixes
Diffstat (limited to 'sys/src/cmd/disk')
-rw-r--r--sys/src/cmd/disk/partfs.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/src/cmd/disk/partfs.c b/sys/src/cmd/disk/partfs.c
index a14e2c91a..883f16d84 100644
--- a/sys/src/cmd/disk/partfs.c
+++ b/sys/src/cmd/disk/partfs.c
@@ -49,7 +49,7 @@ ctlstring(void)
for (p = tab; p < tab + nelem(tab); p++)
if (p->inuse)
fmtprint(&fmt, "part %s %lld %lld\n",
- p->name, p->offset, p->length);
+ p->name, p->offset, p->offset + p->length);
return fmtstrflush(&fmt);
}
@@ -67,11 +67,14 @@ addpart(char *name, vlong start, vlong end)
werrstr("partition name already in use");
return -1;
}
- for (p = tab; p < tab + nelem(tab) && p->inuse; p++)
- if (strcmp(p->name, name) == 0) {
+ for (p = tab; p < tab + nelem(tab); p++)
+ if (p->inuse && strcmp(p->name, name) == 0) {
werrstr("partition name already in use");
return -1;
}
+ for (p = tab; p < tab + nelem(tab); p++)
+ if (!p->inuse)
+ break;
if(p == tab + nelem(tab)){
werrstr("no free partition slots");
return -1;