Lines Matching refs:acl
296 static int ndr_encode_posix_acl_entry(struct ndr *n, struct xattr_smb_acl *acl) in ndr_encode_posix_acl_entry() argument
300 ret = ndr_write_int32(n, acl->count); in ndr_encode_posix_acl_entry()
305 ret = ndr_write_int32(n, acl->count); in ndr_encode_posix_acl_entry()
313 for (i = 0; i < acl->count; i++) { in ndr_encode_posix_acl_entry()
315 ret = ndr_write_int16(n, acl->entries[i].type); in ndr_encode_posix_acl_entry()
319 ret = ndr_write_int16(n, acl->entries[i].type); in ndr_encode_posix_acl_entry()
323 if (acl->entries[i].type == SMB_ACL_USER) { in ndr_encode_posix_acl_entry()
325 ret = ndr_write_int64(n, acl->entries[i].uid); in ndr_encode_posix_acl_entry()
326 } else if (acl->entries[i].type == SMB_ACL_GROUP) { in ndr_encode_posix_acl_entry()
328 ret = ndr_write_int64(n, acl->entries[i].gid); in ndr_encode_posix_acl_entry()
334 ret = ndr_write_int32(n, acl->entries[i].perm); in ndr_encode_posix_acl_entry()
343 struct xattr_smb_acl *acl, in ndr_encode_posix_acl() argument
357 if (acl) { in ndr_encode_posix_acl()
389 if (acl) { in ndr_encode_posix_acl()
390 ret = ndr_encode_posix_acl_entry(n, acl); in ndr_encode_posix_acl()
397 int ndr_encode_v4_ntacl(struct ndr *n, struct xattr_ntacl *acl) in ndr_encode_v4_ntacl() argument
408 ret = ndr_write_int16(n, acl->version); in ndr_encode_v4_ntacl()
412 ret = ndr_write_int32(n, acl->version); in ndr_encode_v4_ntacl()
425 ret = ndr_write_int16(n, acl->hash_type); in ndr_encode_v4_ntacl()
429 ret = ndr_write_bytes(n, acl->hash, XATTR_SD_HASH_SIZE); in ndr_encode_v4_ntacl()
433 ret = ndr_write_bytes(n, acl->desc, acl->desc_len); in ndr_encode_v4_ntacl()
437 ret = ndr_write_int64(n, acl->current_time); in ndr_encode_v4_ntacl()
441 ret = ndr_write_bytes(n, acl->posix_acl_hash, XATTR_SD_HASH_SIZE); in ndr_encode_v4_ntacl()
446 ret = ndr_write_bytes(n, acl->sd_buf, acl->sd_size); in ndr_encode_v4_ntacl()
450 int ndr_decode_v4_ntacl(struct ndr *n, struct xattr_ntacl *acl) in ndr_decode_v4_ntacl() argument
456 ret = ndr_read_int16(n, &acl->version); in ndr_decode_v4_ntacl()
459 if (acl->version != 4) { in ndr_decode_v4_ntacl()
460 ksmbd_debug(VFS, "v%d version is not supported\n", acl->version); in ndr_decode_v4_ntacl()
467 if (acl->version != version2) { in ndr_decode_v4_ntacl()
469 acl->version, version2); in ndr_decode_v4_ntacl()
483 ret = ndr_read_int16(n, &acl->hash_type); in ndr_decode_v4_ntacl()
487 ret = ndr_read_bytes(n, acl->hash, XATTR_SD_HASH_SIZE); in ndr_decode_v4_ntacl()
491 ndr_read_bytes(n, acl->desc, 10); in ndr_decode_v4_ntacl()
492 if (strncmp(acl->desc, "posix_acl", 9)) { in ndr_decode_v4_ntacl()
493 pr_err("Invalid acl description : %s\n", acl->desc); in ndr_decode_v4_ntacl()
503 ret = ndr_read_bytes(n, acl->posix_acl_hash, XATTR_SD_HASH_SIZE); in ndr_decode_v4_ntacl()
507 acl->sd_size = n->length - n->offset; in ndr_decode_v4_ntacl()
508 acl->sd_buf = kzalloc(acl->sd_size, GFP_KERNEL); in ndr_decode_v4_ntacl()
509 if (!acl->sd_buf) in ndr_decode_v4_ntacl()
512 ret = ndr_read_bytes(n, acl->sd_buf, acl->sd_size); in ndr_decode_v4_ntacl()