libspl: move SID implementation from libzpool

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Norris <robn@despairlabs.com>
Closes #17861
This commit is contained in:
Rob Norris 2025-10-27 14:37:06 +11:00 committed by Brian Behlendorf
parent faa295b9a6
commit 70a1fadaf2
3 changed files with 48 additions and 17 deletions

View File

@ -29,6 +29,7 @@ libspl_la_SOURCES = \
%D%/procfs_list.c \
%D%/random.c \
%D%/rwlock.c \
%D%/sid.c \
%D%/strlcat.c \
%D%/strlcpy.c \
%D%/taskq.c \

47
lib/libspl/sid.c Normal file
View File

@ -0,0 +1,47 @@
// SPDX-License-Identifier: CDDL-1.0
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or https://opensource.org/licenses/CDDL-1.0.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 2018 by Delphix. All rights reserved.
* Copyright (c) 2016 Actifio, Inc. All rights reserved.
* Copyright (c) 2025, Klara, Inc.
*/
#include <sys/sid.h>
#include <umem.h>
ksiddomain_t *
ksid_lookupdomain(const char *dom)
{
ksiddomain_t *kd;
kd = umem_zalloc(sizeof (ksiddomain_t), UMEM_NOFAIL);
kd->kd_name = strdup(dom);
return (kd);
}
void
ksiddomain_rele(ksiddomain_t *ksid)
{
free(ksid->kd_name);
umem_free(ksid, sizeof (ksiddomain_t));
}

View File

@ -510,23 +510,6 @@ secpolicy_zfs(const cred_t *cr)
return (0);
}
ksiddomain_t *
ksid_lookupdomain(const char *dom)
{
ksiddomain_t *kd;
kd = umem_zalloc(sizeof (ksiddomain_t), UMEM_NOFAIL);
kd->kd_name = spa_strdup(dom);
return (kd);
}
void
ksiddomain_rele(ksiddomain_t *ksid)
{
spa_strfree(ksid->kd_name);
umem_free(ksid, sizeof (ksiddomain_t));
}
zfs_file_t *
zfs_onexit_fd_hold(int fd, minor_t *minorp)
{