ovl: handle ATTR_KILL*
[firefly-linux-kernel-4.4.55.git] / fs / overlayfs / inode.c
index 0597820f5d9d72f19fbaa185cbde5249bf0fb2a9..4f729ffff75d44caafa18ea05ef432d8d2d8593f 100644 (file)
@@ -63,6 +63,9 @@ int ovl_setattr(struct dentry *dentry, struct iattr *attr)
        if (!err) {
                upperdentry = ovl_dentry_upper(dentry);
 
+               if (attr->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID))
+                       attr->ia_valid &= ~ATTR_MODE;
+
                mutex_lock(&upperdentry->d_inode->i_mutex);
                err = notify_change(upperdentry, attr, NULL);
                if (!err)