diff --git a/fs/namei.c b/fs/namei.c index 3afc833f0104..b9275cb8b502 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2933,8 +2933,10 @@ static int may_open(const struct path *path, int acc_mode, int flag) case S_IFLNK: return -ELOOP; case S_IFDIR: - if (acc_mode & (MAY_WRITE | MAY_EXEC)) + if (acc_mode & MAY_WRITE) return -EISDIR; + if (acc_mode & MAY_EXEC) + return -EACCES; break; case S_IFBLK: case S_IFCHR: