Skip site navigation (1)Skip section navigation (2)
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>