Lines Matching defs:fattr

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