On Mon, 08 Mar 2010 11:58:39 +0000 "Poul-Henning Kamp" <phk_at_phk.freebsd.dk> wrote: > In message <20100308125643.1ac0be0f_at_ernst.jennejohn.org>, Gary Jennejohn writes > : > >On Mon, 8 Mar 2010 14:17:17 +0530 > > >> I'm trying this one more time, since the issue is still unresolved. > >> > >> newfs(8) broke for big-endian systems since revision 204654. This change > >> made sectorsize variable int64_t, and now it cannot be passed to the ioctl > >> DIOCGSECTORSIZE. > > This patch is correct, DIOCGSECTORSIZE takes an unsigned argument, see > <sys/disk.h>: > > #define DIOCGSECTORSIZE _IOR('d', 128, u_int) > /*- > * Get the sectorsize of the device in bytes. The sectorsize is the > * smallest unit of data which can be transfered from this device. > * Usually this is a power of two but it may not be. (ie: CDROM audio) > */ > > > >I can't say whether this is correct, but the logic could definitely be > >simplified like this, since sectorsize is known to be 0 already: > > if (sectorsize == 0) > > if (ioctl(disk.d_fd, DIOCGSECTORSIZE, &tsecsize) >= 0) > > sectorsize = tsecsize; > > I'm not sure that is a valid assumption. > I disagree, but there's no reason to get into a bike-shed painting contest :) The original patch is OK the way it is. --- Gary JennejohnReceived on Mon Mar 08 2010 - 11:24:13 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:01 UTC