diff options
Diffstat (limited to 'fs/namei.c')
-rw-r--r-- | fs/namei.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/namei.c b/fs/namei.c index 3b993db26cee..73e2e665817a 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1605,7 +1605,7 @@ int may_open(struct nameidata *nd, int acc_mode, int flag) | |||
1605 | if (S_ISLNK(inode->i_mode)) | 1605 | if (S_ISLNK(inode->i_mode)) |
1606 | return -ELOOP; | 1606 | return -ELOOP; |
1607 | 1607 | ||
1608 | if (S_ISDIR(inode->i_mode) && (flag & FMODE_WRITE)) | 1608 | if (S_ISDIR(inode->i_mode) && (acc_mode & MAY_WRITE)) |
1609 | return -EISDIR; | 1609 | return -EISDIR; |
1610 | 1610 | ||
1611 | /* | 1611 | /* |
@@ -1620,7 +1620,7 @@ int may_open(struct nameidata *nd, int acc_mode, int flag) | |||
1620 | return -EACCES; | 1620 | return -EACCES; |
1621 | 1621 | ||
1622 | flag &= ~O_TRUNC; | 1622 | flag &= ~O_TRUNC; |
1623 | } else if (IS_RDONLY(inode) && (flag & FMODE_WRITE)) | 1623 | } else if (IS_RDONLY(inode) && (acc_mode & MAY_WRITE)) |
1624 | return -EROFS; | 1624 | return -EROFS; |
1625 | 1625 | ||
1626 | error = vfs_permission(nd, acc_mode); | 1626 | error = vfs_permission(nd, acc_mode); |