Lines Matching refs:inode
31 int inode_change_ok(const struct inode *inode, struct iattr *attr) in inode_change_ok() argument
40 int error = inode_newsize_ok(inode, attr->ia_size); in inode_change_ok()
51 (!uid_eq(current_fsuid(), inode->i_uid) || in inode_change_ok()
52 !uid_eq(attr->ia_uid, inode->i_uid)) && in inode_change_ok()
53 !capable_wrt_inode_uidgid(inode, CAP_CHOWN)) in inode_change_ok()
58 (!uid_eq(current_fsuid(), inode->i_uid) || in inode_change_ok()
59 (!in_group_p(attr->ia_gid) && !gid_eq(attr->ia_gid, inode->i_gid))) && in inode_change_ok()
60 !capable_wrt_inode_uidgid(inode, CAP_CHOWN)) in inode_change_ok()
65 if (!inode_owner_or_capable(inode)) in inode_change_ok()
69 inode->i_gid) && in inode_change_ok()
70 !capable_wrt_inode_uidgid(inode, CAP_FSETID)) in inode_change_ok()
76 if (!inode_owner_or_capable(inode)) in inode_change_ok()
99 int inode_newsize_ok(const struct inode *inode, loff_t offset) in inode_newsize_ok() argument
101 if (inode->i_size < offset) { in inode_newsize_ok()
107 if (offset > inode->i_sb->s_maxbytes) in inode_newsize_ok()
115 if (IS_SWAPFILE(inode)) in inode_newsize_ok()
142 void setattr_copy(struct inode *inode, const struct iattr *attr) in setattr_copy() argument
147 inode->i_uid = attr->ia_uid; in setattr_copy()
149 inode->i_gid = attr->ia_gid; in setattr_copy()
151 inode->i_atime = timespec_trunc(attr->ia_atime, in setattr_copy()
152 inode->i_sb->s_time_gran); in setattr_copy()
154 inode->i_mtime = timespec_trunc(attr->ia_mtime, in setattr_copy()
155 inode->i_sb->s_time_gran); in setattr_copy()
157 inode->i_ctime = timespec_trunc(attr->ia_ctime, in setattr_copy()
158 inode->i_sb->s_time_gran); in setattr_copy()
162 if (!in_group_p(inode->i_gid) && in setattr_copy()
163 !capable_wrt_inode_uidgid(inode, CAP_FSETID)) in setattr_copy()
165 inode->i_mode = mode; in setattr_copy()
190 int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **delegated_inode) in notify_change()
192 struct inode *inode = dentry->d_inode; in notify_change() local
193 umode_t mode = inode->i_mode; in notify_change()
198 WARN_ON_ONCE(!mutex_is_locked(&inode->i_mutex)); in notify_change()
201 if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) in notify_change()
209 inode->i_flags &= ~S_NOSEC; in notify_change()
212 now = current_fs_time(inode->i_sb); in notify_change()
243 attr->ia_mode = (inode->i_mode & ~S_ISUID); in notify_change()
250 attr->ia_mode = inode->i_mode; in notify_change()
261 error = try_break_deleg(inode, delegated_inode); in notify_change()
265 if (inode->i_op->setattr) in notify_change()
266 error = inode->i_op->setattr(dentry, attr); in notify_change()