bin/90093: fdisk(8) incapable of altering in-core geometry

Scott Ullrich sullrich at gmail.com
Sun May 21 22:50:27 UTC 2006


The following reply was made to PR bin/90093; it has been noted by GNATS.

From: "Scott Ullrich" <sullrich at gmail.com>
To: bug-followup at FreeBSD.org, cpressey at catseye.mine.nu
Cc:  
Subject: Re: bin/90093: fdisk(8) incapable of altering in-core geometry
Date: Sun, 21 May 2006 18:43:17 -0400

 Hello, this patch seems to fix the problems outlined in this pr.  I am
 not sure if this is the "correct" fix but it does ineed work.  This
 patch was given to me by Olavi Kumpulainen <olavi at ipunplugged.com> and
 he asked me to follow up to the PR if it worked.  I've also sent this
 patch to 2 other parties with the same problems and they reported that
 this fixed their issues as well.
 
 --- fdisk.c=09Wed Oct  5 03:16:39 2005
 +++ fdisk-patched.c=09Tue May 16 14:36:51 2006
 @@ -750,6 +750,7 @@
  =09char fbuf[BUFSIZ];
  =09int i, fdw;
 
 +=09close(fd);=09/* Give the GEOM layer exclusive access to the disk */
  =09grq =3D gctl_get_handle();
  =09gctl_ro_param(grq, "verb", -1, "write MBR");
  =09gctl_ro_param(grq, "class", -1, "MBR");
 @@ -760,13 +761,15 @@
  =09=09q++;
  =09gctl_ro_param(grq, "geom", -1, q);
  =09gctl_ro_param(grq, "data", secsize, buf);
 -=09q =3D gctl_issue(grq);
 +=09q =3D gctl_issue(grq);
  =09if (q =3D=3D NULL) {
  =09=09gctl_free(grq);
 +=09=09open_disk(u_flag);
  =09=09return(0);
  =09}
  =09warnx("%s", q);
  =09gctl_free(grq);
 +=09open_disk(u_flag);
  =09
  =09error =3D pwrite(fd, buf, secsize, (sector * 512));
  =09if (error =3D=3D secsize)


More information about the freebsd-geom mailing list