diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 4ad7fff9ccaf7d7733429fd281078e09e093c24e..d23393ab76bfe1c7c477c5d765991bfbc61898e2 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -2450,6 +2450,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: /*