NFSv4: Add FMODE_CAN_ODIRECT after successful open of a NFS4.x file
authorDave Wysochanski <dwysocha@redhat.com>
Fri, 10 Jun 2022 00:46:29 +0000 (20:46 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 15 Jun 2022 19:03:12 +0000 (15:03 -0400)
commit5ee3d10f84d0a32fc11a55c70c204b6d81fd9ef6
tree5cd1e8c52d77312fd59d2a9649b9633d78fc0719
parent304791255a2dc1c9be7e7c8a6cbdb31b6847b0e5
NFSv4: Add FMODE_CAN_ODIRECT after successful open of a NFS4.x file

Commit a2ad63daa88b ("VFS: add FMODE_CAN_ODIRECT file flag")
added the FMODE_CAN_ODIRECT flag for NFSv3 but neglected to add
it for NFSv4.x.  This causes direct io on NFSv4.x to fail open
with EINVAL:
  mount -o vers=4.2 127.0.0.1:/export /mnt/nfs4
  dd if=/dev/zero of=/mnt/nfs4/file.bin bs=128k count=1 oflag=direct
  dd: failed to open '/mnt/nfs4/file.bin': Invalid argument
  dd of=/dev/null if=/mnt/nfs4/file.bin bs=128k count=1 iflag=direct
  dd: failed to open '/mnt/dir1/file1.bin': Invalid argument

Fixes: a2ad63daa88b ("VFS: add FMODE_CAN_ODIRECT file flag")
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/dir.c
fs/nfs/nfs4file.c