Lines Matching refs:iap
328 nfsd_sanitize_attrs(struct inode *inode, struct iattr *iap) in nfsd_sanitize_attrs() argument
331 if (iap->ia_valid & ATTR_MODE) { in nfsd_sanitize_attrs()
332 iap->ia_mode &= S_IALLUGO; in nfsd_sanitize_attrs()
333 iap->ia_mode |= (inode->i_mode & ~S_IALLUGO); in nfsd_sanitize_attrs()
338 ((iap->ia_valid & ATTR_UID) || (iap->ia_valid & ATTR_GID))) { in nfsd_sanitize_attrs()
339 iap->ia_valid |= ATTR_KILL_PRIV; in nfsd_sanitize_attrs()
340 if (iap->ia_valid & ATTR_MODE) { in nfsd_sanitize_attrs()
342 iap->ia_mode &= ~S_ISUID; in nfsd_sanitize_attrs()
343 if (iap->ia_mode & S_IXGRP) in nfsd_sanitize_attrs()
344 iap->ia_mode &= ~S_ISGID; in nfsd_sanitize_attrs()
347 iap->ia_valid |= (ATTR_KILL_SUID | ATTR_KILL_SGID); in nfsd_sanitize_attrs()
354 struct iattr *iap) in nfsd_get_write_access() argument
359 if (iap->ia_size < inode->i_size) { in nfsd_get_write_access()
372 host_err = locks_verify_truncate(inode, NULL, iap->ia_size); in nfsd_get_write_access()
387 nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap, in nfsd_setattr() argument
397 bool size_change = (iap->ia_valid & ATTR_SIZE); in nfsd_setattr()
399 if (iap->ia_valid & (ATTR_ATIME | ATTR_MTIME | ATTR_SIZE)) in nfsd_setattr()
401 if (iap->ia_valid & ATTR_SIZE) in nfsd_setattr()
422 iap->ia_valid &= ~ATTR_MODE; in nfsd_setattr()
424 if (!iap->ia_valid) in nfsd_setattr()
427 nfsd_sanitize_attrs(inode, iap); in nfsd_setattr()
440 err = nfsd_get_write_access(rqstp, fhp, iap); in nfsd_setattr()
456 .ia_size = iap->ia_size, in nfsd_setattr()
462 iap->ia_valid &= ~ATTR_SIZE; in nfsd_setattr()
469 if ((iap->ia_valid & ~ATTR_MTIME) == 0) in nfsd_setattr()
473 iap->ia_valid |= ATTR_CTIME; in nfsd_setattr()
474 host_err = notify_change(dentry, iap, NULL); in nfsd_setattr()
1130 struct iattr *iap) in nfsd_create_setattr() argument
1135 iap->ia_valid &= ~ATTR_MODE; in nfsd_create_setattr()
1142 iap->ia_valid &= ~(ATTR_UID|ATTR_GID); in nfsd_create_setattr()
1143 if (iap->ia_valid) in nfsd_create_setattr()
1144 return nfsd_setattr(rqstp, resfhp, iap, 0, (time_t)0); in nfsd_create_setattr()
1158 nfsd_check_ignore_resizing(struct iattr *iap) in nfsd_check_ignore_resizing() argument
1160 if ((iap->ia_valid & ATTR_SIZE) && (iap->ia_size == 0)) in nfsd_check_ignore_resizing()
1161 iap->ia_valid &= ~ATTR_SIZE; in nfsd_check_ignore_resizing()
1167 char *fname, int flen, struct iattr *iap, in nfsd_create_locked() argument
1191 if (!(iap->ia_valid & ATTR_MODE)) in nfsd_create_locked()
1192 iap->ia_mode = 0; in nfsd_create_locked()
1193 iap->ia_mode = (iap->ia_mode & S_IALLUGO) | type; in nfsd_create_locked()
1199 host_err = vfs_create(dirp, dchild, iap->ia_mode, true); in nfsd_create_locked()
1201 nfsd_check_ignore_resizing(iap); in nfsd_create_locked()
1204 host_err = vfs_mkdir(dirp, dchild, iap->ia_mode); in nfsd_create_locked()
1232 host_err = vfs_mknod(dirp, dchild, iap->ia_mode, rdev); in nfsd_create_locked()
1242 err = nfsd_create_setattr(rqstp, resfhp, iap); in nfsd_create_locked()
1275 char *fname, int flen, struct iattr *iap, in nfsd_create() argument
1310 return nfsd_create_locked(rqstp, fhp, fname, flen, iap, type, in nfsd_create()
1321 char *fname, int flen, struct iattr *iap, in do_nfsd_create() argument
1337 if (!(iap->ia_valid & ATTR_MODE)) in do_nfsd_create()
1338 iap->ia_mode = 0; in do_nfsd_create()
1397 *truncp = (iap->ia_valid & ATTR_SIZE) && !iap->ia_size; in do_nfsd_create()
1400 iap->ia_valid &= ATTR_SIZE; in do_nfsd_create()
1428 host_err = vfs_create(dirp, dchild, iap->ia_mode, true); in do_nfsd_create()
1436 nfsd_check_ignore_resizing(iap); in do_nfsd_create()
1440 iap->ia_valid = ATTR_MTIME|ATTR_ATIME in do_nfsd_create()
1443 iap->ia_mtime.tv_sec = v_mtime; in do_nfsd_create()
1444 iap->ia_atime.tv_sec = v_atime; in do_nfsd_create()
1445 iap->ia_mtime.tv_nsec = 0; in do_nfsd_create()
1446 iap->ia_atime.tv_nsec = 0; in do_nfsd_create()
1450 err = nfsd_create_setattr(rqstp, resfhp, iap); in do_nfsd_create()