svn commit: r185990 - head/sbin/newfs
Paul Saab
ps at mu.org
Fri Dec 12 16:14:53 UTC 2008
This still will not work. zfs can have arbitrary names.
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