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
447 fattr->cf_mode = in parse_dacl()
451 acl_mode = access_flags_to_mode(fattr, in parse_dacl()
464 acl_mode = access_flags_to_mode(fattr, in parse_dacl()
474 acl_mode = access_flags_to_mode(fattr, in parse_dacl()
492 acl_mode = access_flags_to_mode(fattr, ppace[i]->access_req, in parse_dacl()
519 acl_state.users->aces[acl_state.users->n].uid = fattr->cf_uid; in parse_dacl()
524 fattr->cf_uid; in parse_dacl()
532 fattr->cf_gid; in parse_dacl()
537 fattr->cf_gid; in parse_dacl()
543 fattr->cf_mode &= ~(0007); in parse_dacl()
544 fattr->cf_mode |= mode & 0007; in parse_dacl()
554 fattr->cf_acls = in parse_dacl()
557 if (fattr->cf_acls) { in parse_dacl()
558 cf_pace = fattr->cf_acls->a_entries; in parse_dacl()
568 fattr->cf_dacls = in parse_dacl()
571 if (fattr->cf_dacls) { in parse_dacl()
572 cf_pdace = fattr->cf_dacls->a_entries; in parse_dacl()
583 struct smb_fattr *fattr, u32 *num_aces, in set_posix_acl_entries_dacl() argument
591 if (!fattr->cf_acls) in set_posix_acl_entries_dacl()
594 pace = fattr->cf_acls->a_entries; in set_posix_acl_entries_dacl()
595 for (i = 0; i < fattr->cf_acls->a_count; i++, pace++) { in set_posix_acl_entries_dacl()
630 if (S_ISDIR(fattr->cf_mode) && pace->e_tag == ACL_OTHER) in set_posix_acl_entries_dacl()
641 if (S_ISDIR(fattr->cf_mode) && in set_posix_acl_entries_dacl()
660 if (!fattr->cf_dacls) in set_posix_acl_entries_dacl()
663 pace = fattr->cf_dacls->a_entries; in set_posix_acl_entries_dacl()
664 for (i = 0; i < fattr->cf_dacls->a_count; i++, pace++) { in set_posix_acl_entries_dacl()
701 struct smb_fattr *fattr) in set_ntacl_dacl() argument
729 set_posix_acl_entries_dacl(idmap, pndace, fattr, in set_ntacl_dacl()
736 struct smb_acl *pndacl, struct smb_fattr *fattr) in set_mode_dacl() argument
746 if (fattr->cf_acls) { in set_mode_dacl()
747 set_posix_acl_entries_dacl(idmap, pndace, fattr, in set_mode_dacl()
753 uid = from_kuid(&init_user_ns, fattr->cf_uid); in set_mode_dacl()
759 fattr->cf_mode, 0700); in set_mode_dacl()
767 ACCESS_ALLOWED, 0, fattr->cf_mode, 0070); in set_mode_dacl()
769 cpu_to_le32(from_kgid(&init_user_ns, fattr->cf_gid)); in set_mode_dacl()
775 if (S_ISDIR(fattr->cf_mode)) { in set_mode_dacl()
780 0x0b, fattr->cf_mode, 0700); in set_mode_dacl()
785 0x0b, fattr->cf_mode, 0070); in set_mode_dacl()
792 fattr->cf_mode, 0007); in set_mode_dacl()
815 int acl_len, struct smb_fattr *fattr) in parse_sec_desc() argument
857 rc = sid_to_id(idmap, owner_sid_ptr, SIDOWNER, fattr); in parse_sec_desc()
872 rc = sid_to_id(idmap, group_sid_ptr, SIDUNIX_GROUP, fattr); in parse_sec_desc()
888 owner_sid_ptr, group_sid_ptr, fattr); in parse_sec_desc()
898 struct smb_fattr *fattr) in build_sec_desc() argument
913 uid = from_kuid(&init_user_ns, fattr->cf_uid); in build_sec_desc()
924 gid = from_kgid(&init_user_ns, fattr->cf_gid); in build_sec_desc()
956 set_mode_dacl(idmap, dacl_ptr, fattr); in build_sec_desc()
975 fattr); in build_sec_desc()
1386 struct smb_fattr fattr = {{0}}; in set_info_sec() local
1391 fattr.cf_uid = INVALID_UID; in set_info_sec()
1392 fattr.cf_gid = INVALID_GID; in set_info_sec()
1393 fattr.cf_mode = inode->i_mode; in set_info_sec()
1395 rc = parse_sec_desc(idmap, pntsd, ntsd_len, &fattr); in set_info_sec()
1400 if (!uid_eq(fattr.cf_uid, INVALID_UID)) { in set_info_sec()
1402 newattrs.ia_uid = fattr.cf_uid; in set_info_sec()
1404 if (!gid_eq(fattr.cf_gid, INVALID_GID)) { in set_info_sec()
1406 newattrs.ia_gid = fattr.cf_gid; in set_info_sec()
1409 newattrs.ia_mode = (inode->i_mode & ~0777) | (fattr.cf_mode & 0777); in set_info_sec()
1413 if (IS_ENABLED(CONFIG_FS_POSIX_ACL) && fattr.cf_dacls) { in set_info_sec()
1415 ACL_TYPE_ACCESS, fattr.cf_acls); in set_info_sec()
1420 if (S_ISDIR(inode->i_mode) && fattr.cf_dacls) { in set_info_sec()
1422 ACL_TYPE_DEFAULT, fattr.cf_dacls); in set_info_sec()
1448 posix_acl_release(fattr.cf_acls); in set_info_sec()
1449 posix_acl_release(fattr.cf_dacls); in set_info_sec()