All of lore.kernel.org
 help / color / mirror / Atom feed
* cifs: Strange O_DIRECT behaviour on non-directio mounts
@ 2014-06-27 11:14 Kevin Wolf
       [not found] ` <20140627111412.GC5223-LVckRYR5CXkXGNroddHbYwC/G2K4zDHf@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Kevin Wolf @ 2014-06-27 11:14 UTC (permalink / raw)
  To: Steve French; +Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA

Hi Steve,

I just discussed a problem with a qemu user on IRC, which boiled down to
him trying to open an image file on cifs with O_DIRECT, but not using a
directio mount. I understand that this probably isn't going to work
anytime soon (if at all), but it resulted in a rather unhelpful failure
mode.

What happens is that cifs lets the open() call succeed even with the
unsupported O_DIRECT on that mount, but then fails any I/O on the file
descriptor. I believe this was introduced in commit dca69288 (which I
think is otherwise pretty useful).

With the old behaviour, qemu detected what's going on and suggested to
use a non-O_DIRECT mode to the user, but with the new one, it got rather
unhappy after failing to find a working O_DIRECT alignment and ran into
an assertion failure...

Now I'll certainly fix the latter in qemu, but I also think that the
behaviour of cifs is rather surprising. Any chance that you can make
open() with O_DIRECT fail again on non-directio mounts?

Thanks,
Kevin

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-07-16 19:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-27 11:14 cifs: Strange O_DIRECT behaviour on non-directio mounts Kevin Wolf
     [not found] ` <20140627111412.GC5223-LVckRYR5CXkXGNroddHbYwC/G2K4zDHf@public.gmane.org>
2014-07-16 10:02   ` Kevin Wolf
2014-07-16 18:15   ` Steve French
     [not found]     ` <CAH2r5mtLNSVua=tHtE_-nDu93_kiwU3sJf8EsiSdvY9EUiqQZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-07-16 19:23       ` Kevin Wolf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.