libzfs: share_proto: constify, staticify

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #12968
This commit is contained in:
наб 2022-01-12 17:36:36 +01:00 committed by Brian Behlendorf
parent bde0f7d4c6
commit 0481eabfa1
3 changed files with 20 additions and 22 deletions

View File

@ -345,7 +345,7 @@ changelist_rename(prop_changelist_t *clp, const char *src, const char *dst)
* unshare all the datasets in the list. * unshare all the datasets in the list.
*/ */
int int
changelist_unshare(prop_changelist_t *clp, zfs_share_proto_t *proto) changelist_unshare(prop_changelist_t *clp, const zfs_share_proto_t *proto)
{ {
prop_changenode_t *cn; prop_changenode_t *cn;
uu_avl_walk_t *walk; uu_avl_walk_t *walk;

View File

@ -189,7 +189,7 @@ extern void changelist_remove(prop_changelist_t *, const char *);
extern void changelist_free(prop_changelist_t *); extern void changelist_free(prop_changelist_t *);
extern prop_changelist_t *changelist_gather(zfs_handle_t *, zfs_prop_t, int, extern prop_changelist_t *changelist_gather(zfs_handle_t *, zfs_prop_t, int,
int); int);
extern int changelist_unshare(prop_changelist_t *, zfs_share_proto_t *); extern int changelist_unshare(prop_changelist_t *, const zfs_share_proto_t *);
extern int changelist_haszonedchild(prop_changelist_t *); extern int changelist_haszonedchild(prop_changelist_t *);
extern void remove_mountpoint(zfs_handle_t *); extern void remove_mountpoint(zfs_handle_t *);
@ -240,14 +240,13 @@ typedef struct differ_info {
int datafd; int datafd;
} differ_info_t; } differ_info_t;
extern proto_table_t proto_table[PROTO_END];
extern int do_mount(zfs_handle_t *zhp, const char *mntpt, char *opts, extern int do_mount(zfs_handle_t *zhp, const char *mntpt, char *opts,
int flags); int flags);
extern int do_unmount(zfs_handle_t *zhp, const char *mntpt, int flags); extern int do_unmount(zfs_handle_t *zhp, const char *mntpt, int flags);
extern int zfs_mount_delegation_check(void); extern int zfs_mount_delegation_check(void);
extern int zfs_share_proto(zfs_handle_t *zhp, zfs_share_proto_t *proto); extern int zfs_share_proto(zfs_handle_t *zhp, const zfs_share_proto_t *proto);
extern int zfs_unshare_proto(zfs_handle_t *, const char *, zfs_share_proto_t *); extern int zfs_unshare_proto(zfs_handle_t *, const char *,
const zfs_share_proto_t *);
extern int unshare_one(libzfs_handle_t *hdl, const char *name, extern int unshare_one(libzfs_handle_t *hdl, const char *name,
const char *mountpoint, zfs_share_proto_t proto); const char *mountpoint, zfs_share_proto_t proto);
extern boolean_t zfs_is_mountable(zfs_handle_t *zhp, char *buf, size_t buflen, extern boolean_t zfs_is_mountable(zfs_handle_t *zhp, char *buf, size_t buflen,
@ -259,7 +258,7 @@ extern int zpool_relabel_disk(libzfs_handle_t *hdl, const char *path,
const char *msg); const char *msg);
extern int find_shares_object(differ_info_t *di); extern int find_shares_object(differ_info_t *di);
extern void libzfs_set_pipe_max(int infd); extern void libzfs_set_pipe_max(int infd);
extern void zfs_commit_proto(zfs_share_proto_t *); extern void zfs_commit_proto(const zfs_share_proto_t *);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -102,21 +102,21 @@ static zfs_share_type_t zfs_is_shared_proto(zfs_handle_t *, char **,
* The share protocols table must be in the same order as the zfs_share_proto_t * The share protocols table must be in the same order as the zfs_share_proto_t
* enum in libzfs_impl.h * enum in libzfs_impl.h
*/ */
proto_table_t proto_table[PROTO_END] = { static const proto_table_t proto_table[PROTO_END] = {
{ZFS_PROP_SHARENFS, "nfs", EZFS_SHARENFSFAILED, EZFS_UNSHARENFSFAILED}, {ZFS_PROP_SHARENFS, "nfs", EZFS_SHARENFSFAILED, EZFS_UNSHARENFSFAILED},
{ZFS_PROP_SHARESMB, "smb", EZFS_SHARESMBFAILED, EZFS_UNSHARESMBFAILED}, {ZFS_PROP_SHARESMB, "smb", EZFS_SHARESMBFAILED, EZFS_UNSHARESMBFAILED},
}; };
static zfs_share_proto_t nfs_only[] = { static const zfs_share_proto_t nfs_only[] = {
PROTO_NFS, PROTO_NFS,
PROTO_END PROTO_END
}; };
static zfs_share_proto_t smb_only[] = { static const zfs_share_proto_t smb_only[] = {
PROTO_SMB, PROTO_SMB,
PROTO_END PROTO_END
}; };
static zfs_share_proto_t share_all_proto[] = { static const zfs_share_proto_t share_all_proto[] = {
PROTO_NFS, PROTO_NFS,
PROTO_SMB, PROTO_SMB,
PROTO_END PROTO_END
@ -706,7 +706,7 @@ boolean_t
zfs_is_shared(zfs_handle_t *zhp) zfs_is_shared(zfs_handle_t *zhp)
{ {
zfs_share_type_t rc = 0; zfs_share_type_t rc = 0;
zfs_share_proto_t *curr_proto; const zfs_share_proto_t *curr_proto;
if (ZFS_IS_VOLUME(zhp)) if (ZFS_IS_VOLUME(zhp))
return (B_FALSE); return (B_FALSE);
@ -762,12 +762,12 @@ is_shared(const char *mountpoint, zfs_share_proto_t proto)
* on "libshare" to do the dirty work for us. * on "libshare" to do the dirty work for us.
*/ */
int int
zfs_share_proto(zfs_handle_t *zhp, zfs_share_proto_t *proto) zfs_share_proto(zfs_handle_t *zhp, const zfs_share_proto_t *proto)
{ {
char mountpoint[ZFS_MAXPROPLEN]; char mountpoint[ZFS_MAXPROPLEN];
char shareopts[ZFS_MAXPROPLEN]; char shareopts[ZFS_MAXPROPLEN];
char sourcestr[ZFS_MAXPROPLEN]; char sourcestr[ZFS_MAXPROPLEN];
zfs_share_proto_t *curr_proto; const zfs_share_proto_t *curr_proto;
zprop_source_t sourcetype; zprop_source_t sourcetype;
int err = 0; int err = 0;
@ -872,13 +872,12 @@ zfs_parse_options(char *options, zfs_share_proto_t proto)
} }
void void
zfs_commit_proto(zfs_share_proto_t *proto) zfs_commit_proto(const zfs_share_proto_t *proto)
{ {
zfs_share_proto_t *curr_proto; const zfs_share_proto_t *curr_proto;
for (curr_proto = proto; *curr_proto != PROTO_END; curr_proto++) { for (curr_proto = proto; *curr_proto != PROTO_END; curr_proto++)
sa_commit_shares(proto_table[*curr_proto].p_name); sa_commit_shares(proto_table[*curr_proto].p_name);
} }
}
void void
zfs_commit_nfs_shares(void) zfs_commit_nfs_shares(void)
@ -932,7 +931,7 @@ zfs_shareall(zfs_handle_t *zhp)
*/ */
int int
zfs_unshare_proto(zfs_handle_t *zhp, const char *mountpoint, zfs_unshare_proto(zfs_handle_t *zhp, const char *mountpoint,
zfs_share_proto_t *proto) const zfs_share_proto_t *proto)
{ {
libzfs_handle_t *hdl = zhp->zfs_hdl; libzfs_handle_t *hdl = zhp->zfs_hdl;
struct mnttab entry; struct mnttab entry;
@ -944,7 +943,7 @@ zfs_unshare_proto(zfs_handle_t *zhp, const char *mountpoint,
if (mountpoint != NULL || ((zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM) && if (mountpoint != NULL || ((zfs_get_type(zhp) == ZFS_TYPE_FILESYSTEM) &&
libzfs_mnttab_find(hdl, zfs_get_name(zhp), &entry) == 0)) { libzfs_mnttab_find(hdl, zfs_get_name(zhp), &entry) == 0)) {
zfs_share_proto_t *curr_proto; const zfs_share_proto_t *curr_proto;
if (mountpoint == NULL) if (mountpoint == NULL)
mntpt = zfs_strdup(zhp->zfs_hdl, entry.mnt_mountp); mntpt = zfs_strdup(zhp->zfs_hdl, entry.mnt_mountp);
@ -984,7 +983,7 @@ zfs_unshare_smb(zfs_handle_t *zhp, const char *mountpoint)
* Same as zfs_unmountall(), but for NFS and SMB unshares. * Same as zfs_unmountall(), but for NFS and SMB unshares.
*/ */
static int static int
zfs_unshareall_proto(zfs_handle_t *zhp, zfs_share_proto_t *proto) zfs_unshareall_proto(zfs_handle_t *zhp, const zfs_share_proto_t *proto)
{ {
prop_changelist_t *clp; prop_changelist_t *clp;
int ret; int ret;
@ -1616,7 +1615,7 @@ zpool_disable_datasets(zpool_handle_t *zhp, boolean_t force)
* Walk through and first unshare everything. * Walk through and first unshare everything.
*/ */
for (i = 0; i < used; i++) { for (i = 0; i < used; i++) {
zfs_share_proto_t *curr_proto; const zfs_share_proto_t *curr_proto;
for (curr_proto = share_all_proto; *curr_proto != PROTO_END; for (curr_proto = share_all_proto; *curr_proto != PROTO_END;
curr_proto++) { curr_proto++) {
if (is_shared(sets[i].mountpoint, *curr_proto) && if (is_shared(sets[i].mountpoint, *curr_proto) &&