Lines Matching refs:iap
303 nfsd_sanitize_attrs(struct inode *inode, struct iattr *iap) in nfsd_sanitize_attrs() argument
318 if ((iap->ia_valid & BOTH_TIME_SET) == BOTH_TIME_SET && in nfsd_sanitize_attrs()
319 iap->ia_mtime.tv_sec == iap->ia_atime.tv_sec) { in nfsd_sanitize_attrs()
327 time_t delta = iap->ia_atime.tv_sec - get_seconds(); in nfsd_sanitize_attrs()
331 inode_change_ok(inode, iap) != 0) { in nfsd_sanitize_attrs()
337 iap->ia_valid &= ~BOTH_TIME_SET; in nfsd_sanitize_attrs()
342 if (iap->ia_valid & ATTR_MODE) { in nfsd_sanitize_attrs()
343 iap->ia_mode &= S_IALLUGO; in nfsd_sanitize_attrs()
344 iap->ia_mode |= (inode->i_mode & ~S_IALLUGO); in nfsd_sanitize_attrs()
349 ((iap->ia_valid & ATTR_UID) || (iap->ia_valid & ATTR_GID))) { in nfsd_sanitize_attrs()
350 iap->ia_valid |= ATTR_KILL_PRIV; in nfsd_sanitize_attrs()
351 if (iap->ia_valid & ATTR_MODE) { in nfsd_sanitize_attrs()
353 iap->ia_mode &= ~S_ISUID; in nfsd_sanitize_attrs()
354 if (iap->ia_mode & S_IXGRP) in nfsd_sanitize_attrs()
355 iap->ia_mode &= ~S_ISGID; in nfsd_sanitize_attrs()
358 iap->ia_valid |= (ATTR_KILL_SUID | ATTR_KILL_SGID); in nfsd_sanitize_attrs()
365 struct iattr *iap) in nfsd_get_write_access() argument
370 if (iap->ia_size < inode->i_size) { in nfsd_get_write_access()
383 host_err = locks_verify_truncate(inode, NULL, iap->ia_size); in nfsd_get_write_access()
398 nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap, in nfsd_setattr() argument
410 if (iap->ia_valid & (ATTR_ATIME | ATTR_MTIME | ATTR_SIZE)) in nfsd_setattr()
412 if (iap->ia_valid & ATTR_SIZE) in nfsd_setattr()
433 iap->ia_valid &= ~ATTR_MODE; in nfsd_setattr()
435 if (!iap->ia_valid) in nfsd_setattr()
438 nfsd_sanitize_attrs(inode, iap); in nfsd_setattr()
444 if (iap->ia_valid & ATTR_SIZE) { in nfsd_setattr()
445 err = nfsd_get_write_access(rqstp, fhp, iap); in nfsd_setattr()
457 if (iap->ia_size != i_size_read(inode)) in nfsd_setattr()
458 iap->ia_valid |= ATTR_MTIME; in nfsd_setattr()
461 iap->ia_valid |= ATTR_CTIME; in nfsd_setattr()
469 host_err = notify_change(dentry, iap, NULL); in nfsd_setattr()
1149 struct iattr *iap) in nfsd_create_setattr() argument
1154 iap->ia_valid &= ~ATTR_MODE; in nfsd_create_setattr()
1161 iap->ia_valid &= ~(ATTR_UID|ATTR_GID); in nfsd_create_setattr()
1162 if (iap->ia_valid) in nfsd_create_setattr()
1163 return nfsd_setattr(rqstp, resfhp, iap, 0, (time_t)0); in nfsd_create_setattr()
1177 nfsd_check_ignore_resizing(struct iattr *iap) in nfsd_check_ignore_resizing() argument
1179 if ((iap->ia_valid & ATTR_SIZE) && (iap->ia_size == 0)) in nfsd_check_ignore_resizing()
1180 iap->ia_valid &= ~ATTR_SIZE; in nfsd_check_ignore_resizing()
1193 char *fname, int flen, struct iattr *iap, in nfsd_create() argument
1259 if (!(iap->ia_valid & ATTR_MODE)) in nfsd_create()
1260 iap->ia_mode = 0; in nfsd_create()
1261 iap->ia_mode = (iap->ia_mode & S_IALLUGO) | type; in nfsd_create()
1277 host_err = vfs_create(dirp, dchild, iap->ia_mode, true); in nfsd_create()
1279 nfsd_check_ignore_resizing(iap); in nfsd_create()
1282 host_err = vfs_mkdir(dirp, dchild, iap->ia_mode); in nfsd_create()
1288 host_err = vfs_mknod(dirp, dchild, iap->ia_mode, rdev); in nfsd_create()
1294 err = nfsd_create_setattr(rqstp, resfhp, iap); in nfsd_create()
1333 char *fname, int flen, struct iattr *iap, in do_nfsd_create() argument
1349 if (!(iap->ia_valid & ATTR_MODE)) in do_nfsd_create()
1350 iap->ia_mode = 0; in do_nfsd_create()
1415 *truncp = (iap->ia_valid & ATTR_SIZE) && !iap->ia_size; in do_nfsd_create()
1418 iap->ia_valid &= ATTR_SIZE; in do_nfsd_create()
1446 host_err = vfs_create(dirp, dchild, iap->ia_mode, true); in do_nfsd_create()
1454 nfsd_check_ignore_resizing(iap); in do_nfsd_create()
1458 iap->ia_valid = ATTR_MTIME|ATTR_ATIME in do_nfsd_create()
1461 iap->ia_mtime.tv_sec = v_mtime; in do_nfsd_create()
1462 iap->ia_atime.tv_sec = v_atime; in do_nfsd_create()
1463 iap->ia_mtime.tv_nsec = 0; in do_nfsd_create()
1464 iap->ia_atime.tv_nsec = 0; in do_nfsd_create()
1468 err = nfsd_create_setattr(rqstp, resfhp, iap); in do_nfsd_create()