diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2016-12-16 11:02:55 +0100 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2016-12-16 11:02:55 +0100 |
commit | 99f5d08e3640c8319f353e6c883da150c48067f6 (patch) | |
tree | d4dd342eabff9ac149cc06e955258ddf09574814 /fs/overlayfs/dir.c | |
parent | ovl: don't check rename to self (diff) | |
download | linux-99f5d08e3640c8319f353e6c883da150c48067f6.tar.xz linux-99f5d08e3640c8319f353e6c883da150c48067f6.zip |
ovl: don't check sticky
Since commit 07a2daab49c5 ("ovl: Copy up underlying inode's ->i_mode to
overlay inode") sticky checking on overlay inode is performed by the vfs,
so checking against sticky on underlying inode is not needed.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/overlayfs/dir.c')
-rw-r--r-- | fs/overlayfs/dir.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c index a806fb168ea3..fdc7b14ab571 100644 --- a/fs/overlayfs/dir.c +++ b/fs/overlayfs/dir.c @@ -717,28 +717,12 @@ out_unlock: return err; } -static inline int ovl_check_sticky(struct dentry *dentry) -{ - struct inode *dir = ovl_dentry_real(dentry->d_parent)->d_inode; - struct inode *inode = ovl_dentry_real(dentry)->d_inode; - - if (check_sticky(dir, inode)) - return -EPERM; - - return 0; -} - static int ovl_do_remove(struct dentry *dentry, bool is_dir) { enum ovl_path_type type; int err; const struct cred *old_cred; - - err = ovl_check_sticky(dentry); - if (err) - goto out; - err = ovl_want_write(dentry); if (err) goto out; @@ -804,10 +788,6 @@ static int ovl_rename(struct inode *olddir, struct dentry *old, flags &= ~RENAME_NOREPLACE; - err = ovl_check_sticky(old); - if (err) - goto out; - /* Don't copy up directory trees */ old_type = ovl_path_type(old); err = -EXDEV; @@ -815,10 +795,6 @@ static int ovl_rename(struct inode *olddir, struct dentry *old, goto out; if (new->d_inode) { - err = ovl_check_sticky(new); - if (err) - goto out; - if (d_is_dir(new)) new_is_dir = true; |