diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index ce5a21861074293ca0968b04d1d13e4406ca93bd..44e519c21e1803d1887b98eddf9ccc46c4b75d05 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -2449,6 +2449,9 @@ int nfs_permission(struct inode *inode, int mask) case S_IFLNK: goto out; case S_IFREG: + if ((mask & MAY_OPEN) && + nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN)) + return 0; break; case S_IFDIR: /*