Date: Thu, 1 Jun 2006 18:22:31 -0500 From: staylor@mrynet.com (User Staylor) To: freebsd-geom@freebsd.org Subject: GEOM and changing floppy sector sizes Message-ID: <200606012322.k51NMVKh072282@mrynet.com>
next in thread | raw e-mail | index | archive | help
I have a situation with FreeBSD 7-current and the geom structure used for the fdc floppy controller. To access floppy media that has sectors with differing sector sizes, I issue an FD_STYPE ioctl call to change the sector size. This appears to work fine when incresing the sector size (say from 128 to 256). However, if the already-opened file-descriptor attempts to change the sector size down to 128 when 256-byte sectors have already been read on the FD, an "Invalid argument" (EINVAL) is returned. Is this indicating a limitation in the GEOM kernel code, or is it a bug? I have confirmed that the read() request never makes it to the fdc driver code in the kernel, so the GEOM or other code is returning the error. And I can successfully perform reads to the opened device descriptor using the last-used (in this case 256) sector size by doubling read byte-count request (to 256), and then I can only perform seeks to every other sector's byte position. Any suggestions on how to further isolate the limitation, or any more info I can provide? I thought perhaps the GEOM mechanism used by fdc(4) was limiting sector changes on established media as I want to accomplish. Thanks in advance, -scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606012322.k51NMVKh072282>