svn commit: r185990 - head/sbin/newfs
Luigi Rizzo
rizzo at iet.unipi.it
Fri Dec 12 16:32:06 UTC 2008
On Fri, Dec 12, 2008 at 08:14:52AM -0800, Paul Saab wrote:
> This still will not work. zfs can have arbitrary names.
So let me understand: this part of the code now is exactly as it was
two weeks ago, before i touched it. So, are you (and Peter) addressing
a pre-existing bug, or could you explain me what is broken now ?
Also, are you actually seeing the bug when you run the program,
or you just think there might be one ?
cheers
luigi
> On Fri, Dec 12, 2008 at 7:56 AM, Luigi Rizzo <luigi at freebsd.org> wrote:
>
> > Author: luigi
> > Date: Fri Dec 12 15:56:38 2008
> > New Revision: 185990
> > URL: http://svn.freebsd.org/changeset/base/185990
> >
> > Log:
> > Move the check for the ending char in the partition name where
> > it was before -- the check is only made when getdisklabel()
> > returns valid info.
> > On passing, use MAXPARTITIONS to identify the max partition number,
> > instead of the hardwired 'h'
> >
> > MFC after: 4 weeks
> >
> > Modified:
> > head/sbin/newfs/newfs.c
> >
> > Modified: head/sbin/newfs/newfs.c
> >
> > ==============================================================================
> > --- head/sbin/newfs/newfs.c Fri Dec 12 14:57:25 2008 (r185989)
> > +++ head/sbin/newfs/newfs.c Fri Dec 12 15:56:38 2008 (r185990)
> > @@ -354,11 +354,6 @@ main(int argc, char *argv[])
> > mediasize = st.st_size;
> > /* set fssize from the partition */
> > } else {
> > - part_name = special[strlen(special) - 1];
> > - if ((part_name < 'a' || part_name > 'h') &&
> > !isdigit(part_name))
> > - errx(1, "%s: can't figure out file system partition",
> > - special);
> > -
> > if (sectorsize == 0)
> > if (ioctl(disk.d_fd, DIOCGSECTORSIZE, §orsize) == -1)
> > sectorsize = 0; /* back out on error for safety */
> > @@ -368,6 +363,12 @@ main(int argc, char *argv[])
> > pp = NULL;
> > lp = getdisklabel(special);
> > if (lp != NULL) {
> > + if (!is_file) /* already set for files */
> > + part_name = special[strlen(special) - 1];
> > + if ((part_name < 'a' || part_name - 'a' >= MAXPARTITIONS)
> > &&
> > + !isdigit(part_name))
> > + errx(1, "%s: can't figure out file system
> > partition",
> > + special);
> > cp = &part_name;
> > if (isdigit(*cp))
> > pp = &lp->d_partitions[RAW_PART];
> >
More information about the svn-src-head
mailing list