Lines Matching refs:state

455 init_state(struct posix_acl_state *state, int cnt)
459 memset(state, 0, sizeof(struct posix_acl_state));
460 state->empty = 1;
468 state->users = kzalloc(alloc, GFP_KERNEL);
469 if (!state->users)
471 state->groups = kzalloc(alloc, GFP_KERNEL);
472 if (!state->groups) {
473 kfree(state->users);
480 free_state(struct posix_acl_state *state) {
481 kfree(state->users);
482 kfree(state->groups);
485 static inline void add_to_mask(struct posix_acl_state *state, struct posix_ace_state *astate)
487 state->mask.allow |= astate->allow;
491 posix_state_to_acl(struct posix_acl_state *state, unsigned int flags)
503 if (state->empty && (flags & NFS4_ACL_TYPE_DEFAULT))
511 if (!state->users->n && !state->groups->n)
514 nace = 4 + state->users->n + state->groups->n;
521 low_mode_from_nfs4(state->owner.allow, &pace->e_perm, flags);
523 for (i=0; i < state->users->n; i++) {
526 low_mode_from_nfs4(state->users->aces[i].perms.allow,
528 pace->e_uid = state->users->aces[i].uid;
529 add_to_mask(state, &state->users->aces[i].perms);
534 low_mode_from_nfs4(state->group.allow, &pace->e_perm, flags);
535 add_to_mask(state, &state->group);
537 for (i=0; i < state->groups->n; i++) {
540 low_mode_from_nfs4(state->groups->aces[i].perms.allow,
542 pace->e_gid = state->groups->aces[i].gid;
543 add_to_mask(state, &state->groups->aces[i].perms);
546 if (state->users->n || state->groups->n) {
549 low_mode_from_nfs4(state->mask.allow, &pace->e_perm, flags);
554 low_mode_from_nfs4(state->other.allow, &pace->e_perm, flags);
571 static int find_uid(struct posix_acl_state *state, kuid_t uid)
573 struct posix_ace_state_array *a = state->users;
582 a->aces[i].perms.allow = state->everyone.allow;
583 a->aces[i].perms.deny = state->everyone.deny;
588 static int find_gid(struct posix_acl_state *state, kgid_t gid)
590 struct posix_ace_state_array *a = state->groups;
599 a->aces[i].perms.allow = state->everyone.allow;
600 a->aces[i].perms.deny = state->everyone.deny;
621 static void process_one_v4_ace(struct posix_acl_state *state,
627 state->empty = 0;
632 allow_bits(&state->owner, mask);
634 deny_bits(&state->owner, mask);
638 i = find_uid(state, ace->who_uid);
640 allow_bits(&state->users->aces[i].perms, mask);
642 deny_bits(&state->users->aces[i].perms, mask);
643 mask = state->users->aces[i].perms.deny;
644 deny_bits(&state->owner, mask);
649 allow_bits(&state->group, mask);
651 deny_bits(&state->group, mask);
652 mask = state->group.deny;
653 deny_bits(&state->owner, mask);
654 deny_bits(&state->everyone, mask);
655 deny_bits_array(state->users, mask);
656 deny_bits_array(state->groups, mask);
660 i = find_gid(state, ace->who_gid);
662 allow_bits(&state->groups->aces[i].perms, mask);
664 deny_bits(&state->groups->aces[i].perms, mask);
665 mask = state->groups->aces[i].perms.deny;
666 deny_bits(&state->owner, mask);
667 deny_bits(&state->group, mask);
668 deny_bits(&state->everyone, mask);
669 deny_bits_array(state->users, mask);
670 deny_bits_array(state->groups, mask);
675 allow_bits(&state->owner, mask);
676 allow_bits(&state->group, mask);
677 allow_bits(&state->other, mask);
678 allow_bits(&state->everyone, mask);
679 allow_bits_array(state->users, mask);
680 allow_bits_array(state->groups, mask);
682 deny_bits(&state->owner, mask);
683 deny_bits(&state->group, mask);
684 deny_bits(&state->other, mask);
685 deny_bits(&state->everyone, mask);
686 deny_bits_array(state->users, mask);
687 deny_bits_array(state->groups, mask);