summaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsacl.c
diff options
context:
space:
mode:
authorSteve French <smfrench@gmail.com>2013-11-11 16:42:37 -0600
committerSteve French <smfrench@gmail.com>2013-11-11 16:42:37 -0600
commitdca692880e887739a669f6c41a80ca68ce2b09fc (patch)
tree358c5ff7ebab5e6ac77a4a8e4824e7b0ea96429a /fs/cifs/cifsacl.c
parenta8582159edb47a60dd1e5df5a21890f225270f62 (diff)
downloadblackbird-op-linux-dca692880e887739a669f6c41a80ca68ce2b09fc.tar.gz
blackbird-op-linux-dca692880e887739a669f6c41a80ca68ce2b09fc.zip
[CIFS] O_DIRECT opens should work on directio mounts
Opens on current cifs/smb2/smb3 mounts with O_DIRECT flag fail even when caching is disabled on the mount. This was reported by those running SMB2 benchmarks who need to be able to pass O_DIRECT on many of their open calls to reduce caching effects, but would also be needed by other applications. When mounting with forcedirectio ("cache=none") cifs and smb2/smb3 do not go through the page cache and thus opens with O_DIRECT flag should work (when posix extensions are negotiated we even are able to send the flag to the server). This patch fixes that in a simple way. The 9P client has a similar situation (caching is often disabled) and takes the same approach to O_DIRECT support ie works if caching disabled, but if client caching enabled it fails with EINVAL. A followon idea for a future patch as Pavel noted, could be that files opened with O_DIRECT could cause us to change inode->i_fop on the fly from cifs_file_strict_ops to cifs_file_direct_ops which would allow us to support this on non-forcedirectio mounts (cache=strict and cache=loose) as well. Reviewed-by: Pavel Shilovsky <piastry@etersoft.ru> Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/cifsacl.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud