Skip to content

Commit

Permalink
Correct compilation errors reported by GCC 10/11
Browse files Browse the repository at this point in the history
New `zfs_type_t` value `ZFS_TYPE_INVALID` is introduced.
Variable initialization is now possible to make GCC happy.

Close #12167.

Signed-off-by: szubersk <[email protected]>
  • Loading branch information
szubersk committed Feb 14, 2022
1 parent 9f734e8 commit 6c4ccfb
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 18 deletions.
8 changes: 3 additions & 5 deletions cmd/zfs/zfs_iter.c
Original file line number Diff line number Diff line change
Expand Up @@ -453,23 +453,21 @@ zfs_for_each(int argc, char **argv, int flags, zfs_type_t types,
cb.cb_flags |= ZFS_ITER_RECURSE;
ret = zfs_iter_root(g_zfs, zfs_callback, &cb);
} else {
int i;
zfs_handle_t *zhp;
zfs_type_t argtype;
zfs_handle_t *zhp = NULL;
zfs_type_t argtype = types;

/*
* If we're recursive, then we always allow filesystems as
* arguments. If we also are interested in snapshots or
* bookmarks, then we can take volumes as well.
*/
argtype = types;
if (flags & ZFS_ITER_RECURSE) {
argtype |= ZFS_TYPE_FILESYSTEM;
if (types & (ZFS_TYPE_SNAPSHOT | ZFS_TYPE_BOOKMARK))
argtype |= ZFS_TYPE_VOLUME;
}

for (i = 0; i < argc; i++) {
for (int i = 0; i < argc; i++) {
if (flags & ZFS_ITER_ARGS_CAN_BE_PATHS) {
zhp = zfs_path_to_zhandle(g_zfs, argv[i],
argtype);
Expand Down
2 changes: 1 addition & 1 deletion cmd/zpool_influxdb/zpool_influxdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ get_vdev_name(nvlist_t *nvroot, const char *parent_name)
vdev_type);
} else {
(void) snprintf(vdev_name, sizeof (vdev_name),
"%s/%s-%llu",
"%.220s/%s-%llu",
parent_name, vdev_type, (u_longlong_t)vdev_id);
}
return (vdev_name);
Expand Down
1 change: 1 addition & 0 deletions include/sys/fs/zfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ extern "C" {
* combined into masks that can be passed to various functions.
*/
typedef enum {
ZFS_TYPE_INVALID = 0,
ZFS_TYPE_FILESYSTEM = (1 << 0),
ZFS_TYPE_SNAPSHOT = (1 << 1),
ZFS_TYPE_VOLUME = (1 << 2),
Expand Down
7 changes: 2 additions & 5 deletions lib/libzfs/libzfs_dataset.c
Original file line number Diff line number Diff line change
Expand Up @@ -3967,13 +3967,10 @@ zfs_clone(zfs_handle_t *zhp, const char *target, nvlist_t *props)
/* do the clone */

if (props) {
zfs_type_t type;
zfs_type_t type = ZFS_TYPE_FILESYSTEM;

if (ZFS_IS_VOLUME(zhp)) {
if (ZFS_IS_VOLUME(zhp))
type = ZFS_TYPE_VOLUME;
} else {
type = ZFS_TYPE_FILESYSTEM;
}
if ((props = zfs_valid_proplist(hdl, type, props, zoned,
zhp, zhp->zpool_hdl, B_TRUE, errbuf)) == NULL)
return (-1);
Expand Down
2 changes: 1 addition & 1 deletion lib/libzfs/libzfs_sendrecv.c
Original file line number Diff line number Diff line change
Expand Up @@ -4194,7 +4194,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
nvlist_t *rcvprops = NULL; /* props received from the send stream */
nvlist_t *oxprops = NULL; /* override (-o) and exclude (-x) props */
nvlist_t *origprops = NULL; /* original props (if destination exists) */
zfs_type_t type;
zfs_type_t type = ZFS_TYPE_INVALID;
boolean_t toplevel = B_FALSE;
boolean_t zoned = B_FALSE;
boolean_t hastoken = B_FALSE;
Expand Down
11 changes: 5 additions & 6 deletions module/zfs/zcp_get.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,8 @@ get_objset_type(dsl_dataset_t *ds, zfs_type_t *type)
static int
get_objset_type_name(dsl_dataset_t *ds, char *str)
{
int error;
zfs_type_t type;
error = get_objset_type(ds, &type);
zfs_type_t type = ZFS_TYPE_INVALID;
int error = get_objset_type(ds, &type);
if (error != 0)
return (error);
switch (type) {
Expand Down Expand Up @@ -230,7 +229,7 @@ get_special_prop(lua_State *state, dsl_dataset_t *ds, const char *dsname,
char *strval = kmem_alloc(ZAP_MAXVALUELEN, KM_SLEEP);
char setpoint[ZFS_MAX_DATASET_NAME_LEN] =
"Internal error - setpoint not determined";
zfs_type_t ds_type;
zfs_type_t ds_type = ZFS_TYPE_INVALID;
zprop_type_t prop_type = zfs_prop_get_type(zfs_prop);
(void) get_objset_type(ds, &ds_type);

Expand Down Expand Up @@ -497,8 +496,8 @@ get_zap_prop(lua_State *state, dsl_dataset_t *ds, zfs_prop_t zfs_prop)
boolean_t
prop_valid_for_ds(dsl_dataset_t *ds, zfs_prop_t zfs_prop)
{
int error;
zfs_type_t zfs_type;
int error = 0;
zfs_type_t zfs_type = ZFS_TYPE_INVALID;

/* properties not supported */
if ((zfs_prop == ZFS_PROP_ISCSIOPTIONS) ||
Expand Down

0 comments on commit 6c4ccfb

Please sign in to comment.