nilfs2: fix incorrect masking of permission flags for symlinks
The permission flags of newly created symlinks are wrongly dropped on nilfs2 with the current umask value even though symlinks should have 777 (rwxrwxrwx) permissions: $ umask 0022 $ touch file && ln -s file symlink; ls -l file symlink -rw-r--r--. 1 root root 0 Jun 23 16:29 file lrwxr-xr-x. 1 root root 4 Jun 23 16:29 symlink -> file This fixes the bug by inserting a missing check that excludes symlinks. Link: https://lkml.kernel.org/r/1655974441-5612-1-git-send-email-konishi.ryusuke@gmail.com Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Reported-by: Tommy Pettersson <ptp@lysator.liu.se> Reported-by: Ciprian Craciun <ciprian.craciun@gmail.com> Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
1118234e4b
commit
5924e6ec15
|
@ -198,6 +198,9 @@ static inline int nilfs_acl_chmod(struct inode *inode)
|
||||||
|
|
||||||
static inline int nilfs_init_acl(struct inode *inode, struct inode *dir)
|
static inline int nilfs_init_acl(struct inode *inode, struct inode *dir)
|
||||||
{
|
{
|
||||||
|
if (S_ISLNK(inode->i_mode))
|
||||||
|
return 0;
|
||||||
|
|
||||||
inode->i_mode &= ~current_umask();
|
inode->i_mode &= ~current_umask();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue