Lines Matching refs:iap
302 nfsd_sanitize_attrs(struct inode *inode, struct iattr *iap) in nfsd_sanitize_attrs() argument
305 if (iap->ia_valid & ATTR_MODE) { in nfsd_sanitize_attrs()
306 iap->ia_mode &= S_IALLUGO; in nfsd_sanitize_attrs()
307 iap->ia_mode |= (inode->i_mode & ~S_IALLUGO); in nfsd_sanitize_attrs()
312 ((iap->ia_valid & ATTR_UID) || (iap->ia_valid & ATTR_GID))) { in nfsd_sanitize_attrs()
313 iap->ia_valid |= ATTR_KILL_PRIV; in nfsd_sanitize_attrs()
314 if (iap->ia_valid & ATTR_MODE) { in nfsd_sanitize_attrs()
316 iap->ia_mode &= ~S_ISUID; in nfsd_sanitize_attrs()
317 if (iap->ia_mode & S_IXGRP) in nfsd_sanitize_attrs()
318 iap->ia_mode &= ~S_ISGID; in nfsd_sanitize_attrs()
321 iap->ia_valid |= (ATTR_KILL_SUID | ATTR_KILL_SGID); in nfsd_sanitize_attrs()
328 struct iattr *iap) in nfsd_get_write_access() argument
333 if (iap->ia_size < inode->i_size) { in nfsd_get_write_access()
346 host_err = locks_verify_truncate(inode, NULL, iap->ia_size); in nfsd_get_write_access()
361 nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap, in nfsd_setattr() argument
373 if (iap->ia_valid & (ATTR_ATIME | ATTR_MTIME | ATTR_SIZE)) in nfsd_setattr()
375 if (iap->ia_valid & ATTR_SIZE) in nfsd_setattr()
396 iap->ia_valid &= ~ATTR_MODE; in nfsd_setattr()
398 if (!iap->ia_valid) in nfsd_setattr()
401 nfsd_sanitize_attrs(inode, iap); in nfsd_setattr()
407 if (iap->ia_valid & ATTR_SIZE) { in nfsd_setattr()
408 err = nfsd_get_write_access(rqstp, fhp, iap); in nfsd_setattr()
420 if (iap->ia_size != i_size_read(inode)) in nfsd_setattr()
421 iap->ia_valid |= ATTR_MTIME; in nfsd_setattr()
424 iap->ia_valid |= ATTR_CTIME; in nfsd_setattr()
432 host_err = notify_change(dentry, iap, NULL); in nfsd_setattr()
1090 struct iattr *iap) in nfsd_create_setattr() argument
1095 iap->ia_valid &= ~ATTR_MODE; in nfsd_create_setattr()
1102 iap->ia_valid &= ~(ATTR_UID|ATTR_GID); in nfsd_create_setattr()
1103 if (iap->ia_valid) in nfsd_create_setattr()
1104 return nfsd_setattr(rqstp, resfhp, iap, 0, (time_t)0); in nfsd_create_setattr()
1118 nfsd_check_ignore_resizing(struct iattr *iap) in nfsd_check_ignore_resizing() argument
1120 if ((iap->ia_valid & ATTR_SIZE) && (iap->ia_size == 0)) in nfsd_check_ignore_resizing()
1121 iap->ia_valid &= ~ATTR_SIZE; in nfsd_check_ignore_resizing()
1134 char *fname, int flen, struct iattr *iap, in nfsd_create() argument
1200 if (!(iap->ia_valid & ATTR_MODE)) in nfsd_create()
1201 iap->ia_mode = 0; in nfsd_create()
1202 iap->ia_mode = (iap->ia_mode & S_IALLUGO) | type; in nfsd_create()
1218 host_err = vfs_create(dirp, dchild, iap->ia_mode, true); in nfsd_create()
1220 nfsd_check_ignore_resizing(iap); in nfsd_create()
1223 host_err = vfs_mkdir(dirp, dchild, iap->ia_mode); in nfsd_create()
1229 host_err = vfs_mknod(dirp, dchild, iap->ia_mode, rdev); in nfsd_create()
1235 err = nfsd_create_setattr(rqstp, resfhp, iap); in nfsd_create()
1274 char *fname, int flen, struct iattr *iap, in do_nfsd_create() argument
1290 if (!(iap->ia_valid & ATTR_MODE)) in do_nfsd_create()
1291 iap->ia_mode = 0; in do_nfsd_create()
1356 *truncp = (iap->ia_valid & ATTR_SIZE) && !iap->ia_size; in do_nfsd_create()
1359 iap->ia_valid &= ATTR_SIZE; in do_nfsd_create()
1387 host_err = vfs_create(dirp, dchild, iap->ia_mode, true); in do_nfsd_create()
1395 nfsd_check_ignore_resizing(iap); in do_nfsd_create()
1399 iap->ia_valid = ATTR_MTIME|ATTR_ATIME in do_nfsd_create()
1402 iap->ia_mtime.tv_sec = v_mtime; in do_nfsd_create()
1403 iap->ia_atime.tv_sec = v_atime; in do_nfsd_create()
1404 iap->ia_mtime.tv_nsec = 0; in do_nfsd_create()
1405 iap->ia_atime.tv_nsec = 0; in do_nfsd_create()
1409 err = nfsd_create_setattr(rqstp, resfhp, iap); in do_nfsd_create()