Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zfs-2.1.6 patchset #13886

Merged
merged 83 commits into from
Oct 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
3920d7f
Scrub mirror children without BPs
behlendorf Jul 14, 2022
5b860ae
Remove refcount from spa_config_*()
amotin Jul 1, 2021
415882d
Avoid small buffer copying on write
amotin Jul 27, 2021
72a4709
spa.c: Replace VERIFY(nvlist_*(...) == 0) with fnvlist_* (#12678)
allanjude Oct 26, 2021
fdb80a2
Add more control/visibility to spa_load_verify().
amotin Feb 4, 2022
dd9c110
Improve log spacemap load time
amotin Apr 26, 2022
6e1e90d
Improve mg_aliquot math
amotin May 4, 2022
884364e
More speculative prefetcher improvements
amotin May 25, 2022
813e15f
AVL: Remove obsolete branching optimizations
amotin Jun 9, 2022
916d9de
Reduce ZIO io_lock contention on sorted scrub
amotin Jun 15, 2022
881249d
FreeBSD: Improve crypto_dispatch() handling
amotin Jun 17, 2022
a861aa2
Several sorted scrub optimizations
amotin Jun 24, 2022
dc91a6a
Several B-tree optimizations
amotin Jun 24, 2022
5e06805
Avoid two 64-bit divisions per scanned block
amotin Jun 27, 2022
4b8f160
Fix and disable blocks statistics during scrub
amotin Jun 28, 2022
03e33b2
Avoid memory copies during mirror scrub
amotin Jul 5, 2022
bbb50e6
Avoid memory copy when verifying raidz/draid parity
amotin Jul 5, 2022
15868d3
Fix scrub resume from newly created hole.
amotin Jul 8, 2022
4b09770
Remove sha1 hashing from OpenZFS, it's not used anywhere.
mcmilk Jan 3, 2022
37430e8
libtpool: -Wno-clobbered
nabijaczleweli Feb 16, 2022
2d235d5
config: prune unused -Wno-bool-compare checks
nabijaczleweli Feb 16, 2022
d7a8c57
Silence -Winfinite-recursion warning in luaD_throw()
behlendorf Jun 20, 2022
ef0e506
Fix -Wattribute-warning in zfs_log_xvattr()
behlendorf Jun 20, 2022
c771583
Fix -Wattribute-warning in edonr
behlendorf Jun 20, 2022
087f5de
Fix -Wattribute-warning in dsl layer
behlendorf Jun 20, 2022
6a81173
Fix -Wuse-after-free warning in dbuf_issue_final_prefetch_done()
behlendorf Jun 20, 2022
60f2cfd
Fix -Wuse-after-free warning in dbuf_destroy()
behlendorf Jun 20, 2022
d483ef3
Fix -Wformat-truncation warning in upgrade_set_callback()
behlendorf Jun 20, 2022
d2ff219
Fix -Wformat-overflow warning in zfs_project_handle_dir()
behlendorf Jun 20, 2022
b9d862f
ICP: Add missing stack frame info to SHA asm files
AttilaFueloep Apr 16, 2021
69ad0bd
Fix objtool: missing int3 after ret warning
behlendorf Jun 20, 2022
98315be
ZTS: Fix io_uring support check
behlendorf Jul 26, 2022
17512ab
module: lua: ldo: fix pragma name
nabijaczleweli Jun 28, 2022
5c56591
Handle partial reads in zfs_read
rincebrain Sep 20, 2021
035ee62
Revert behavior of 59eab109 on not-Linux
rincebrain Nov 4, 2021
b06aff1
Fix checkstyle warning: E275 missing whitespace after keyword
mcmilk Aug 1, 2022
fcbddc7
Fix problem with zdb -d
PaulZ-98 Aug 3, 2022
57e1052
Linux 5.19 compat: META
behlendorf Aug 2, 2022
58571ba
Linux 5.20 compat: bdevname()
behlendorf Aug 3, 2022
4063d7b
Linux 5.20 compat: blk_cleanup_disk()
behlendorf Aug 4, 2022
e0dbab1
Linux 6.0 compat: register_shrinker() now var-arg
ckane Aug 8, 2022
db5fd16
Fix problem with zdb_objset_id test.
PaulZ-98 Aug 9, 2022
533779f
arcstat: fix -p option
r-ricci Aug 12, 2022
979fd5a
contrib: dracut: zfs-snapshot-bootfs: exit status fix
gregory-lee-bartholomew Aug 12, 2022
8131a96
Fix use-after-free in btree code
ryao Sep 12, 2022
e1b49e3
rpm: Use the correct version-release information in dependencies
Conan-Kudo May 24, 2022
f48d9b4
rpm: Silence "unversioned Obsoletes" warnings on EL 9
tonyhutter Jul 11, 2022
acd7464
zed: Ignore false 'atari' partitions in autoreplace
tonyhutter Jul 11, 2022
65f8f92
zed: Look for NVMe DEVPATH if no ID_BUS
tonyhutter Jul 14, 2022
b1be0a5
ZTS: Fix zpool_expand_001_pos
tonyhutter Aug 9, 2022
15b64fb
Importing from cachefile can trip assertion
grwilson Aug 26, 2022
b6ebf27
Apply arc_shrink_shift to ARC above arc_c_min
amotin Sep 2, 2022
78206a2
FreeBSD: Mark ZFS_MODULE_PARAM_CALL as MPSAFE
Aug 9, 2022
aa9e887
Fix column width in 'zpool iostat -v' and 'zpool list -v'
npc203 Sep 6, 2022
2010c18
Add xattr_handler support for Android kernels
hufman Sep 6, 2022
7bbfac9
zed: Fix config_sync autoexpand flood
tonyhutter Sep 8, 2022
c8f795b
config: check for parallel(1), use it for cstyle
nabijaczleweli Dec 23, 2021
8bd3dca
Introduce a tunable to exclude special class buffers from L2ARC
gamanakis Nov 11, 2021
03fa3ef
Add physical device size to SIZE column in 'zpool list -v'
akashb-22 Mar 9, 2022
3f7c174
vdev_draid_lookup_map() should not iterate outside draid_maps
ryao Sep 12, 2022
cde04ba
make DMU_OT_IS_METADATA and DMU_OT_IS_ENCRYPTED return B_TRUE or B_FALSE
problame Sep 8, 2022
a5b0d42
zfs recv hangs if max recordsize is less than received recordsize
ixhamza Sep 16, 2022
faa1e40
include: move SPA_MINBLOCKSHIFT and zio_encrypt to sys/fs/zfs.h
nabijaczleweli May 27, 2021
d5105f0
zfs recv hangs if max recordsize is less than received recordsize
ixhamza Sep 16, 2022
035e52f
Delay ZFS_PROP_SHARESMB property to handle it for encrypted raw receive
ixhamza Sep 20, 2022
5096ed3
Fix incorrect size given to bqueue_enqueue() call in dmu_redact.c
ryao Sep 15, 2022
b66f8d3
Add zfs_btree_verify_intensity kernel module parameter
ryao Sep 15, 2022
91e0215
Revert "Reduce dbuf_find() lock contention"
behlendorf Sep 19, 2022
999830a
Optimize txg_kick() process (#12274)
jxdking Jul 1, 2021
d05f303
Add Module Parameter Regarding Log Size Limit
jxdking Jul 20, 2021
ebbbe01
Ask libtool to stop hiding some errors
rincebrain Mar 31, 2022
44cec45
Improve too large physical ashift handling
amotin Sep 8, 2022
33223cb
Refactor Log Size Limit
amotin May 24, 2022
835e036
Linux: Fix uninitialized variable usage in zio_do_crypt_data()
ryao Sep 26, 2022
c973929
LUA: Fix CVE-2014-5461
ryao Sep 27, 2022
8dcd6af
FreeBSD: Ignore symlink to i386 includes
Aug 2, 2022
55816c6
FreeBSD: Fix integer conversion for vnlru_free{,_vfsops}()
ryao Sep 14, 2022
2c8e3e4
FreeBSD: stop passing LK_INTERLOCK to VOP_LOCK
mjguzik Sep 20, 2022
eec942c
FreeBSD: catch up to 1400068
mjguzik Sep 20, 2022
63d4838
FreeBSD: handle V_PCATCH
mjguzik Sep 20, 2022
a2705b1
zpool: Don't print "repairing" on force faulted drives
tonyhutter Sep 23, 2022
566e908
Fix bad free in skein code
ryao Sep 27, 2022
6a6bd49
Tag zfs-2.1.6
tonyhutter Sep 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions META
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
Meta: 1
Name: zfs
Branch: 1.0
Version: 2.1.5
Version: 2.1.6
Release: 1
Release-Tags: relext
License: CDDL
Author: OpenZFS
Linux-Maximum: 5.18
Linux-Maximum: 5.19
Linux-Minimum: 3.10
7 changes: 6 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ commitcheck:
${top_srcdir}/scripts/commitcheck.sh; \
fi

if HAVE_PARALLEL
cstyle_line = -print0 | parallel -X0 ${top_srcdir}/scripts/cstyle.pl -cpP {}
else
cstyle_line = -exec ${top_srcdir}/scripts/cstyle.pl -cpP {} +
endif
PHONY += cstyle
cstyle:
@find ${top_srcdir} -name build -prune \
Expand All @@ -122,7 +127,7 @@ cstyle:
! -name 'opt_global.h' ! -name '*_if*.h' \
! -name 'zstd_compat_wrapper.h' \
! -path './module/zstd/lib/*' \
-exec ${top_srcdir}/scripts/cstyle.pl -cpP {} \+
$(cstyle_line)

filter_executable = -exec test -x '{}' \; -print

Expand Down
2 changes: 1 addition & 1 deletion cmd/arcstat/arcstat.in
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ def print_values():
if pretty_print:
fmt = lambda col: prettynum(cols[col][0], cols[col][1], v[col])
else:
fmt = lambda col: v[col]
fmt = lambda col: str(v[col])

sys.stdout.write(sep.join(fmt(col) for col in hdr))
sys.stdout.write("\n")
Expand Down
113 changes: 83 additions & 30 deletions cmd/zdb/zdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ extern int zfs_vdev_async_read_max_active;
extern boolean_t spa_load_verify_dryrun;
extern boolean_t spa_mode_readable_spacemaps;
extern int zfs_reconstruct_indirect_combinations_max;
extern int zfs_btree_verify_intensity;
extern uint_t zfs_btree_verify_intensity;

static const char cmdname[] = "zdb";
uint8_t dump_opt[256];
Expand Down Expand Up @@ -8272,6 +8272,23 @@ zdb_embedded_block(char *thing)
free(buf);
}

/* check for valid hex or decimal numeric string */
static boolean_t
zdb_numeric(char *str)
{
int i = 0;

if (strlen(str) == 0)
return (B_FALSE);
if (strncmp(str, "0x", 2) == 0 || strncmp(str, "0X", 2) == 0)
i = 2;
for (; i < strlen(str); i++) {
if (!isxdigit(str[i]))
return (B_FALSE);
}
return (B_TRUE);
}

int
main(int argc, char **argv)
{
Expand Down Expand Up @@ -8317,7 +8334,7 @@ main(int argc, char **argv)
zfs_btree_verify_intensity = 3;

while ((c = getopt(argc, argv,
"AbcCdDeEFGhiI:klLmMo:Op:PqrRsSt:uU:vVx:XYyZ")) != -1) {
"AbcCdDeEFGhiI:klLmMNo:Op:PqrRsSt:uU:vVx:XYyZ")) != -1) {
switch (c) {
case 'b':
case 'c':
Expand All @@ -8331,6 +8348,7 @@ main(int argc, char **argv)
case 'l':
case 'm':
case 'M':
case 'N':
case 'O':
case 'r':
case 'R':
Expand Down Expand Up @@ -8422,31 +8440,6 @@ main(int argc, char **argv)
(void) fprintf(stderr, "-p option requires use of -e\n");
usage();
}
if (dump_opt['d'] || dump_opt['r']) {
/* <pool>[/<dataset | objset id> is accepted */
if (argv[2] && (objset_str = strchr(argv[2], '/')) != NULL &&
objset_str++ != NULL) {
char *endptr;
errno = 0;
objset_id = strtoull(objset_str, &endptr, 0);
/* dataset 0 is the same as opening the pool */
if (errno == 0 && endptr != objset_str &&
objset_id != 0) {
target_is_spa = B_FALSE;
dataset_lookup = B_TRUE;
} else if (objset_id != 0) {
printf("failed to open objset %s "
"%llu %s", objset_str,
(u_longlong_t)objset_id,
strerror(errno));
exit(1);
}
/* normal dataset name not an objset ID */
if (endptr == objset_str) {
objset_id = -1;
}
}
}

#if defined(_LP64)
/*
Expand Down Expand Up @@ -8486,7 +8479,7 @@ main(int argc, char **argv)
verbose = MAX(verbose, 1);

for (c = 0; c < 256; c++) {
if (dump_all && strchr("AeEFklLOPrRSXy", c) == NULL)
if (dump_all && strchr("AeEFklLNOPrRSXy", c) == NULL)
dump_opt[c] = 1;
if (dump_opt[c])
dump_opt[c] += verbose;
Expand Down Expand Up @@ -8525,6 +8518,7 @@ main(int argc, char **argv)
return (dump_path(argv[0], argv[1], NULL));
}
if (dump_opt['r']) {
target_is_spa = B_FALSE;
if (argc != 3)
usage();
dump_opt['v'] = verbose;
Expand All @@ -8535,6 +8529,10 @@ main(int argc, char **argv)
rewind = ZPOOL_DO_REWIND |
(dump_opt['X'] ? ZPOOL_EXTREME_REWIND : 0);

/* -N implies -d */
if (dump_opt['N'] && dump_opt['d'] == 0)
dump_opt['d'] = dump_opt['N'];

if (nvlist_alloc(&policy, NV_UNIQUE_NAME_TYPE, 0) != 0 ||
nvlist_add_uint64(policy, ZPOOL_LOAD_REQUEST_TXG, max_txg) != 0 ||
nvlist_add_uint32(policy, ZPOOL_LOAD_REWIND_POLICY, rewind) != 0)
Expand All @@ -8553,6 +8551,34 @@ main(int argc, char **argv)
targetlen = strlen(target);
if (targetlen && target[targetlen - 1] == '/')
target[targetlen - 1] = '\0';
/*
* See if an objset ID was supplied (-d <pool>/<objset ID>).
* To disambiguate tank/100, consider the 100 as objsetID
* if -N was given, otherwise 100 is an objsetID iff
* tank/100 as a named dataset fails on lookup.
*/
objset_str = strchr(target, '/');
if (objset_str && strlen(objset_str) > 1 &&
zdb_numeric(objset_str + 1)) {
char *endptr;
errno = 0;
objset_str++;
objset_id = strtoull(objset_str, &endptr, 0);
/* dataset 0 is the same as opening the pool */
if (errno == 0 && endptr != objset_str &&
objset_id != 0) {
if (dump_opt['N'])
dataset_lookup = B_TRUE;
}
/* normal dataset name not an objset ID */
if (endptr == objset_str) {
objset_id = -1;
}
} else if (objset_str && !zdb_numeric(objset_str + 1) &&
dump_opt['N']) {
printf("Supply a numeric objset ID with -N\n");
exit(1);
}
} else {
target_pool = target;
}
Expand Down Expand Up @@ -8670,13 +8696,27 @@ main(int argc, char **argv)
}
return (error);
} else {
target_pool = strdup(target);
if (strpbrk(target, "/@") != NULL)
*strpbrk(target_pool, "/@") = '\0';

zdb_set_skip_mmp(target);
/*
* If -N was supplied, the user has indicated that
* zdb -d <pool>/<objsetID> is in effect. Otherwise
* we first assume that the dataset string is the
* dataset name. If dmu_objset_hold fails with the
* dataset string, and we have an objset_id, retry the
* lookup with the objsetID.
*/
boolean_t retry = B_TRUE;
retry_lookup:
if (dataset_lookup == B_TRUE) {
/*
* Use the supplied id to get the name
* for open_objset.
*/
error = spa_open(target, &spa, FTAG);
error = spa_open(target_pool, &spa, FTAG);
if (error == 0) {
error = name_from_objset_id(spa,
objset_id, dsname);
Expand All @@ -8685,10 +8725,23 @@ main(int argc, char **argv)
target = dsname;
}
}
if (error == 0)
if (error == 0) {
if (objset_id > 0 && retry) {
int err = dmu_objset_hold(target, FTAG,
&os);
if (err) {
dataset_lookup = B_TRUE;
retry = B_FALSE;
goto retry_lookup;
} else {
dmu_objset_rele(os, FTAG);
}
}
error = open_objset(target, FTAG, &os);
}
if (error == 0)
spa = dmu_objset_spa(os);
free(target_pool);
}
}
nvlist_free(policy);
Expand Down
Loading