Synopsis: bsdlabel(8) fails to display an error message if the label could not be written
State-Changed-From-To: open->feedback State-Changed-By: jh State-Changed-When: Thu Jul 1 15:55:12 UTC 2010 State-Changed-Why: Is this still a problem for you? On 8.0: /dev/md1 on /mnt (ufs, local) # bsdlabel -w /dev/md1 bsdlabel: Class not found But this is because GEOM_BSD has been changed to GEOM_PART_BSD. The error message is not very informative. On 7.3 (uses GEOM_BSD): # bsdlabel -w /dev/md1 bsdlabel: Geom not found: "md0" Not very informative either. This change makes the error message more understandable for me: %%% Index: sbin/bsdlabel/bsdlabel.c =================================================================== --- sbin/bsdlabel/bsdlabel.c (revision 209622) +++ sbin/bsdlabel/bsdlabel.c (working copy) @@ -382,7 +382,7 @@ static int writelabel(void) { uint64_t *p, sum; - int i, fd; + int i, fd, serrno; struct gctl_req *grq; char const *errstr; struct disklabel *lp = &lab; @@ -413,6 +413,7 @@ writelabel(void) fd = open(specname, O_RDWR); if (fd < 0) { + serrno = errno; if (is_file) { warn("cannot open file %s for writing label", specname); return(1); @@ -426,7 +427,7 @@ writelabel(void) bootarea + labeloffset + labelsoffset * secsize); errstr = gctl_issue(grq); if (errstr != NULL) { - warnx("%s", errstr); + warnc(serrno, "%s", specname); gctl_free(grq); return(1); } %%% With the patch applied: # bsdlabel -w /dev/md1 bsdlabel: /dev/md1: Operation not permitted Responsible-Changed-From-To: freebsd-bugs->jh Responsible-Changed-By: jh Responsible-Changed-When: Thu Jul 1 15:55:12 UTC 2010 Responsible-Changed-Why: Track. http://www.freebsd.org/cgi/query-pr.cgi?pr=58390 _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"