summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason King <jason.king@joyent.com>2020-03-31 20:06:41 +0000
committerJason King <jason.king@joyent.com>2020-04-09 18:44:26 +0000
commit61da12bcf29b924ca4fbfca6a75614f8f4c2e8ad (patch)
treedc844f175421d22a513b8298b18f5fd5b1be64e0
parentb7ce222709d1de90478d1467e264eef0ec53e875 (diff)
downloadillumos-joyent-61da12bcf29b924ca4fbfca6a75614f8f4c2e8ad.tar.gz
More bugfixes
-rw-r--r--usr/src/uts/common/os/dkioc_free_util.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/usr/src/uts/common/os/dkioc_free_util.c b/usr/src/uts/common/os/dkioc_free_util.c
index 1378eed2bf..f4da8538bf 100644
--- a/usr/src/uts/common/os/dkioc_free_util.c
+++ b/usr/src/uts/common/os/dkioc_free_util.c
@@ -193,12 +193,12 @@ dfl_iter(const dkioc_free_list_t *dfl, const dkioc_free_align_t *dfa,
/*
* If a limit on the total number of blocks is given, it must be
* greater than the offset alignment. E.g. if the block size is 512
- * bytes, the offset alignment is 4096 (8 blocks), the device must
+ * bytes and the offset alignment is 4096 (8 blocks), the device must
* allow extent sizes at least 8 blocks long (otherwise it is not
* possible to free the entire device).
*/
if (dfa->dfa_max_blocks > 0 &&
- (dfa->dfa_max_blocks >> bshift) < dfa->dfa_align)
+ (dfa->dfa_max_blocks << bshift) < dfa->dfa_align)
return (SET_ERROR(EINVAL));
/*
@@ -230,12 +230,11 @@ dfl_iter(const dkioc_free_list_t *dfl, const dkioc_free_align_t *dfa,
if (n_exts == 0)
return (0);
- n_exts = earg.ea_ext_cnt;
exts = kmem_zalloc(n_exts * sizeof (*exts), kmflag);
if (exts == NULL)
return (SET_ERROR(ENOMEM));
- earg.ea_ext_cnt = n_exts;
+ earg.ea_ext_cnt = 0;
earg.ea_fn = func;
earg.ea_arg = arg;
earg.ea_exts = exts;
@@ -318,7 +317,8 @@ process_exts(const dkioc_free_list_ext_t *ext, ext_iter_flags_t flags,
args->ea_ext_cnt = 0;
}
- args->ea_exts[args->ea_ext_cnt++] = *ext;
+ if (ext != NULL)
+ args->ea_exts[args->ea_ext_cnt++] = *ext;
return (0);
}
@@ -427,7 +427,7 @@ ext_iter(const dkioc_free_list_t *dfl, const dkioc_free_align_t *dfa,
length -= blk_ext.dfle_length;
start += blk_ext.dfle_length;
- flags &= ~(EIF_FIRST);
+ flags = EIF_NONE;
}
}