Date: Thu, 04 Mar 2010 10:17:58 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: c.jayachandran@gmail.com Cc: sobomax@FreeBSD.org, freebsd-current@FreeBSD.org Subject: Re: newfs failure on -current Message-ID: <20100304.101758.70320533242206105.imp@bsdimp.com> In-Reply-To: <98a59be81003040504x6e97fbaeqeb10f8ea7bedb7b9@mail.gmail.com> References: <98a59be81003040504x6e97fbaeqeb10f8ea7bedb7b9@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <98a59be81003040504x6e97fbaeqeb10f8ea7bedb7b9@mail.gmail.com> "C. Jayachandran" <c.jayachandran@gmail.com> writes: : I'm testing this on the mips platform, but I think there is an issue : with change that made sectorsize int64_t, because the ioctl : DIOCGSECTORSIZE used to read sector size seems to take u_int. This : quick change fixes it for me (sample patch - may be whitespace : damaged). : : Index: sbin/newfs/newfs.c : =================================================================== : --- sbin/newfs/newfs.c (revision 204687) : +++ sbin/newfs/newfs.c (working copy) : @@ -327,9 +327,11 @@ : mediasize = st.st_size; : /* set fssize from the partition */ : } else { : + u_int tsize; : if (sectorsize == 0) : - if (ioctl(disk.d_fd, DIOCGSECTORSIZE, §orsize) == -1) : + if (ioctl(disk.d_fd, DIOCGSECTORSIZE, &tsize) == -1) : sectorsize = 0; /* back out on error for safety */ : + sectorsize = tsize; : if (sectorsize && ioctl(disk.d_fd, DIOCGMEDIASIZE, : &mediasize) != -1) : getfssize(&fssize, special, mediasize / sectorsize, reserved); : } : Maybe the right change is to back out the DIOCGSECTORSIZE change due to silent breakage like this? Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100304.101758.70320533242206105.imp>