Re: Resend: Another 4.4 to 4.5 floppy issue

From: Jiri Kosina
Date: Mon Jul 11 2016 - 11:36:51 EST


On Tue, 5 Jul 2016, Mark Hounschell wrote:

> From: Jiri Kosina <jkosina@xxxxxxx>
>
> Commit 09954bad4 ("floppy: refactor open() flags handling"), as a
> side-effect, causes open(/dev/fdX, O_ACCMODE) to fail. It turns out that
> this is being used setfdprm userspace for ioctl-only open().
>
> Reintroduce back the original behavior wrt !(FMODE_READ|FMODE_WRITE)
> modes, while still keeping the original O_NDELAY bug fixed.
>
> Cc: stable@xxxxxxxxxxxxxxx # v4.5+
> Reported-by: Wim Osterholt <wim@xxxxxxxxxxxxxx>
> Tested-by: Wim Osterholt <wim@xxxxxxxxxxxxxx>
> Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>
> ---
[ ... snip ... ]
>
> But this does not completely fix all the problems induced by the original
> changes from 4.4 to 4.5. The following is what we use to open the floppy.
>
> fd = open(device, O_RDWR | O_NDELAY);
>
> The FMODE_NDELAY check that was removed now prevents one from doing an open of
> the device with no media inserted. It also prevents one from doing an open of
> the device with media inserted that is not already formatted in a "standard"
> format. I do both of these things a lot. I deal with a few very non-standard
> formats and this change prevents me from doing what I've been doing for YEARS.
> Could we please get the original behavior back in the floppy driver.

Hi Mark,

thanks for the regression report.

For my better understanding of your issue -- what behavior/semantics
exactly does your userspace think it'll be getting from opening /dev/fd0
with O_NDELAY?

Thanks,

--
Jiri Kosina
SUSE Labs