From: Miklos Szeredi Date: Fri, 16 Dec 2016 10:02:55 +0000 (+0100) Subject: ovl: don't check sticky X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=99f5d08e3640c8319f353e6c883da150c48067f6;p=linux-beck.git 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 --- 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;