Re: [RFC PATCH 0/7] Non-blockling buffered fs read (page cache only)

From: Christoph Hellwig
Date: Fri Sep 19 2014 - 07:24:00 EST


On Mon, Sep 15, 2014 at 05:58:44PM -0400, Jeff Moyer wrote:
> I thought you were going to introduce a new flag instead of using
> O_NONBLOCK for this. I dug up an old email that suggested that enabling
> O_NONBLOCK for regular files (well, a device node in this case) broke a
> cd ripping or burning application. I also found this old bugzilla,
> which states that squid would fail to start, and that gqview was also
> broken:
> https://bugzilla.redhat.com/show_bug.cgi?id=136057

That is why we avoid looking a the per-open O_NONBLOCK flag, and only
apply it per I/O. As mentioned in my last mail it's not quite as
trivial but still fairly easy to also do that for writes.

> I don't think O_NONBLOCK is the right flag. What you're really
> specifying is a flag that prevents I/O in the read path, and nowhere
> else. As such, I'd feel much better about this if we defined a new flag
> (O_NONBLOCK_READ maybe? No, that's too verbose.).
>
> In summary, I like the idea, but I worry about overloading O_NONBLOCK.

There's a fair argument we could use a different namespace for the
per-I/O ops, and it seems like Miklos already implemented this for the
next version.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/