diff options
author | ment <thement@ibawizard.net> | 2011-05-09 00:02:02 +0200 |
---|---|---|
committer | ment <thement@ibawizard.net> | 2011-05-09 00:02:02 +0200 |
commit | dca7c99602b6aaf5bd8fdab80d0b4958054970e5 (patch) | |
tree | 313e95393df1008a3a074c9ce8b1cb0357c1b135 /sys/src/cmd/disk | |
parent | 52c77e17cacef05e111c777404566a822254a92c (diff) |
disk/partfs: minor bugfixes
Diffstat (limited to 'sys/src/cmd/disk')
-rw-r--r-- | sys/src/cmd/disk/partfs.c | 9 |
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; |