Lines Matching refs:fattr

133 static umode_t access_flags_to_mode(struct smb_fattr *fattr, __le32 ace_flags,  in access_flags_to_mode()  argument
149 if (S_ISDIR(fattr->cf_mode)) in access_flags_to_mode()
259 struct smb_fattr *fattr) in sid_to_id() argument
281 fattr->cf_uid = uid; in sid_to_id()
292 fattr->cf_gid = gid; in sid_to_id()
368 struct smb_fattr *fattr) in parse_dacl() argument
444 fattr->cf_mode = in parse_dacl()
448 acl_mode = access_flags_to_mode(fattr, in parse_dacl()
461 acl_mode = access_flags_to_mode(fattr, in parse_dacl()
471 acl_mode = access_flags_to_mode(fattr, in parse_dacl()
489 acl_mode = access_flags_to_mode(fattr, ppace[i]->access_req, in parse_dacl()
516 acl_state.users->aces[acl_state.users->n].uid = fattr->cf_uid; in parse_dacl()
521 fattr->cf_uid; in parse_dacl()
529 fattr->cf_gid; in parse_dacl()
534 fattr->cf_gid; in parse_dacl()
540 fattr->cf_mode &= ~(0007); in parse_dacl()
541 fattr->cf_mode |= mode & 0007; in parse_dacl()
551 fattr->cf_acls = in parse_dacl()
554 if (fattr->cf_acls) { in parse_dacl()
555 cf_pace = fattr->cf_acls->a_entries; in parse_dacl()
565 fattr->cf_dacls = in parse_dacl()
568 if (fattr->cf_dacls) { in parse_dacl()
569 cf_pdace = fattr->cf_dacls->a_entries; in parse_dacl()
580 struct smb_fattr *fattr, u32 *num_aces, in set_posix_acl_entries_dacl() argument
588 if (!fattr->cf_acls) in set_posix_acl_entries_dacl()
591 pace = fattr->cf_acls->a_entries; in set_posix_acl_entries_dacl()
592 for (i = 0; i < fattr->cf_acls->a_count; i++, pace++) { in set_posix_acl_entries_dacl()
627 if (S_ISDIR(fattr->cf_mode) && pace->e_tag == ACL_OTHER) in set_posix_acl_entries_dacl()
638 if (S_ISDIR(fattr->cf_mode) && in set_posix_acl_entries_dacl()
657 if (!fattr->cf_dacls) in set_posix_acl_entries_dacl()
660 pace = fattr->cf_dacls->a_entries; in set_posix_acl_entries_dacl()
661 for (i = 0; i < fattr->cf_dacls->a_count; i++, pace++) { in set_posix_acl_entries_dacl()
698 struct smb_fattr *fattr) in set_ntacl_dacl() argument
726 set_posix_acl_entries_dacl(idmap, pndace, fattr, in set_ntacl_dacl()
733 struct smb_acl *pndacl, struct smb_fattr *fattr) in set_mode_dacl() argument
743 if (fattr->cf_acls) { in set_mode_dacl()
744 set_posix_acl_entries_dacl(idmap, pndace, fattr, in set_mode_dacl()
750 uid = from_kuid(&init_user_ns, fattr->cf_uid); in set_mode_dacl()
756 fattr->cf_mode, 0700); in set_mode_dacl()
764 ACCESS_ALLOWED, 0, fattr->cf_mode, 0070); in set_mode_dacl()
766 cpu_to_le32(from_kgid(&init_user_ns, fattr->cf_gid)); in set_mode_dacl()
772 if (S_ISDIR(fattr->cf_mode)) { in set_mode_dacl()
777 0x0b, fattr->cf_mode, 0700); in set_mode_dacl()
782 0x0b, fattr->cf_mode, 0070); in set_mode_dacl()
789 fattr->cf_mode, 0007); in set_mode_dacl()
812 int acl_len, struct smb_fattr *fattr) in parse_sec_desc() argument
854 rc = sid_to_id(idmap, owner_sid_ptr, SIDOWNER, fattr); in parse_sec_desc()
869 rc = sid_to_id(idmap, group_sid_ptr, SIDUNIX_GROUP, fattr); in parse_sec_desc()
885 owner_sid_ptr, group_sid_ptr, fattr); in parse_sec_desc()
895 struct smb_fattr *fattr) in build_sec_desc() argument
910 uid = from_kuid(&init_user_ns, fattr->cf_uid); in build_sec_desc()
921 gid = from_kgid(&init_user_ns, fattr->cf_gid); in build_sec_desc()
953 set_mode_dacl(idmap, dacl_ptr, fattr); in build_sec_desc()
972 fattr); in build_sec_desc()
1361 struct smb_fattr fattr = {{0}}; in set_info_sec() local
1366 fattr.cf_uid = INVALID_UID; in set_info_sec()
1367 fattr.cf_gid = INVALID_GID; in set_info_sec()
1368 fattr.cf_mode = inode->i_mode; in set_info_sec()
1370 rc = parse_sec_desc(idmap, pntsd, ntsd_len, &fattr); in set_info_sec()
1375 if (!uid_eq(fattr.cf_uid, INVALID_UID)) { in set_info_sec()
1377 newattrs.ia_uid = fattr.cf_uid; in set_info_sec()
1379 if (!gid_eq(fattr.cf_gid, INVALID_GID)) { in set_info_sec()
1381 newattrs.ia_gid = fattr.cf_gid; in set_info_sec()
1384 newattrs.ia_mode = (inode->i_mode & ~0777) | (fattr.cf_mode & 0777); in set_info_sec()
1388 if (IS_ENABLED(CONFIG_FS_POSIX_ACL) && fattr.cf_dacls) { in set_info_sec()
1390 ACL_TYPE_ACCESS, fattr.cf_acls); in set_info_sec()
1395 if (S_ISDIR(inode->i_mode) && fattr.cf_dacls) { in set_info_sec()
1397 ACL_TYPE_DEFAULT, fattr.cf_dacls); in set_info_sec()
1423 posix_acl_release(fattr.cf_acls); in set_info_sec()
1424 posix_acl_release(fattr.cf_dacls); in set_info_sec()