From 2a4d100ae862bc964c36d41ff69a5f0b17c5515d Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 7 Jul 2022 21:30:28 -0400 Subject: [PATCH 01/58] refs: make `git_reference_cmp` consider the name `git_reference_cmp` only considers the target of a reference, and ignores the name. Meaning that a reference `foo` and reference `bar` pointing to the same commit will compare equal. Correct this, comparing the name _and_ target of a reference. --- src/libgit2/refs.c | 4 +++ tests/libgit2/refs/cmp.c | 27 +++++++++++++++++++ .../testrepo2/.gitted/refs/heads/symbolic-one | 1 + .../testrepo2/.gitted/refs/heads/symbolic-two | 1 + 4 files changed, 33 insertions(+) create mode 100644 tests/libgit2/refs/cmp.c create mode 100644 tests/resources/testrepo2/.gitted/refs/heads/symbolic-one create mode 100644 tests/resources/testrepo2/.gitted/refs/heads/symbolic-two diff --git a/src/libgit2/refs.c b/src/libgit2/refs.c index 5c875b95b23..72100b6ed3b 100644 --- a/src/libgit2/refs.c +++ b/src/libgit2/refs.c @@ -1054,10 +1054,14 @@ int git_reference_cmp( const git_reference *ref2) { git_reference_t type1, type2; + int ret; GIT_ASSERT_ARG(ref1); GIT_ASSERT_ARG(ref2); + if ((ret = strcmp(ref1->name, ref2->name)) != 0) + return ret; + type1 = git_reference_type(ref1); type2 = git_reference_type(ref2); diff --git a/tests/libgit2/refs/cmp.c b/tests/libgit2/refs/cmp.c new file mode 100644 index 00000000000..78d90b04a98 --- /dev/null +++ b/tests/libgit2/refs/cmp.c @@ -0,0 +1,27 @@ +#include "clar_libgit2.h" +#include "refs.h" + +static git_repository *g_repo; + +void test_refs_cmp__initialize(void) +{ + g_repo = cl_git_sandbox_init("testrepo2"); +} + +void test_refs_cmp__cleanup(void) +{ + cl_git_sandbox_cleanup(); +} + +void test_refs_cmp__symbolic(void) +{ + git_reference *one, *two; + + cl_git_pass(git_reference_lookup(&one, g_repo, "refs/heads/symbolic-one")); + cl_git_pass(git_reference_lookup(&two, g_repo, "refs/heads/symbolic-two")); + + cl_assert(git_reference_cmp(one, two) != 0); + + git_reference_free(one); + git_reference_free(two); +} diff --git a/tests/resources/testrepo2/.gitted/refs/heads/symbolic-one b/tests/resources/testrepo2/.gitted/refs/heads/symbolic-one new file mode 100644 index 00000000000..cb089cd89a7 --- /dev/null +++ b/tests/resources/testrepo2/.gitted/refs/heads/symbolic-one @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/tests/resources/testrepo2/.gitted/refs/heads/symbolic-two b/tests/resources/testrepo2/.gitted/refs/heads/symbolic-two new file mode 100644 index 00000000000..cb089cd89a7 --- /dev/null +++ b/tests/resources/testrepo2/.gitted/refs/heads/symbolic-two @@ -0,0 +1 @@ +ref: refs/heads/master From e0edd7d0ec2149fd069cec48ff0ba38be3f99a69 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Wed, 18 Dec 2024 22:41:12 +0000 Subject: [PATCH 02/58] ssl: enforce TLS v1.2 (or better) Enforce TLS v1.2 or better, and ensure that we use the recommended ciphers (intermediate compatibility) from Mozilla. https://wiki.mozilla.org/Security/Server_Side_TLS --- src/libgit2/streams/mbedtls.c | 14 +++++++++----- src/libgit2/streams/openssl.c | 10 +++++++--- src/libgit2/streams/openssl_dynamic.h | 2 ++ src/libgit2/streams/stransport.c | 3 +-- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/libgit2/streams/mbedtls.c b/src/libgit2/streams/mbedtls.c index 37abcdab571..a3839c2ce15 100644 --- a/src/libgit2/streams/mbedtls.c +++ b/src/libgit2/streams/mbedtls.c @@ -39,8 +39,8 @@ #undef inline -#define GIT_SSL_DEFAULT_CIPHERS "TLS1-3-AES-128-GCM-SHA256:TLS1-3-AES-256-GCM-SHA384:TLS1-3-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA:TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-RSA-WITH-AES-128-GCM-SHA256:TLS-RSA-WITH-AES-256-GCM-SHA384:TLS-RSA-WITH-AES-128-CBC-SHA256:TLS-RSA-WITH-AES-256-CBC-SHA256:TLS-RSA-WITH-AES-128-CBC-SHA:TLS-RSA-WITH-AES-256-CBC-SHA" -#define GIT_SSL_DEFAULT_CIPHERS_COUNT 28 +#define GIT_SSL_DEFAULT_CIPHERS "TLS1-3-AES-128-GCM-SHA256:TLS1-3-AES-256-GCM-SHA384:TLS1-3-CHACHA20-POLY1305-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256" +#define GIT_SSL_DEFAULT_CIPHERS_COUNT 12 static int ciphers_list[GIT_SSL_DEFAULT_CIPHERS_COUNT]; @@ -94,9 +94,13 @@ int git_mbedtls_stream_global_init(void) goto cleanup; } - /* configure TLSv1.1 or better */ -#ifdef MBEDTLS_SSL_MINOR_VERSION_2 - mbedtls_ssl_conf_min_version(&mbedtls_config, MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_2); + /* + * Configure TLSv1.2 or better; if the minor version constant isn't + * defined then this version of mbedTLS doesn't support such an old + * version, so we need not do anything. + */ +#ifdef MBEDTLS_SSL_MINOR_VERSION_3 + mbedtls_ssl_conf_min_version(&mbedtls_config, MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3); #endif /* verify_server_cert is responsible for making the check. diff --git a/src/libgit2/streams/openssl.c b/src/libgit2/streams/openssl.c index e5641e0e2c2..ca64e460b75 100644 --- a/src/libgit2/streams/openssl.c +++ b/src/libgit2/streams/openssl.c @@ -40,7 +40,8 @@ extern char *git__ssl_ciphers; SSL_CTX *git__ssl_ctx; -#define GIT_SSL_DEFAULT_CIPHERS "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA" +#define GIT_SSL_DEFAULT_CIPHERS "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305" + static BIO_METHOD *git_stream_bio_method; static int init_bio_method(void); @@ -105,7 +106,10 @@ static void git_openssl_free(void *mem) static int openssl_init(void) { - long ssl_opts = SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3; + long ssl_opts = SSL_OP_NO_SSLv2 | + SSL_OP_NO_SSLv3 | + SSL_OP_NO_TLSv1 | + SSL_OP_NO_TLSv1_1; const char *ciphers = git__ssl_ciphers; #ifdef VALGRIND static bool allocators_initialized = false; @@ -136,7 +140,7 @@ static int openssl_init(void) /* * Despite the name SSLv23_method, this is actually a version- * flexible context, which honors the protocol versions - * specified in `ssl_opts`. So we only support TLSv1.0 and + * specified in `ssl_opts`. So we only support TLSv1.2 and * higher. */ if (!(git__ssl_ctx = SSL_CTX_new(SSLv23_method()))) diff --git a/src/libgit2/streams/openssl_dynamic.h b/src/libgit2/streams/openssl_dynamic.h index e59f1f93b2a..0d7ef0f2a89 100644 --- a/src/libgit2/streams/openssl_dynamic.h +++ b/src/libgit2/streams/openssl_dynamic.h @@ -182,6 +182,8 @@ # define SSL_OP_NO_COMPRESSION 0x00020000L # define SSL_OP_NO_SSLv2 0x01000000L # define SSL_OP_NO_SSLv3 0x02000000L +# define SSL_OP_NO_TLSv1 0x04000000L +# define SSL_OP_NO_TLSv1_1 0x10000000L # define SSL_MODE_AUTO_RETRY 0x00000004L diff --git a/src/libgit2/streams/stransport.c b/src/libgit2/streams/stransport.c index 863616dcc77..2d4cc55b549 100644 --- a/src/libgit2/streams/stransport.c +++ b/src/libgit2/streams/stransport.c @@ -331,8 +331,7 @@ static int stransport_wrap( if ((ret = SSLSetIOFuncs(st->ctx, read_cb, write_cb)) != noErr || (ret = SSLSetConnection(st->ctx, st)) != noErr || (ret = SSLSetSessionOption(st->ctx, kSSLSessionOptionBreakOnServerAuth, true)) != noErr || - (ret = SSLSetProtocolVersionMin(st->ctx, kTLSProtocol1)) != noErr || - (ret = SSLSetProtocolVersionMax(st->ctx, kTLSProtocol12)) != noErr || + (ret = SSLSetProtocolVersionMin(st->ctx, kTLSProtocol12)) != noErr || (ret = SSLSetPeerDomainName(st->ctx, host, strlen(host))) != noErr) { CFRelease(st->ctx); git__free(st); From ca2a241e4c0afb1302c24383b32199300c2692db Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Fri, 27 Dec 2024 15:36:06 +0000 Subject: [PATCH 03/58] repo: `workdir_path` implies no dotgit in init When specifying a separate working directory path, the given repository path should never have a `.git` directory created beneath it. That simply doesn't make sense. As a result, the `GIT_REPOSITORY_INIT_NO_DOTGIT_DIR` now _also_ no longer makes sense. It would only ever be a sensible option when one wanted a separate `.git` directory and working directory, otherwise the git files and working directory files would be comingled. Remove the option entirely. --- include/git2/deprecated.h | 11 +++++++++++ include/git2/repository.h | 7 ------- src/cli/cmd_init.c | 2 -- src/libgit2/repository.c | 3 +-- src/libgit2/submodule.c | 2 -- tests/libgit2/repo/init.c | 13 +++++++------ 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/include/git2/deprecated.h b/include/git2/deprecated.h index b8b0238da66..d10143a5cbb 100644 --- a/include/git2/deprecated.h +++ b/include/git2/deprecated.h @@ -748,6 +748,17 @@ GIT_EXTERN(int) git_tag_create_frombuffer( /**@}*/ +/** @name Deprecated Repository Constants + * + * These enumeration values are retained for backward compatibility. + */ + +/** + * @deprecated This option is deprecated; it is now implied when + * a separate working directory is specified to `git_repository_init`. + */ +#define GIT_REPOSITORY_INIT_NO_DOTGIT_DIR 0 + /** @name Deprecated Revspec Constants * * These enumeration values are retained for backward compatibility. diff --git a/include/git2/repository.h b/include/git2/repository.h index b203576affc..4bdcee37a76 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -258,13 +258,6 @@ typedef enum { */ GIT_REPOSITORY_INIT_NO_REINIT = (1u << 1), - /** - * Normally a "/.git/" will be appended to the repo path for - * non-bare repos (if it is not already there), but passing this flag - * prevents that behavior. - */ - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR = (1u << 2), - /** * Make the repo_path (and workdir_path) as needed. Init is always willing * to create the ".git" directory even without this flag. This flag tells diff --git a/src/cli/cmd_init.c b/src/cli/cmd_init.c index b6468961ee2..40037d6d6b4 100644 --- a/src/cli/cmd_init.c +++ b/src/cli/cmd_init.c @@ -82,9 +82,7 @@ int cmd_init(int argc, char **argv) init_opts.initial_head = branch; if (git_dir) { - init_opts.flags |= GIT_REPOSITORY_INIT_NO_DOTGIT_DIR; init_opts.workdir_path = path; - repo_path = git_dir; } else { repo_path = path; diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c index 73876424a88..2c36458b367 100644 --- a/src/libgit2/repository.c +++ b/src/libgit2/repository.c @@ -2690,8 +2690,7 @@ static int repo_init_directories( is_bare = ((opts->flags & GIT_REPOSITORY_INIT_BARE) != 0); add_dotgit = - (opts->flags & GIT_REPOSITORY_INIT_NO_DOTGIT_DIR) == 0 && - !is_bare && + !is_bare && !opts->workdir_path && git__suffixcmp(given_repo, "/" DOT_GIT) != 0 && git__suffixcmp(given_repo, "/" GIT_DIR) != 0; diff --git a/src/libgit2/submodule.c b/src/libgit2/submodule.c index a3bfc787274..7444e8c678b 100644 --- a/src/libgit2/submodule.c +++ b/src/libgit2/submodule.c @@ -757,7 +757,6 @@ static int submodule_repo_init( initopt.workdir_path = workdir.ptr; initopt.flags |= - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR | GIT_REPOSITORY_INIT_RELATIVE_GITLINK; error = git_repository_init_ext(&subrepo, repodir.ptr, &initopt); @@ -1289,7 +1288,6 @@ static int submodule_repo_create( initopt.flags = GIT_REPOSITORY_INIT_MKPATH | GIT_REPOSITORY_INIT_NO_REINIT | - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR | GIT_REPOSITORY_INIT_RELATIVE_GITLINK; /* Workdir: path to sub-repo working directory */ diff --git a/tests/libgit2/repo/init.c b/tests/libgit2/repo/init.c index e23271d350d..70624b6f259 100644 --- a/tests/libgit2/repo/init.c +++ b/tests/libgit2/repo/init.c @@ -425,8 +425,7 @@ void test_repo_init__extended_1(void) struct stat st; git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT; - opts.flags = GIT_REPOSITORY_INIT_MKPATH | - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR; + opts.flags = GIT_REPOSITORY_INIT_MKPATH; opts.mode = GIT_REPOSITORY_INIT_SHARED_GROUP; opts.workdir_path = "../c_wd"; opts.description = "Awesomest test repository evah"; @@ -466,16 +465,18 @@ void test_repo_init__extended_1(void) void test_repo_init__relative_gitdir(void) { git_repository_init_options opts = GIT_REPOSITORY_INIT_OPTIONS_INIT; + git_str head_content = GIT_STR_INIT; git_str dot_git_content = GIT_STR_INIT; opts.workdir_path = "../c_wd"; opts.flags = GIT_REPOSITORY_INIT_MKPATH | - GIT_REPOSITORY_INIT_RELATIVE_GITLINK | - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR; + GIT_REPOSITORY_INIT_RELATIVE_GITLINK; /* make the directory first, then it should succeed */ cl_git_pass(git_repository_init_ext(&g_repo, "root/b/my_repository", &opts)); + cl_git_pass(git_futils_readbuffer(&head_content, "root/b/my_repository/HEAD")); + cl_assert_equal_s("ref: refs/heads/master\n", head_content.ptr); cl_assert(!git__suffixcmp(git_repository_workdir(g_repo), "root/b/c_wd/")); cl_assert(!git__suffixcmp(git_repository_path(g_repo), "root/b/my_repository/")); @@ -491,6 +492,7 @@ void test_repo_init__relative_gitdir(void) cl_git_pass(git_futils_readbuffer(&dot_git_content, "root/b/c_wd/.git")); cl_assert_equal_s("gitdir: ../my_repository/\n", dot_git_content.ptr); + git_str_dispose(&head_content); git_str_dispose(&dot_git_content); cleanup_repository("root"); } @@ -507,8 +509,7 @@ void test_repo_init__relative_gitdir_2(void) opts.workdir_path = full_path.ptr; opts.flags = GIT_REPOSITORY_INIT_MKPATH | - GIT_REPOSITORY_INIT_RELATIVE_GITLINK | - GIT_REPOSITORY_INIT_NO_DOTGIT_DIR; + GIT_REPOSITORY_INIT_RELATIVE_GITLINK; /* make the directory first, then it should succeed */ cl_git_pass(git_repository_init_ext(&g_repo, "root/b/my_repository", &opts)); From c4a65c34c298c314da5feafed808e49aea12cd12 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Sat, 28 Dec 2024 15:34:04 +0000 Subject: [PATCH 04/58] cmake: standardize builtin sha1dc selection All `USE_*` options are now `builtin`. Use that for the builtin sha1dc implementation, keeping `CollisionDetection` for backward compatibility. --- CMakeLists.txt | 2 +- cmake/SelectHashes.cmake | 13 +++++++++---- src/libgit2/libgit2.c | 2 +- src/util/CMakeLists.txt | 4 +++- src/util/git2_features.h.in | 2 +- src/util/hash/sha.h | 8 ++++---- tests/libgit2/core/features.c | 2 +- tests/util/sha1.c | 2 +- 8 files changed, 21 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 31da49a8856..bc9369bafd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,7 +32,7 @@ option(USE_NSEC "Support nanosecond precision file mtimes and cti # Backend selection set(USE_SSH "" CACHE STRING "Enables SSH support and optionally selects provider. One of ON, OFF, or a specific provider: libssh2 or exec. (Defaults to OFF.)") set(USE_HTTPS "" CACHE STRING "Enable HTTPS support and optionally selects the provider. One of ON, OFF, or a specific provider: OpenSSL, OpenSSL-FIPS, OpenSSL-Dynamic, mbedTLS, SecureTransport, Schannel, or WinHTTP. (Defaults to ON.)") - set(USE_SHA1 "" CACHE STRING "Selects SHA1 provider. One of CollisionDetection, HTTPS, or a specific provider. (Defaults to CollisionDetection.)") + set(USE_SHA1 "" CACHE STRING "Selects SHA1 provider. One of builtin, HTTPS, or a specific provider. (Defaults to builtin.)") set(USE_SHA256 "" CACHE STRING "Selects SHA256 provider. One of Builtin, HTTPS, or a specific provider. (Defaults to HTTPS.)") option(USE_GSSAPI "Enable SPNEGO authentication using GSSAPI" OFF) set(USE_HTTP_PARSER "" CACHE STRING "Selects HTTP Parser support: http-parser, llhttp, or builtin. (Defaults to builtin.)") diff --git a/cmake/SelectHashes.cmake b/cmake/SelectHashes.cmake index 35fea3ece0b..6f6e0f056dd 100644 --- a/cmake/SelectHashes.cmake +++ b/cmake/SelectHashes.cmake @@ -8,7 +8,7 @@ sanitizebool(USE_SHA256) # sha1 if(USE_SHA1 STREQUAL "" OR USE_SHA1 STREQUAL ON) - SET(USE_SHA1 "CollisionDetection") + SET(USE_SHA1 "builtin") elseif(USE_SHA1 STREQUAL "HTTPS") if(USE_HTTPS STREQUAL "SecureTransport") set(USE_SHA1 "CommonCrypto") @@ -23,8 +23,12 @@ elseif(USE_SHA1 STREQUAL "HTTPS") endif() endif() -if(USE_SHA1 STREQUAL "CollisionDetection") - set(GIT_SHA1_COLLISIONDETECT 1) +if(USE_SHA1 STREQUAL "Builtin" OR USE_SHA1 STREQUAL "CollisionDetection") + set(USE_SHA1 "builtin") +endif() + +if(USE_SHA1 STREQUAL "builtin") + set(GIT_SHA1_BUILTIN 1) elseif(USE_SHA1 STREQUAL "OpenSSL") set(GIT_SHA1_OPENSSL 1) elseif(USE_SHA1 STREQUAL "OpenSSL-FIPS") @@ -90,6 +94,7 @@ else() endif() # add library requirements + if(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL" OR USE_SHA1 STREQUAL "OpenSSL-FIPS" OR USE_SHA256 STREQUAL "OpenSSL-FIPS") if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") @@ -115,7 +120,7 @@ add_feature_info(SHA256 ON "using ${USE_SHA256}") # warn for users who do not use sha1dc -if(NOT "${USE_SHA1}" STREQUAL "CollisionDetection") +if(NOT "${USE_SHA1}" STREQUAL "builtin") list(APPEND WARNINGS "SHA1 support is set to ${USE_SHA1} which is not recommended - git's hash algorithm is sha1dc, it is *not* SHA1. Using SHA1 may leave you and your users susceptible to SHAttered-style attacks.") set(WARNINGS ${WARNINGS} PARENT_SCOPE) endif() diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index de72cfe7d2b..a75fb0f9136 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -224,7 +224,7 @@ const char *git_libgit2_feature_backend(git_feature_t feature) break; case GIT_FEATURE_SHA1: -#if defined(GIT_SHA1_COLLISIONDETECT) +#if defined(GIT_SHA1_BUILTIN) return "builtin"; #elif defined(GIT_SHA1_OPENSSL) return "openssl"; diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 3692dc3d332..5831c213b7b 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -29,11 +29,13 @@ endif() # Hash backend selection # -if(USE_SHA1 STREQUAL "CollisionDetection") +if(USE_SHA1 STREQUAL "builtin") file(GLOB UTIL_SRC_SHA1 hash/collisiondetect.* hash/sha1dc/*) target_compile_definitions(util PRIVATE SHA1DC_NO_STANDARD_INCLUDES=1) target_compile_definitions(util PRIVATE SHA1DC_CUSTOM_INCLUDE_SHA1_C=\"git2_util.h\") target_compile_definitions(util PRIVATE SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"git2_util.h\") +elseif(USE_SHA1 STREQUAL "SHA1CollisionDetection") + file(GLOB UTIL_SRC_SHA1 hash/collisiondetect.*) elseif(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA1 STREQUAL "OpenSSL-Dynamic" OR USE_SHA1 STREQUAL "OpenSSL-FIPS") add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) file(GLOB UTIL_SRC_SHA1 hash/openssl.*) diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index cd14cc2347d..c889202d76f 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -50,7 +50,7 @@ #cmakedefine GIT_HTTPPARSER_LLHTTP 1 #cmakedefine GIT_HTTPPARSER_BUILTIN 1 -#cmakedefine GIT_SHA1_COLLISIONDETECT 1 +#cmakedefine GIT_SHA1_BUILTIN 1 #cmakedefine GIT_SHA1_WIN32 1 #cmakedefine GIT_SHA1_COMMON_CRYPTO 1 #cmakedefine GIT_SHA1_OPENSSL 1 diff --git a/src/util/hash/sha.h b/src/util/hash/sha.h index 8e7eeae8c34..eb418c0d631 100644 --- a/src/util/hash/sha.h +++ b/src/util/hash/sha.h @@ -13,6 +13,10 @@ typedef struct git_hash_sha1_ctx git_hash_sha1_ctx; typedef struct git_hash_sha256_ctx git_hash_sha256_ctx; +#if defined(GIT_SHA1_BUILTIN) +# include "collisiondetect.h" +#endif + #if defined(GIT_SHA1_COMMON_CRYPTO) || defined(GIT_SHA256_COMMON_CRYPTO) # include "common_crypto.h" #endif @@ -32,10 +36,6 @@ typedef struct git_hash_sha256_ctx git_hash_sha256_ctx; # include "mbedtls.h" #endif -#if defined(GIT_SHA1_COLLISIONDETECT) -# include "collisiondetect.h" -#endif - #if defined(GIT_SHA256_BUILTIN) # include "builtin.h" #endif diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index b7cd6014a57..8dba8e1a961 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -186,7 +186,7 @@ void test_core_features__backends(void) cl_assert(0); #endif -#if defined(GIT_SHA1_COLLISIONDETECT) +#if defined(GIT_SHA1_BUILTIN) cl_assert_equal_s("builtin", sha1); #elif defined(GIT_SHA1_OPENSSL) cl_assert_equal_s("openssl", sha1); diff --git a/tests/util/sha1.c b/tests/util/sha1.c index fe4032c13ec..c144def714f 100644 --- a/tests/util/sha1.c +++ b/tests/util/sha1.c @@ -70,7 +70,7 @@ void test_sha1__detect_collision_attack(void) 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a }; -#ifdef GIT_SHA1_COLLISIONDETECT +#ifdef GIT_SHA1_BUILTIN GIT_UNUSED(&expected); cl_git_fail(sha1_file(actual, FIXTURE_DIR "/shattered-1.pdf")); cl_assert_equal_s("SHA1 collision attack detected", git_error_last()->message); From fdb73f5d1d25f5f6ab5176e964ccd6126994708b Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Sun, 22 Dec 2024 12:32:10 +0000 Subject: [PATCH 05/58] cmake: simplify compression selection --- CMakeLists.txt | 2 +- cmake/SelectCompression.cmake | 53 +++++++++++++++++++++++++++++++++++ cmake/SelectZlib.cmake | 38 ------------------------- src/CMakeLists.txt | 2 +- 4 files changed, 55 insertions(+), 40 deletions(-) create mode 100644 cmake/SelectCompression.cmake delete mode 100644 cmake/SelectZlib.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index bc9369bafd2..883f2347982 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ option(USE_GSSAPI "Enable SPNEGO authentication using GSSAPI" OFF) set(USE_HTTP_PARSER "" CACHE STRING "Selects HTTP Parser support: http-parser, llhttp, or builtin. (Defaults to builtin.)") # set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.") set(REGEX_BACKEND "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") -option(USE_BUNDLED_ZLIB "Use the bundled version of zlib. Can be set to one of Bundled(ON)/Chromium. The Chromium option requires a x86_64 processor with SSE4.2 and CLMUL" OFF) + set(USE_COMPRESSION "" CACHE STRING "Selects compression backend. Either builtin or zlib.") # Debugging options option(USE_LEAK_CHECKER "Run tests with leak checker" OFF) diff --git a/cmake/SelectCompression.cmake b/cmake/SelectCompression.cmake new file mode 100644 index 00000000000..50c4706f415 --- /dev/null +++ b/cmake/SelectCompression.cmake @@ -0,0 +1,53 @@ +include(SanitizeBool) + +# Fall back to the previous cmake configuration, "USE_BUNDLED_ZLIB" +if(NOT USE_COMPRESSION AND USE_BUNDLED_ZLIB) + SanitizeBool(USE_BUNDLED_ZLIB) + + if(USE_BUNDLED_ZLIB STREQUAL ON) + set(USE_COMPRESSION "builtin") + elseif(USE_BUNDLED_ZLIB STREQUAL OFF) + set(USE_COMPRESSION "zlib") + else() + message(FATAL_ERROR "unknown setting to USE_BUNDLED_ZLIB: ${USE_BUNDLED_ZLIB}") + endif() +endif() + +if(NOT USE_COMPRESSION) + find_package(ZLIB) + + if(ZLIB_FOUND) + set(GIT_COMPRESSION_ZLIB 1) + else() + message(STATUS "zlib was not found; using bundled 3rd-party sources." ) + set(GIT_COMPRESSION_BUILTIN 1) + endif() +elseif(USE_COMPRESSION STREQUAL "zlib") + find_package(ZLIB) + + if(NOT ZLIB_FOUND) + message(FATAL_ERROR "system zlib was requested but not found") + endif() + + set(GIT_COMPRESSION_ZLIB 1) +elseif(USE_COMPRESSION STREQUAL "builtin") + set(GIT_COMPRESSION_BUILTIN 1) +endif() + +if(GIT_COMPRESSION_ZLIB) + list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS}) + list(APPEND LIBGIT2_SYSTEM_LIBS ${ZLIB_LIBRARIES}) + if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + list(APPEND LIBGIT2_PC_LIBS "-lz") + else() + list(APPEND LIBGIT2_PC_REQUIRES "zlib") + endif() + add_feature_info(compression ON "using system zlib") +elseif(GIT_COMPRESSION_BUILTIN) + add_subdirectory("${PROJECT_SOURCE_DIR}/deps/zlib" "${PROJECT_BINARY_DIR}/deps/zlib") + list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/zlib") + list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $) + add_feature_info(compression ON "using bundled zlib") +else() + message(FATAL_ERROR "unknown compression backend") +endif() diff --git a/cmake/SelectZlib.cmake b/cmake/SelectZlib.cmake deleted file mode 100644 index 25c7b2f94fa..00000000000 --- a/cmake/SelectZlib.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# Optional external dependency: zlib -include(SanitizeBool) - -SanitizeBool(USE_BUNDLED_ZLIB) -if(USE_BUNDLED_ZLIB STREQUAL ON) - set(USE_BUNDLED_ZLIB "Bundled") - set(GIT_COMPRESSION_BUILTIN) -endif() - -if(USE_BUNDLED_ZLIB STREQUAL "OFF") - find_package(ZLIB) - if(ZLIB_FOUND) - list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS}) - list(APPEND LIBGIT2_SYSTEM_LIBS ${ZLIB_LIBRARIES}) - if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - list(APPEND LIBGIT2_PC_LIBS "-lz") - else() - list(APPEND LIBGIT2_PC_REQUIRES "zlib") - endif() - add_feature_info(zlib ON "using system zlib") - set(GIT_COMPRESSION_ZLIB 1) - else() - message(STATUS "zlib was not found; using bundled 3rd-party sources." ) - endif() -endif() -if(USE_BUNDLED_ZLIB STREQUAL "Chromium") - add_subdirectory("${PROJECT_SOURCE_DIR}/deps/chromium-zlib" "${PROJECT_BINARY_DIR}/deps/chromium-zlib") - list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/chromium-zlib") - list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $) - add_feature_info(zlib ON "using (Chromium) bundled zlib") - set(GIT_COMPRESSION_BUILTIN 1) -elseif(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND) - add_subdirectory("${PROJECT_SOURCE_DIR}/deps/zlib" "${PROJECT_BINARY_DIR}/deps/zlib") - list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/zlib") - list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $) - add_feature_info(zlib ON "using bundled zlib") - set(GIT_COMPRESSION_BUILTIN 1) -endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 73c46e21043..90996aa5d3c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,7 +43,7 @@ include(SelectHTTPParser) include(SelectRegex) include(SelectXdiff) include(SelectSSH) -include(SelectZlib) +include(SelectCompression) # # Platform support From 78a8c44cc160ffa26de857a19702fb395d28b3d9 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Sun, 29 Dec 2024 16:26:38 +0000 Subject: [PATCH 06/58] cmake: standardize regex options Selecting regular expression backend should be specified in the same way as everything else; `USE_REGEX`. Keep `REGEX_BACKEND` as an optional fallback. --- CMakeLists.txt | 2 +- cmake/SelectRegex.cmake | 32 ++++++++++++++++++++------------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 883f2347982..87be33af676 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ option(USE_NSEC "Support nanosecond precision file mtimes and cti option(USE_GSSAPI "Enable SPNEGO authentication using GSSAPI" OFF) set(USE_HTTP_PARSER "" CACHE STRING "Selects HTTP Parser support: http-parser, llhttp, or builtin. (Defaults to builtin.)") # set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.") - set(REGEX_BACKEND "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") + set(USE_REGEX "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") set(USE_COMPRESSION "" CACHE STRING "Selects compression backend. Either builtin or zlib.") # Debugging options diff --git a/cmake/SelectRegex.cmake b/cmake/SelectRegex.cmake index 840ec7f349f..64cc2f14815 100644 --- a/cmake/SelectRegex.cmake +++ b/cmake/SelectRegex.cmake @@ -1,27 +1,35 @@ # Specify regular expression implementation find_package(PCRE) -if(REGEX_BACKEND STREQUAL "") +set(OPTION_NAME "USE_REGEX") + +# Fall back to the previous cmake configuration, "USE_BUNDLED_ZLIB" +if(NOT USE_REGEX AND REGEX_BACKEND) + set(USE_REGEX "${REGEX_BACKEND}") + set(OPTION_NAME "REGEX_BACKEND") +endif() + +if(NOT USE_REGEX) check_symbol_exists(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L) if(HAVE_REGCOMP_L) # 'regcomp_l' has been explicitly marked unavailable on iOS_SDK if(CMAKE_SYSTEM_NAME MATCHES "iOS") - set(REGEX_BACKEND "regcomp") + set(USE_REGEX "regcomp") else() - set(REGEX_BACKEND "regcomp_l") + set(USE_REGEX "regcomp_l") endif() elseif(PCRE_FOUND) - set(REGEX_BACKEND "pcre") + set(USE_REGEX "pcre") else() - set(REGEX_BACKEND "builtin") + set(USE_REGEX "builtin") endif() endif() -if(REGEX_BACKEND STREQUAL "regcomp_l") +if(USE_REGEX STREQUAL "regcomp_l") add_feature_info(regex ON "using system regcomp_l") set(GIT_REGEX_REGCOMP_L 1) -elseif(REGEX_BACKEND STREQUAL "pcre2") +elseif(USE_REGEX STREQUAL "pcre2") find_package(PCRE2) if(NOT PCRE2_FOUND) @@ -34,23 +42,23 @@ elseif(REGEX_BACKEND STREQUAL "pcre2") list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE2_INCLUDE_DIRS}) list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE2_LIBRARIES}) list(APPEND LIBGIT2_PC_REQUIRES "libpcre2-8") -elseif(REGEX_BACKEND STREQUAL "pcre") +elseif(USE_REGEX STREQUAL "pcre") add_feature_info(regex ON "using system PCRE") set(GIT_REGEX_PCRE 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS}) list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE_LIBRARIES}) list(APPEND LIBGIT2_PC_REQUIRES "libpcre") -elseif(REGEX_BACKEND STREQUAL "regcomp") +elseif(USE_REGEX STREQUAL "regcomp") add_feature_info(regex ON "using system regcomp") set(GIT_REGEX_REGCOMP 1) -elseif(REGEX_BACKEND STREQUAL "builtin") - add_feature_info(regex ON "using bundled PCRE") +elseif(USE_REGEX STREQUAL "builtin") + add_feature_info(regex ON "using builtin") set(GIT_REGEX_BUILTIN 1) add_subdirectory("${PROJECT_SOURCE_DIR}/deps/pcre" "${PROJECT_BINARY_DIR}/deps/pcre") list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/pcre") list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $) else() - message(FATAL_ERROR "The REGEX_BACKEND option provided is not supported") + message(FATAL_ERROR "unknown setting to ${OPTION_NAME}: ${USE_REGEX}") endif() From 9ea1f6d4ed11d93ec42440a07e6c178a7cc4265f Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Sun, 29 Dec 2024 23:28:12 +0000 Subject: [PATCH 07/58] cmake: standardize iconv options --- CMakeLists.txt | 9 ++++---- cmake/SelectI18n.cmake | 40 ++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 16 +------------- src/libgit2/libgit2.c | 6 +++-- src/libgit2/refs.c | 6 ++--- src/libgit2/repository.c | 2 +- src/util/fs_path.c | 16 +++++++------- src/util/fs_path.h | 6 ++--- src/util/git2_features.h.in | 20 +++++++++-------- tests/libgit2/core/features.c | 6 +++-- tests/libgit2/refs/unicode.c | 2 +- tests/libgit2/repo/init.c | 2 +- tests/libgit2/status/renames.c | 6 ++--- tests/util/iconv.c | 12 +++++----- 14 files changed, 91 insertions(+), 58 deletions(-) create mode 100644 cmake/SelectI18n.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 87be33af676..95c8c62f609 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,11 @@ option(USE_GSSAPI "Enable SPNEGO authentication using GSSAPI" OFF) set(USE_REGEX "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") set(USE_COMPRESSION "" CACHE STRING "Selects compression backend. Either builtin or zlib.") +if(APPLE) + # Currently only available on macOS for `precomposeUnicode` support + set(USE_I18N "" CACHE STRING "Enables internationalization support.") +endif() + # Debugging options option(USE_LEAK_CHECKER "Run tests with leak checker" OFF) option(USE_STANDALONE_FUZZERS "Enable standalone fuzzers (compatible with gcc)" OFF) @@ -73,10 +78,6 @@ if(UNIX) option(ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF) endif() -if(APPLE) - option(USE_ICONV "Link with and use iconv library" ON) -endif() - if(MSVC) # This option must match the settings used in your program, in particular if you # are linking statically diff --git a/cmake/SelectI18n.cmake b/cmake/SelectI18n.cmake new file mode 100644 index 00000000000..1b4c6d7803b --- /dev/null +++ b/cmake/SelectI18n.cmake @@ -0,0 +1,40 @@ +include(SanitizeBool) + +find_package(IntlIconv) + +if(USE_I18N STREQUAL "" AND NOT USE_ICONV STREQUAL "") + sanitizebool(USE_ICONV) + set(USE_I18N "${USE_ICONV}") +endif() + +if(USE_I18N STREQUAL "") + set(USE_I18N ON) +endif() + +sanitizebool(USE_I18N) + +if(USE_I18N) + if(USE_I18N STREQUAL ON) + if(ICONV_FOUND) + set(USE_I18N "iconv") + else() + message(FATAL_ERROR "Unable to detect internationalization support") + endif() + endif() + + if(USE_I18N STREQUAL "iconv") + else() + message(FATAL_ERROR "unknown internationalization backend: ${USE_I18N}") + endif() + + list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ICONV_INCLUDE_DIR}) + list(APPEND LIBGIT2_SYSTEM_LIBS ${ICONV_LIBRARIES}) + list(APPEND LIBGIT2_PC_LIBS ${ICONV_LIBRARIES}) + + set(GIT_I18N 1) + set(GIT_I18N_ICONV 1) + add_feature_info(i18n ON "using ${USE_I18N}") +else() + set(GIT_I18N 0) + add_feature_info(i18n NO "internationalization support is disabled") +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 90996aa5d3c..7e0106cfa24 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -44,6 +44,7 @@ include(SelectRegex) include(SelectXdiff) include(SelectSSH) include(SelectCompression) +include(SelectI18n) # # Platform support @@ -180,21 +181,6 @@ if(USE_NTLMCLIENT) endif() add_feature_info(ntlmclient GIT_NTLM "NTLM authentication support for Unix") -# -# Optional external dependencies - -# iconv -if(USE_ICONV) - find_package(IntlIconv) -endif() -if(ICONV_FOUND) - set(GIT_USE_ICONV 1) - list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ICONV_INCLUDE_DIR}) - list(APPEND LIBGIT2_SYSTEM_LIBS ${ICONV_LIBRARIES}) - list(APPEND LIBGIT2_PC_LIBS ${ICONV_LIBRARIES}) -endif() -add_feature_info(iconv GIT_USE_ICONV "iconv encoding conversion support") - # # Include child projects # diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index a75fb0f9136..36a001e492d 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -95,7 +95,7 @@ int git_libgit2_features(void) #endif | GIT_FEATURE_HTTP_PARSER | GIT_FEATURE_REGEX -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV | GIT_FEATURE_I18N #endif #if defined(GIT_NTLM) || defined(GIT_WIN32) @@ -192,8 +192,10 @@ const char *git_libgit2_feature_backend(git_feature_t feature) break; case GIT_FEATURE_I18N: -#if defined(GIT_USE_ICONV) +#if defined(GIT_I18N_ICONV) return "iconv"; +#elif defined(GIT_I18N) + GIT_ASSERT_WITH_RETVAL(!"Unknown internationalization backend", NULL); #endif break; diff --git a/src/libgit2/refs.c b/src/libgit2/refs.c index 12dbd7aca9d..9bf1c6b45a1 100644 --- a/src/libgit2/refs.c +++ b/src/libgit2/refs.c @@ -917,7 +917,7 @@ int git_reference__normalize_name( bool allow_caret_prefix = true; bool validate = (flags & GIT_REFERENCE_FORMAT__VALIDATION_DISABLE) == 0; -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_t ic = GIT_PATH_ICONV_INIT; #endif @@ -932,7 +932,7 @@ int git_reference__normalize_name( if (normalize) git_str_clear(buf); -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV if ((flags & GIT_REFERENCE_FORMAT__PRECOMPOSE_UNICODE) != 0) { size_t namelen = strlen(current); if ((error = git_fs_path_iconv_init_precompose(&ic)) < 0 || @@ -1032,7 +1032,7 @@ int git_reference__normalize_name( if (error && normalize) git_str_dispose(buf); -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_clear(&ic); #endif diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c index 2c36458b367..5d6bf663d8f 100644 --- a/src/libgit2/repository.c +++ b/src/libgit2/repository.c @@ -2297,7 +2297,7 @@ static int repo_init_fs_configs( git_error_clear(); } -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV if ((error = git_config_set_bool( cfg, "core.precomposeunicode", git_fs_path_does_decompose_unicode(work_dir))) < 0) diff --git a/src/util/fs_path.c b/src/util/fs_path.c index 9d5c99eab81..e24836becaa 100644 --- a/src/util/fs_path.c +++ b/src/util/fs_path.c @@ -984,7 +984,7 @@ bool git_fs_path_has_non_ascii(const char *path, size_t pathlen) return false; } -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV int git_fs_path_iconv_init_precompose(git_fs_path_iconv_t *ic) { @@ -1136,7 +1136,7 @@ int git_fs_path_direach( DIR *dir; struct dirent *de; -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_t ic = GIT_PATH_ICONV_INIT; #endif @@ -1155,7 +1155,7 @@ int git_fs_path_direach( return -1; } -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV if ((flags & GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE) != 0) (void)git_fs_path_iconv_init_precompose(&ic); #endif @@ -1167,7 +1167,7 @@ int git_fs_path_direach( if (git_fs_path_is_dot_or_dotdot(de_path)) continue; -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV if ((error = git_fs_path_iconv(&ic, &de_path, &de_len)) < 0) break; #endif @@ -1191,7 +1191,7 @@ int git_fs_path_direach( closedir(dir); -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_clear(&ic); #endif @@ -1395,7 +1395,7 @@ int git_fs_path_diriter_init( return -1; } -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV if ((flags & GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE) != 0) (void)git_fs_path_iconv_init_precompose(&diriter->ic); #endif @@ -1432,7 +1432,7 @@ int git_fs_path_diriter_next(git_fs_path_diriter *diriter) filename = de->d_name; filename_len = strlen(filename); -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV if ((diriter->flags & GIT_FS_PATH_DIR_PRECOMPOSE_UNICODE) != 0 && (error = git_fs_path_iconv(&diriter->ic, &filename, &filename_len)) < 0) return error; @@ -1499,7 +1499,7 @@ void git_fs_path_diriter_free(git_fs_path_diriter *diriter) diriter->dir = NULL; } -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_clear(&diriter->ic); #endif diff --git a/src/util/fs_path.h b/src/util/fs_path.h index 43f7951adde..78b4c3dc0d9 100644 --- a/src/util/fs_path.h +++ b/src/util/fs_path.h @@ -449,7 +449,7 @@ extern bool git_fs_path_has_non_ascii(const char *path, size_t pathlen); #define GIT_PATH_NATIVE_ENCODING "UTF-8" #endif -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV #include @@ -473,7 +473,7 @@ extern void git_fs_path_iconv_clear(git_fs_path_iconv_t *ic); */ extern int git_fs_path_iconv(git_fs_path_iconv_t *ic, const char **in, size_t *inlen); -#endif /* GIT_USE_ICONV */ +#endif /* GIT_I18N_ICONV */ extern bool git_fs_path_does_decompose_unicode(const char *root); @@ -511,7 +511,7 @@ struct git_fs_path_diriter DIR *dir; -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_t ic; #endif }; diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index c889202d76f..af7b5dd279d 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -11,23 +11,25 @@ #cmakedefine GIT_ARCH_64 1 #cmakedefine GIT_ARCH_32 1 -#cmakedefine GIT_USE_ICONV 1 +#cmakedefine GIT_I18N 1 +#cmakedefine GIT_I18N_ICONV 1 + #cmakedefine GIT_USE_NSEC 1 #cmakedefine GIT_USE_STAT_MTIM 1 #cmakedefine GIT_USE_STAT_MTIMESPEC 1 #cmakedefine GIT_USE_STAT_MTIME_NSEC 1 #cmakedefine GIT_USE_FUTIMENS 1 -#cmakedefine GIT_REGEX_REGCOMP_L -#cmakedefine GIT_REGEX_REGCOMP -#cmakedefine GIT_REGEX_PCRE -#cmakedefine GIT_REGEX_PCRE2 +#cmakedefine GIT_REGEX_REGCOMP_L 1 +#cmakedefine GIT_REGEX_REGCOMP 1 +#cmakedefine GIT_REGEX_PCRE 1 +#cmakedefine GIT_REGEX_PCRE2 1 #cmakedefine GIT_REGEX_BUILTIN 1 -#cmakedefine GIT_QSORT_BSD -#cmakedefine GIT_QSORT_GNU -#cmakedefine GIT_QSORT_C11 -#cmakedefine GIT_QSORT_MSC +#cmakedefine GIT_QSORT_BSD 1 +#cmakedefine GIT_QSORT_GNU 1 +#cmakedefine GIT_QSORT_C11 1 +#cmakedefine GIT_QSORT_MSC 1 #cmakedefine GIT_SSH 1 #cmakedefine GIT_SSH_EXEC 1 diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index 8dba8e1a961..69426c04020 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -29,7 +29,7 @@ void test_core_features__basic(void) cl_assert((caps & GIT_FEATURE_HTTP_PARSER) != 0); cl_assert((caps & GIT_FEATURE_REGEX) != 0); -#if defined(GIT_USE_ICONV) +#if defined(GIT_I18N_ICONV) cl_assert((caps & GIT_FEATURE_I18N) != 0); #endif @@ -156,8 +156,10 @@ void test_core_features__backends(void) cl_assert(0); #endif -#if defined(GIT_USE_ICONV) +#if defined(GIT_I18N_ICONV) cl_assert_equal_s("iconv", i18n); +#elif defined(GIT_I18N) + cl_assert(0); #else cl_assert(i18n == NULL); #endif diff --git a/tests/libgit2/refs/unicode.c b/tests/libgit2/refs/unicode.c index a279d5006b3..5c69bc7c2bc 100644 --- a/tests/libgit2/refs/unicode.c +++ b/tests/libgit2/refs/unicode.c @@ -36,7 +36,7 @@ void test_refs_unicode__create_and_lookup(void) cl_assert_equal_s(REFNAME, git_reference_name(ref2)); git_reference_free(ref2); -#if GIT_USE_ICONV +#if GIT_I18N_ICONV /* Lookup reference by decomposed unicode name */ #define REFNAME_DECOMPOSED "refs/heads/" "A" "\314\212" "ngstro" "\314\210" "m" diff --git a/tests/libgit2/repo/init.c b/tests/libgit2/repo/init.c index 70624b6f259..063c4fc7c1c 100644 --- a/tests/libgit2/repo/init.c +++ b/tests/libgit2/repo/init.c @@ -328,7 +328,7 @@ void test_repo_init__symlinks_posix_detected(void) void test_repo_init__detect_precompose_unicode_required(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV char *composed = "ḱṷṓn", *decomposed = "ḱṷṓn"; struct stat st; bool found_with_nfd; diff --git a/tests/libgit2/status/renames.c b/tests/libgit2/status/renames.c index d5cf87d07e9..f31e3be9f34 100644 --- a/tests/libgit2/status/renames.c +++ b/tests/libgit2/status/renames.c @@ -584,7 +584,7 @@ void test_status_renames__zero_byte_file_does_not_fail(void) git_status_list_free(statuslist); } -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV static char *nfc = "\xC3\x85\x73\x74\x72\xC3\xB6\x6D"; static char *nfd = "\x41\xCC\x8A\x73\x74\x72\x6F\xCC\x88\x6D"; #endif @@ -597,7 +597,7 @@ static char *nfd = "\x41\xCC\x8A\x73\x74\x72\x6F\xCC\x88\x6D"; */ void test_status_renames__precomposed_unicode_rename(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_status_list *statuslist; git_status_options opts = GIT_STATUS_OPTIONS_INIT; struct status_entry expected0[] = { @@ -649,7 +649,7 @@ void test_status_renames__precomposed_unicode_rename(void) void test_status_renames__precomposed_unicode_toggle_is_rename(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_status_list *statuslist; git_status_options opts = GIT_STATUS_OPTIONS_INIT; struct status_entry expected0[] = { diff --git a/tests/util/iconv.c b/tests/util/iconv.c index e14aebb9908..4eb2aa5bb4a 100644 --- a/tests/util/iconv.c +++ b/tests/util/iconv.c @@ -1,7 +1,7 @@ #include "clar_libgit2.h" #include "fs_path.h" -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV static git_fs_path_iconv_t ic; static char *nfc = "\xC3\x85\x73\x74\x72\xC3\xB6\x6D"; static char *nfd = "\x41\xCC\x8A\x73\x74\x72\x6F\xCC\x88\x6D"; @@ -9,21 +9,21 @@ static char *nfd = "\x41\xCC\x8A\x73\x74\x72\x6F\xCC\x88\x6D"; void test_iconv__initialize(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV cl_git_pass(git_fs_path_iconv_init_precompose(&ic)); #endif } void test_iconv__cleanup(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV git_fs_path_iconv_clear(&ic); #endif } void test_iconv__unchanged(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV const char *data = "Ascii data", *original = data; size_t datalen = strlen(data); @@ -37,7 +37,7 @@ void test_iconv__unchanged(void) void test_iconv__decomposed_to_precomposed(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV const char *data = nfd; size_t datalen, nfdlen = strlen(nfd); @@ -63,7 +63,7 @@ void test_iconv__decomposed_to_precomposed(void) void test_iconv__precomposed_is_unmodified(void) { -#ifdef GIT_USE_ICONV +#ifdef GIT_I18N_ICONV const char *data = nfc; size_t datalen = strlen(nfc); From fb59acb24652383baf46744892058a044d12724f Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 30 Dec 2024 22:28:34 +0000 Subject: [PATCH 08/58] cmake: update NTLM feature enablement --- CMakeLists.txt | 8 +---- cmake/SelectAuthNTLM.cmake | 46 ++++++++++++++++++++++++ src/CMakeLists.txt | 14 +------- src/libgit2/libgit2.c | 10 +++--- src/libgit2/transports/auth_ntlm.h | 4 +-- src/libgit2/transports/auth_ntlmclient.c | 4 +-- src/util/git2_features.h.in | 5 ++- tests/libgit2/core/features.c | 10 +++--- 8 files changed, 68 insertions(+), 33 deletions(-) create mode 100644 cmake/SelectAuthNTLM.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 95c8c62f609..33a392c632b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ option(USE_NSEC "Support nanosecond precision file mtimes and cti set(USE_SHA256 "" CACHE STRING "Selects SHA256 provider. One of Builtin, HTTPS, or a specific provider. (Defaults to HTTPS.)") option(USE_GSSAPI "Enable SPNEGO authentication using GSSAPI" OFF) set(USE_HTTP_PARSER "" CACHE STRING "Selects HTTP Parser support: http-parser, llhttp, or builtin. (Defaults to builtin.)") + set(USE_AUTH_NTLM "" CACHE STRING "Enables NTLM authentication support. One of Builtin or win32.") # set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.") set(USE_REGEX "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") set(USE_COMPRESSION "" CACHE STRING "Selects compression backend. Either builtin or zlib.") @@ -68,13 +69,6 @@ option(CMAKE_C_EXTENSIONS "Whether compiler extensions are supported" option(ENABLE_WERROR "Enable compilation with -Werror" OFF) if(UNIX) - # NTLM client requires crypto libraries from the system HTTPS stack - if(USE_HTTPS STREQUAL "OFF") - option(USE_NTLMCLIENT "Enable NTLM support on Unix." OFF) - else() - option(USE_NTLMCLIENT "Enable NTLM support on Unix." ON) - endif() - option(ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF) endif() diff --git a/cmake/SelectAuthNTLM.cmake b/cmake/SelectAuthNTLM.cmake new file mode 100644 index 00000000000..105c4bbc38e --- /dev/null +++ b/cmake/SelectAuthNTLM.cmake @@ -0,0 +1,46 @@ +include(SanitizeBool) + +if(USE_AUTH_NTLM STREQUAL "" AND NOT USE_NTLMCLIENT STREQUAL "") + sanitizebool(USE_NTLMCLIENT) + set(USE_AUTH_NTLM "${USE_NTLMCLIENT}") +endif() + +sanitizebool(USE_AUTH_NTLM) + +if(USE_AUTH_NTLM STREQUAL "") + set(USE_AUTH_NTLM ON) +endif() + +if(USE_AUTH_NTLM STREQUAL ON AND UNIX) + set(USE_AUTH_NTLM "builtin") +elseif(USE_AUTH_NTLM STREQUAL ON AND WIN32) + set(USE_AUTH_NTLM "sspi") +elseif(USE_AUTH_NTLM STREQUAL ON) + message(FATAL_ERROR "ntlm support was requested but no backend is available") +endif() + +if(USE_AUTH_NTLM STREQUAL "builtin") + if(NOT UNIX) + message(FATAL_ERROR "ntlm support requested via builtin provider, but builtin ntlmclient only supports posix platforms") + endif() + + add_subdirectory("${PROJECT_SOURCE_DIR}/deps/ntlmclient" "${PROJECT_BINARY_DIR}/deps/ntlmclient") + list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/ntlmclient") + list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$") + + set(GIT_AUTH_NTLM 1) + set(GIT_AUTH_NTLM_BUILTIN 1) + add_feature_info("NTLM authentication" ON "using bundled ntlmclient") +elseif(USE_AUTH_NTLM STREQUAL "sspi") + if(NOT WIN32) + message(FATAL_ERROR "SSPI is only available on Win32") + endif() + + set(GIT_AUTH_NTLM 1) + set(GIT_AUTH_NTLM_SSPI 1) + add_feature_info("NTLM authentication" ON "using Win32 SSPI") +elseif(USE_AUTH_NTLM STREQUAL OFF OR USE_AUTH_NTLM STREQUAL "") + add_feature_info("NTLM authentication" OFF "NTLM support is disabled") +else() + message(FATAL_ERROR "unknown ntlm option: ${USE_AUTH_NTLM}") +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7e0106cfa24..02895f98096 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -45,6 +45,7 @@ include(SelectXdiff) include(SelectSSH) include(SelectCompression) include(SelectI18n) +include(SelectAuthNTLM) # # Platform support @@ -168,19 +169,6 @@ if(USE_THREADS) endif() add_feature_info(threadsafe USE_THREADS "threadsafe support") -# -# Optional bundled features -# - -# ntlmclient -if(USE_NTLMCLIENT) - set(GIT_NTLM 1) - add_subdirectory("${PROJECT_SOURCE_DIR}/deps/ntlmclient" "${PROJECT_BINARY_DIR}/deps/ntlmclient") - list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/ntlmclient") - list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$") -endif() -add_feature_info(ntlmclient GIT_NTLM "NTLM authentication support for Unix") - # # Include child projects # diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index 36a001e492d..f51dce3e082 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -98,7 +98,7 @@ int git_libgit2_features(void) #ifdef GIT_I18N_ICONV | GIT_FEATURE_I18N #endif -#if defined(GIT_NTLM) || defined(GIT_WIN32) +#if defined(GIT_AUTH_NTLM) | GIT_FEATURE_AUTH_NTLM #endif #if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32) @@ -200,10 +200,12 @@ const char *git_libgit2_feature_backend(git_feature_t feature) break; case GIT_FEATURE_AUTH_NTLM: -#if defined(GIT_NTLM) - return "ntlmclient"; -#elif defined(GIT_WIN32) +#if defined(GIT_AUTH_NTLM_BUILTIN) + return "builtin"; +#elif defined(GIT_AUTH_NTLM_SSPI) return "sspi"; +#elif defined(GIT_AUTH_NTLM) + GIT_ASSERT_WITH_RETVAL(!"Unknown NTLM backend", NULL); #endif break; diff --git a/src/libgit2/transports/auth_ntlm.h b/src/libgit2/transports/auth_ntlm.h index 33406ae94c3..b6610d94018 100644 --- a/src/libgit2/transports/auth_ntlm.h +++ b/src/libgit2/transports/auth_ntlm.h @@ -13,7 +13,7 @@ /* NTLM requires a full request/challenge/response */ #define GIT_AUTH_STEPS_NTLM 2 -#if defined(GIT_NTLM) || defined(GIT_WIN32) +#if defined(GIT_AUTH_NTLM) #if defined(GIT_OPENSSL) # define CRYPT_OPENSSL @@ -31,7 +31,7 @@ extern int git_http_auth_ntlm( #define git_http_auth_ntlm git_http_auth_dummy -#endif /* GIT_NTLM */ +#endif /* GIT_AUTH_NTLM */ #endif diff --git a/src/libgit2/transports/auth_ntlmclient.c b/src/libgit2/transports/auth_ntlmclient.c index 6f26a6179c6..b8c6e2353c1 100644 --- a/src/libgit2/transports/auth_ntlmclient.c +++ b/src/libgit2/transports/auth_ntlmclient.c @@ -12,7 +12,7 @@ #include "auth.h" #include "git2/sys/credential.h" -#ifdef GIT_NTLM +#ifdef GIT_AUTH_NTLM_BUILTIN #include "ntlmclient.h" @@ -224,4 +224,4 @@ int git_http_auth_ntlm( return 0; } -#endif /* GIT_NTLM */ +#endif /* GIT_AUTH_NTLM_BUILTIN */ diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index af7b5dd279d..27c2f688f83 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -36,7 +36,10 @@ #cmakedefine GIT_SSH_LIBSSH2 1 #cmakedefine GIT_SSH_LIBSSH2_MEMORY_CREDENTIALS 1 -#cmakedefine GIT_NTLM 1 +#cmakedefine GIT_AUTH_NTLM 1 +#cmakedefine GIT_AUTH_NTLM_BUILTIN 1 +#cmakedefine GIT_AUTH_NTLM_SSPI 1 + #cmakedefine GIT_GSSAPI 1 #cmakedefine GIT_GSSFRAMEWORK 1 diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index 69426c04020..26e3e51b1d1 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -33,7 +33,7 @@ void test_core_features__basic(void) cl_assert((caps & GIT_FEATURE_I18N) != 0); #endif -#if defined(GIT_NTLM) || defined(GIT_WIN32) +#if defined(GIT_AUTH_NTLM) cl_assert((caps & GIT_FEATURE_AUTH_NTLM) != 0); #endif #if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32) @@ -164,10 +164,12 @@ void test_core_features__backends(void) cl_assert(i18n == NULL); #endif -#if defined(GIT_NTLM) - cl_assert_equal_s("ntlmclient", ntlm); -#elif defined(GIT_WIN32) +#if defined(GIT_AUTH_NTLM_BUILTIN) + cl_assert_equal_s("builtin", ntlm); +#elif defined(GIT_AUTH_NTLM_SSPI) cl_assert_equal_s("sspi", ntlm); +#elif defined(GIT_AUTH_NTLM) + cl_assert(0); #else cl_assert(ntlm == NULL); #endif From c9974d28b2f00d69525085390b54817c77d1b6bb Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 10:46:26 +0000 Subject: [PATCH 09/58] cmake: update Negotiate backend selection --- CMakeLists.txt | 2 +- cmake/SelectAuthNegotiate.cmake | 61 +++++++++++++++++++++++++ cmake/SelectGSSAPI.cmake | 48 ------------------- src/CMakeLists.txt | 2 +- src/libgit2/libgit2.c | 10 ++-- src/libgit2/transports/auth_gssapi.c | 16 +++---- src/libgit2/transports/auth_negotiate.h | 4 +- src/util/git2_features.h.in | 6 ++- tests/libgit2/core/features.c | 10 ++-- 9 files changed, 91 insertions(+), 68 deletions(-) create mode 100644 cmake/SelectAuthNegotiate.cmake delete mode 100644 cmake/SelectGSSAPI.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 33a392c632b..04dab76e7aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,9 +34,9 @@ option(USE_NSEC "Support nanosecond precision file mtimes and cti set(USE_HTTPS "" CACHE STRING "Enable HTTPS support and optionally selects the provider. One of ON, OFF, or a specific provider: OpenSSL, OpenSSL-FIPS, OpenSSL-Dynamic, mbedTLS, SecureTransport, Schannel, or WinHTTP. (Defaults to ON.)") set(USE_SHA1 "" CACHE STRING "Selects SHA1 provider. One of builtin, HTTPS, or a specific provider. (Defaults to builtin.)") set(USE_SHA256 "" CACHE STRING "Selects SHA256 provider. One of Builtin, HTTPS, or a specific provider. (Defaults to HTTPS.)") -option(USE_GSSAPI "Enable SPNEGO authentication using GSSAPI" OFF) set(USE_HTTP_PARSER "" CACHE STRING "Selects HTTP Parser support: http-parser, llhttp, or builtin. (Defaults to builtin.)") set(USE_AUTH_NTLM "" CACHE STRING "Enables NTLM authentication support. One of Builtin or win32.") + set(USE_AUTH_NEGOTIATE "" CACHE STRING "Enable Negotiate (SPNEGO) authentication support. One of GSSAPI or win32.") # set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.") set(USE_REGEX "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") set(USE_COMPRESSION "" CACHE STRING "Selects compression backend. Either builtin or zlib.") diff --git a/cmake/SelectAuthNegotiate.cmake b/cmake/SelectAuthNegotiate.cmake new file mode 100644 index 00000000000..3615571bc27 --- /dev/null +++ b/cmake/SelectAuthNegotiate.cmake @@ -0,0 +1,61 @@ +include(SanitizeBool) + +find_package(GSSAPI) + +if(CMAKE_SYSTEM_NAME MATCHES "Darwin" OR CMAKE_SYSTEM_NAME MATCHES "iOS") + include(FindGSSFramework) +endif() + +if(USE_AUTH_NEGOTIATE STREQUAL "" AND NOT USE_GSSAPI STREQUAL "") + sanitizebool(USE_GSSAPI) + set(USE_AUTH_NEGOTIATE "${USE_GSSAPI}") +endif() + +sanitizebool(USE_AUTH_NEGOTIATE) + +if((USE_AUTH_NEGOTIATE STREQUAL ON OR USE_AUTH_NEGOTIATE STREQUAL "") AND GSSFRAMEWORK_FOUND) + set(USE_AUTH_NEGOTIATE "GSS.framework") +elseif((USE_AUTH_NEGOTIATE STREQUAL ON OR USE_AUTH_NEGOTIATE STREQUAL "") AND GSSAPI_FOUND) + set(USE_AUTH_NEGOTIATE "gssapi") +elseif((USE_AUTH_NEGOTIATE STREQUAL ON OR USE_AUTH_NEGOTIATE STREQUAL "") AND WIN32) + set(USE_AUTH_NEGOTIATE "sspi") +elseif(USE_AUTH_NEGOTIATE STREQUAL "") + set(USE_AUTH_NEGOTIATE OFF) +elseif(USE_AUTH_NEGOTIATE STREQUAL ON) + message(FATAL_ERROR "negotiate support was requested but no backend is available") +endif() + +if(USE_AUTH_NEGOTIATE STREQUAL "GSS.framework") + if(NOT GSSFRAMEWORK_FOUND) + message(FATAL_ERROR "GSS.framework could not be found") + endif() + + list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSFRAMEWORK_LIBRARIES}) + + set(GIT_AUTH_NEGOTIATE 1) + set(GIT_AUTH_NEGOTIATE_GSSFRAMEWORK 1) + add_feature_info("Negotiate authentication" ON "using GSS.framework") +elseif(USE_AUTH_NEGOTIATE STREQUAL "gssapi") + if(NOT GSSAPI_FOUND) + message(FATAL_ERROR "GSSAPI could not be found") + endif() + + list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSAPI_LIBRARIES}) + + set(GIT_AUTH_NEGOTIATE 1) + set(GIT_AUTH_NEGOTIATE_GSSAPI 1) + add_feature_info("Negotiate authentication" ON "using GSSAPI") +elseif(USE_AUTH_NEGOTIATE STREQUAL "sspi") + if(NOT WIN32) + message(FATAL_ERROR "SSPI is only available on Win32") + endif() + + set(GIT_AUTH_NEGOTIATE 1) + set(GIT_AUTH_NEGOTIATE_SSPI 1) + add_feature_info("Negotiate authentication" ON "using Win32 SSPI") +elseif(USE_AUTH_NEGOTIATE STREQUAL OFF) + set(GIT_AUTH_NEGOTIATE 0) + add_feature_info("Negotiate authentication" OFF "SPNEGO support is disabled") +else() + message(FATAL_ERROR "unknown negotiate option: ${USE_AUTH_NEGOTIATE}") +endif() diff --git a/cmake/SelectGSSAPI.cmake b/cmake/SelectGSSAPI.cmake deleted file mode 100644 index 829850a4de9..00000000000 --- a/cmake/SelectGSSAPI.cmake +++ /dev/null @@ -1,48 +0,0 @@ -include(SanitizeBool) - -# We try to find any packages our backends might use -find_package(GSSAPI) -if(CMAKE_SYSTEM_NAME MATCHES "Darwin" OR CMAKE_SYSTEM_NAME MATCHES "iOS") - include(FindGSSFramework) -endif() - -if(USE_GSSAPI) - # Auto-select GSS backend - sanitizebool(USE_GSSAPI) - if(USE_GSSAPI STREQUAL ON) - if(GSSFRAMEWORK_FOUND) - set(USE_GSSAPI "GSS.framework") - elseif(GSSAPI_FOUND) - set(USE_GSSAPI "gssapi") - else() - message(FATAL_ERROR "Unable to autodetect a usable GSS backend." - "Please pass the backend name explicitly (-DUSE_GSS=backend)") - endif() - endif() - - # Check that we can find what's required for the selected backend - if(USE_GSSAPI STREQUAL "GSS.framework") - if(NOT GSSFRAMEWORK_FOUND) - message(FATAL_ERROR "Asked for GSS.framework backend, but it wasn't found") - endif() - - list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSFRAMEWORK_LIBRARIES}) - - set(GIT_GSSFRAMEWORK 1) - add_feature_info(GSSAPI GIT_GSSFRAMEWORK "GSSAPI support for SPNEGO authentication (${USE_GSSAPI})") - elseif(USE_GSSAPI STREQUAL "gssapi") - if(NOT GSSAPI_FOUND) - message(FATAL_ERROR "Asked for gssapi GSS backend, but it wasn't found") - endif() - - list(APPEND LIBGIT2_SYSTEM_LIBS ${GSSAPI_LIBRARIES}) - - set(GIT_GSSAPI 1) - add_feature_info(GSSAPI GIT_GSSAPI "GSSAPI support for SPNEGO authentication (${USE_GSSAPI})") - else() - message(FATAL_ERROR "Asked for backend ${USE_GSSAPI} but it wasn't found") - endif() -else() - set(GIT_GSSAPI 0) - add_feature_info(GSSAPI NO "GSSAPI support for SPNEGO authentication") -endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 02895f98096..d6e6cf54230 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -36,7 +36,6 @@ add_feature_info(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open") # Optional feature enablement # -include(SelectGSSAPI) include(SelectHTTPSBackend) include(SelectHashes) include(SelectHTTPParser) @@ -46,6 +45,7 @@ include(SelectSSH) include(SelectCompression) include(SelectI18n) include(SelectAuthNTLM) +include(SelectAuthNegotiate) # # Platform support diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index f51dce3e082..537a839a114 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -101,7 +101,7 @@ int git_libgit2_features(void) #if defined(GIT_AUTH_NTLM) | GIT_FEATURE_AUTH_NTLM #endif -#if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32) +#if defined(GIT_AUTH_NEGOTIATE) | GIT_FEATURE_AUTH_NEGOTIATE #endif | GIT_FEATURE_COMPRESSION @@ -210,10 +210,14 @@ const char *git_libgit2_feature_backend(git_feature_t feature) break; case GIT_FEATURE_AUTH_NEGOTIATE: -#if defined(GIT_GSSAPI) +#if defined(GIT_AUTH_NEGOTIATE_GSSFRAMEWORK) + return "gssframework"; +#elif defined(GIT_AUTH_NEGOTIATE_GSSAPI) return "gssapi"; -#elif defined(GIT_WIN32) +#elif defined(GIT_AUTH_NEGOTIATE_SSPI) return "sspi"; +#elif defined(GIT_AUTH_NEGOTIATE) + GIT_ASSERT_WITH_RETVAL(!"Unknown Negotiate backend", NULL); #endif break; diff --git a/src/libgit2/transports/auth_gssapi.c b/src/libgit2/transports/auth_gssapi.c index 5005538411b..647f3ce3fa0 100644 --- a/src/libgit2/transports/auth_gssapi.c +++ b/src/libgit2/transports/auth_gssapi.c @@ -7,17 +7,18 @@ #include "auth_negotiate.h" -#if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) +#if defined(GIT_AUTH_NEGOTIATE_GSSAPI) || \ + defined(GIT_AUTH_NEGOTIATE_GSSFRAMEWORK) #include "git2.h" #include "auth.h" #include "git2/sys/credential.h" -#ifdef GIT_GSSFRAMEWORK -#import -#elif defined(GIT_GSSAPI) -#include -#include +#if defined(GIT_AUTH_NEGOTIATE_GSSFRAMEWORK) +# import +#elif defined(GIT_AUTH_NEGOTIATE_GSSAPI) +# include +# include #endif static gss_OID_desc gssapi_oid_spnego = @@ -310,5 +311,4 @@ int git_http_auth_negotiate( return 0; } -#endif /* GIT_GSSAPI */ - +#endif /* GIT_AUTH_NEGOTIATE_GSS... */ diff --git a/src/libgit2/transports/auth_negotiate.h b/src/libgit2/transports/auth_negotiate.h index 4360785c555..e528b402a9a 100644 --- a/src/libgit2/transports/auth_negotiate.h +++ b/src/libgit2/transports/auth_negotiate.h @@ -12,7 +12,7 @@ #include "git2.h" #include "auth.h" -#if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32) +#ifdef GIT_AUTH_NEGOTIATE extern int git_http_auth_negotiate( git_http_auth_context **out, @@ -22,6 +22,6 @@ extern int git_http_auth_negotiate( #define git_http_auth_negotiate git_http_auth_dummy -#endif /* GIT_GSSAPI */ +#endif /* GIT_AUTH_NEGOTIATE */ #endif diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index 27c2f688f83..a5cf6a9e0fb 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -40,8 +40,10 @@ #cmakedefine GIT_AUTH_NTLM_BUILTIN 1 #cmakedefine GIT_AUTH_NTLM_SSPI 1 -#cmakedefine GIT_GSSAPI 1 -#cmakedefine GIT_GSSFRAMEWORK 1 +#cmakedefine GIT_AUTH_NEGOTIATE 1 +#cmakedefine GIT_AUTH_NEGOTIATE_GSSFRAMEWORK 1 +#cmakedefine GIT_AUTH_NEGOTIATE_GSSAPI 1 +#cmakedefine GIT_AUTH_NEGOTIATE_SSPI 1 #cmakedefine GIT_WINHTTP 1 #cmakedefine GIT_HTTPS 1 diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index 26e3e51b1d1..9eaa9f35055 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -36,7 +36,7 @@ void test_core_features__basic(void) #if defined(GIT_AUTH_NTLM) cl_assert((caps & GIT_FEATURE_AUTH_NTLM) != 0); #endif -#if defined(GIT_GSSAPI) || defined(GIT_GSSFRAMEWORK) || defined(GIT_WIN32) +#if defined(GIT_AUTH_NEGOTIATE) cl_assert((caps & GIT_FEATURE_AUTH_NEGOTIATE) != 0); #endif @@ -174,10 +174,14 @@ void test_core_features__backends(void) cl_assert(ntlm == NULL); #endif -#if defined(GIT_GSSAPI) +#if defined(GIT_AUTH_NEGOTIATE_GSSFRAMEWORK) + cl_assert_equal_s("gssframework", negotiate); +#elif defined(GIT_AUTH_NEGOTIATE_GSSAPI) cl_assert_equal_s("gssapi", negotiate); -#elif defined(GIT_WIN32) +#elif defined(GIT_AUTH_NEGOTIATE_SSPI) cl_assert_equal_s("sspi", negotiate); +#elif defined(GIT_AUTH_NEGOTIATE) + cl_assert(0); #else cl_assert(negotiate == NULL); #endif From 8bbd2f406eeb904d976f4de1ee76d0435d577264 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 10:56:24 +0000 Subject: [PATCH 10/58] cmake: use DEBUG_LEAK_CHECKER as option The `USE_` prefix for inputs denotes a backend; the `DEBUG_` prefix denotes a debugging option. Make `DEBUG_LEAK_CHECKER` the name of the leak checking option. --- .github/workflows/experimental.yml | 4 ++-- .github/workflows/main.yml | 10 ++++---- .github/workflows/nightly.yml | 38 +++++++++++++++--------------- CMakeLists.txt | 2 +- cmake/AddClarTest.cmake | 6 +++-- src/CMakeLists.txt | 2 +- 6 files changed, 32 insertions(+), 30 deletions(-) diff --git a/.github/workflows/experimental.yml b/.github/workflows/experimental.yml index 07442bddecb..8ffb4b63cbc 100644 --- a/.github/workflows/experimental.yml +++ b/.github/workflows/experimental.yml @@ -34,14 +34,14 @@ jobs: env: CC: clang CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DEXPERIMENTAL_SHA256=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DEXPERIMENTAL_SHA256=ON - name: "macOS (SHA256)" id: macos-sha256 os: macos-13 setup-script: osx env: CC: clang - CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DEXPERIMENTAL_SHA256=ON + CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DEXPERIMENTAL_SHA256=ON CMAKE_GENERATOR: Ninja PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig SKIP_SSH_TESTS: true diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3616c743d7e..f6af730b10a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,7 +34,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON - name: "Linux (Noble, Clang, mbedTLS, OpenSSH)" id: noble-clang-mbedtls os: ubuntu-latest @@ -42,7 +42,7 @@ jobs: name: noble env: CC: clang - CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DUSE_HTTP_PARSER=http-parser + CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DUSE_HTTP_PARSER=http-parser CMAKE_GENERATOR: Ninja - name: "Linux (Xenial, GCC, OpenSSL, OpenSSH)" id: xenial-gcc-openssl @@ -52,7 +52,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON - name: "Linux (Xenial, Clang, mbedTLS, libssh2)" id: xenial-gcc-mbedtls os: ubuntu-latest @@ -61,14 +61,14 @@ jobs: env: CC: clang CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 + CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 - name: "macOS" id: macos os: macos-13 setup-script: osx env: CC: clang - CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON + CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON CMAKE_GENERATOR: Ninja PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig SKIP_SSH_TESTS: true diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index b9392f84063..a12803d5b16 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -35,7 +35,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON - name: "Linux (Noble, Clang, mbedTLS, OpenSSH)" id: noble-clang-mbedtls os: ubuntu-latest @@ -43,7 +43,7 @@ jobs: name: noble env: CC: clang - CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DUSE_HTTP_PARSER=http-parser + CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DUSE_HTTP_PARSER=http-parser CMAKE_GENERATOR: Ninja - name: "Linux (Xenial, GCC, OpenSSL, OpenSSH)" id: xenial-gcc-openssl @@ -53,7 +53,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON - name: "Linux (Xenial, Clang, mbedTLS, libssh2)" id: xenial-gcc-mbedtls os: ubuntu-latest @@ -62,14 +62,14 @@ jobs: env: CC: clang CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 + CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 - name: "macOS" id: macos os: macos-13 setup-script: osx env: CC: clang - CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON + CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON CMAKE_GENERATOR: Ninja PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig SKIP_SSH_TESTS: true @@ -80,7 +80,7 @@ jobs: setup-script: ios env: CC: clang - CMAKE_OPTIONS: -DBUILD_TESTS=OFF -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DCMAKE_SYSTEM_NAME=iOS -DPLATFORM=OS64 + CMAKE_OPTIONS: -DBUILD_TESTS=OFF -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DCMAKE_SYSTEM_NAME=iOS -DPLATFORM=OS64 CMAKE_GENERATOR: Ninja PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig SKIP_TESTS: true # Cannot exec iOS app on macOS @@ -188,7 +188,7 @@ jobs: container: name: centos7 env: - CMAKE_OPTIONS: -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON PKG_CONFIG_PATH: /usr/local/lib/pkgconfig SKIP_NEGOTIATE_TESTS: true SKIP_PUSHOPTIONS_TESTS: true @@ -198,7 +198,7 @@ jobs: container: name: centos7 env: - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON PKG_CONFIG_PATH: /usr/local/lib/pkgconfig SKIP_NEGOTIATE_TESTS: true SKIP_PUSHOPTIONS_TESTS: true @@ -208,7 +208,7 @@ jobs: container: name: centos8 env: - CMAKE_OPTIONS: -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON + CMAKE_OPTIONS: -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON PKG_CONFIG_PATH: /usr/local/lib/pkgconfig SKIP_NEGOTIATE_TESTS: true SKIP_SSH_TESTS: true @@ -218,7 +218,7 @@ jobs: container: name: centos8 env: - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON PKG_CONFIG_PATH: /usr/local/lib/pkgconfig SKIP_NEGOTIATE_TESTS: true SKIP_SSH_TESTS: true @@ -231,7 +231,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=pcre2 -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DUSE_HTTP_PARSER=llhttp + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=pcre2 -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DUSE_HTTP_PARSER=llhttp - name: "Linux (Bionic, GCC, dynamically-loaded OpenSSL)" id: bionic-gcc-dynamicopenssl container: @@ -240,7 +240,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON RUN_INVASIVE_TESTS: true SKIP_PUSHOPTIONS_TESTS: true os: ubuntu-latest @@ -253,7 +253,7 @@ jobs: env: CC: clang CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON RUN_INVASIVE_TESTS: true SKIP_PUSHOPTIONS_TESTS: true os: ubuntu-latest @@ -265,7 +265,7 @@ jobs: env: CC: gcc CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON RUN_INVASIVE_TESTS: true SKIP_PUSHOPTIONS_TESTS: true os: ubuntu-latest @@ -307,7 +307,7 @@ jobs: name: xenial env: CC: gcc - CMAKE_OPTIONS: -DTHREADSAFE=OFF -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DTHREADSAFE=OFF -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON CMAKE_GENERATOR: Ninja SKIP_PUSHOPTIONS_TESTS: true - name: "Linux (no mmap)" @@ -341,7 +341,7 @@ jobs: name: xenial env: CC: clang - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL-Dynamic -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON CMAKE_GENERATOR: Ninja # All builds: experimental SHA256 support @@ -352,7 +352,7 @@ jobs: env: CC: clang CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON os: ubuntu-latest - name: "macOS (SHA256)" id: macos-sha256 @@ -360,7 +360,7 @@ jobs: setup-script: osx env: CC: clang - CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DEXPERIMENTAL_SHA256=ON + CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DEXPERIMENTAL_SHA256=ON PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig SKIP_SSH_TESTS: true SKIP_NEGOTIATE_TESTS: true @@ -382,7 +382,7 @@ jobs: env: CC: clang CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DUSE_SHA1=OpenSSL-FIPS -DUSE_SHA256=OpenSSL-FIPS + CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DDEBUG_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DUSE_SHA1=OpenSSL-FIPS -DUSE_SHA256=OpenSSL-FIPS os: ubuntu-latest fail-fast: false env: ${{ matrix.platform.env }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 04dab76e7aa..060d8b7e317 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,7 +47,7 @@ if(APPLE) endif() # Debugging options -option(USE_LEAK_CHECKER "Run tests with leak checker" OFF) + set(DEBUG_LEAK_CHECKER "" CACHE STRING "Run tests with leak checker. Either valgrind or leaks.") option(USE_STANDALONE_FUZZERS "Enable standalone fuzzers (compatible with gcc)" OFF) option(DEBUG_POOL "Enable debug pool allocator" OFF) option(DEBUG_STRICT_ALLOC "Enable strict allocator behavior" OFF) diff --git a/cmake/AddClarTest.cmake b/cmake/AddClarTest.cmake index 74394163825..26e9273306f 100644 --- a/cmake/AddClarTest.cmake +++ b/cmake/AddClarTest.cmake @@ -1,6 +1,8 @@ function(ADD_CLAR_TEST project name) - if(NOT USE_LEAK_CHECKER STREQUAL "OFF") - add_test(${name} "${PROJECT_SOURCE_DIR}/script/${USE_LEAK_CHECKER}.sh" "${PROJECT_BINARY_DIR}/${project}" ${ARGN}) + if(NOT DEBUG_LEAK_CHECKER STREQUAL "OFF" AND + NOT DEBUG_LEAK_CHECKER STREQUAL "" AND + NOT DEBUG_LEAK_CHECKER STREQUAL "win32") + add_test(${name} "${PROJECT_SOURCE_DIR}/script/${DEBUG_LEAK_CHECKER}.sh" "${PROJECT_BINARY_DIR}/${project}" ${ARGN}) else() add_test(${name} "${PROJECT_BINARY_DIR}/${project}" ${ARGN}) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d6e6cf54230..3921489a58b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,7 +9,7 @@ if(DEPRECATE_HARD) add_definitions(-DGIT_DEPRECATE_HARD) endif() -if(USE_LEAK_CHECKER STREQUAL "valgrind") +if(DEBUG_LEAK_CHECKER STREQUAL "valgrind") add_definitions(-DVALGRIND) endif() From 890d70856cbab8af641bffd3a878272aac70f438 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 11:29:41 +0000 Subject: [PATCH 11/58] cmake: update nanosecond selection For consistency, specify the nanosecond option in the same way as other options, and identify it as such. Split the detection of platform support (`FindStatNsec`) and its selection (`SelectNsec`). --- CMakeLists.txt | 4 +- cmake/FindStatNsec.cmake | 14 ------ cmake/SelectNsec.cmake | 58 +++++++++++++++++++++++ src/CMakeLists.txt | 17 +------ src/libgit2/index.c | 2 +- src/libgit2/index.h | 4 +- src/libgit2/iterator.c | 2 +- src/libgit2/libgit2.c | 14 +++--- src/util/futils.c | 6 +-- src/util/git2_features.h.in | 10 ++-- src/util/unix/posix.h | 8 ++-- src/util/win32/w32_util.h | 4 +- tests/libgit2/checkout/checkout_helpers.h | 1 + tests/libgit2/core/features.c | 14 +++--- tests/libgit2/merge/workdir/dirty.c | 2 +- 15 files changed, 97 insertions(+), 63 deletions(-) create mode 100644 cmake/SelectNsec.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 060d8b7e317..b90e7c1276a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,9 +27,8 @@ option(BUILD_FUZZERS "Build the fuzz targets" # Suggested functionality that may not be available on a per-platform basis option(USE_THREADS "Use threads for parallel processing when possible" ON) -option(USE_NSEC "Support nanosecond precision file mtimes and ctimes" ON) -# Backend selection +# Feature enablement and backend selection set(USE_SSH "" CACHE STRING "Enables SSH support and optionally selects provider. One of ON, OFF, or a specific provider: libssh2 or exec. (Defaults to OFF.)") set(USE_HTTPS "" CACHE STRING "Enable HTTPS support and optionally selects the provider. One of ON, OFF, or a specific provider: OpenSSL, OpenSSL-FIPS, OpenSSL-Dynamic, mbedTLS, SecureTransport, Schannel, or WinHTTP. (Defaults to ON.)") set(USE_SHA1 "" CACHE STRING "Selects SHA1 provider. One of builtin, HTTPS, or a specific provider. (Defaults to builtin.)") @@ -40,6 +39,7 @@ option(USE_NSEC "Support nanosecond precision file mtimes and cti # set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.") set(USE_REGEX "" CACHE STRING "Selects regex provider. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") set(USE_COMPRESSION "" CACHE STRING "Selects compression backend. Either builtin or zlib.") + set(USE_NSEC "" CACHE STRING "Enable nanosecond precision timestamps. One of ON, OFF, or a specific provider: mtimespec, mtim, mtime, or win32. (Defaults to ON).") if(APPLE) # Currently only available on macOS for `precomposeUnicode` support diff --git a/cmake/FindStatNsec.cmake b/cmake/FindStatNsec.cmake index 9dfdf51c4e7..368cfedc1cc 100644 --- a/cmake/FindStatNsec.cmake +++ b/cmake/FindStatNsec.cmake @@ -1,20 +1,6 @@ -include(FeatureSummary) - check_struct_has_member("struct stat" st_mtim "sys/types.h;sys/stat.h" HAVE_STRUCT_STAT_ST_MTIM LANGUAGE C) check_struct_has_member("struct stat" st_mtimespec "sys/types.h;sys/stat.h" HAVE_STRUCT_STAT_ST_MTIMESPEC LANGUAGE C) check_struct_has_member("struct stat" st_mtime_nsec sys/stat.h HAVE_STRUCT_STAT_MTIME_NSEC LANGUAGE C) - -if(HAVE_STRUCT_STAT_ST_MTIM) - check_struct_has_member("struct stat" st_mtim.tv_nsec sys/stat.h - HAVE_STRUCT_STAT_NSEC LANGUAGE C) -elseif(HAVE_STRUCT_STAT_ST_MTIMESPEC) - check_struct_has_member("struct stat" st_mtimespec.tv_nsec sys/stat.h - HAVE_STRUCT_STAT_NSEC LANGUAGE C) -else() - set(HAVE_STRUCT_STAT_NSEC ON ) -endif() - -add_feature_info(nanoseconds USE_NSEC "support nanosecond precision file mtimes and ctimes") diff --git a/cmake/SelectNsec.cmake b/cmake/SelectNsec.cmake new file mode 100644 index 00000000000..392b92bc45c --- /dev/null +++ b/cmake/SelectNsec.cmake @@ -0,0 +1,58 @@ +include(SanitizeBool) +include(FeatureSummary) + +sanitizebool(USE_NSEC) + +if((USE_NSEC STREQUAL ON OR USE_NSEC STREQUAL "") AND HAVE_STRUCT_STAT_ST_MTIM) + set(USE_NSEC "mtim") +elseif((USE_NSEC STREQUAL ON OR USE_NSEC STREQUAL "") AND HAVE_STRUCT_STAT_ST_MTIMESPEC) + set(USE_NSEC "mtimespec") +elseif((USE_NSEC STREQUAL ON OR USE_NSEC STREQUAL "") AND HAVE_STRUCT_STAT_MTIME_NSEC) + set(USE_NSEC "mtime_nsec") +elseif((USE_NSEC STREQUAL ON OR USE_NSEC STREQUAL "") AND WIN32) + set(USE_NSEC "win32") +elseif(USE_NSEC STREQUAL "") + message(WARNING "nanosecond timestamp precision was not detected") + set(USE_NSEC OFF) +elseif(USE_NSEC STREQUAL ON) + message(FATAL_ERROR "nanosecond support was requested but no platform support is available") +endif() + +if(USE_NSEC STREQUAL "mtim") + if(NOT HAVE_STRUCT_STAT_ST_MTIM) + message(FATAL_ERROR "stat mtim could not be found") + endif() + + set(GIT_NSEC 1) + set(GIT_NSEC_MTIM 1) + add_feature_info("Nanosecond support" ON "using mtim") +elseif(USE_NSEC STREQUAL "mtimespec") + if(NOT HAVE_STRUCT_STAT_ST_MTIMESPEC) + message(FATAL_ERROR "mtimespec could not be found") + endif() + + set(GIT_NSEC 1) + set(GIT_NSEC_MTIMESPEC 1) + add_feature_info("Nanosecond support" ON "using mtimespec") +elseif(USE_NSEC STREQUAL "mtime_nsec") + if(NOT HAVE_STRUCT_STAT_MTIME_NSEC) + message(FATAL_ERROR "mtime_nsec could not be found") + endif() + + set(GIT_NSEC 1) + set(GIT_NSEC_MTIME_NSEC 1) + add_feature_info("Nanosecond support" ON "using mtime_nsec") +elseif(USE_NSEC STREQUAL "win32") + if(NOT WIN32) + message(FATAL_ERROR "Win32 API support is not available on this platform") + endif() + + set(GIT_NSEC 1) + set(GIT_NSEC_WIN32 1) + add_feature_info("Nanosecond support" ON "using Win32 APIs") +elseif(USE_NSEC STREQUAL OFF) + set(GIT_NSEC 0) + add_feature_info("Nanosecond support" OFF "Nanosecond timestamp resolution is disabled") +else() + message(FATAL_ERROR "unknown nanosecond option: ${USE_NSEC}") +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3921489a58b..4aa062e7e20 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -36,6 +36,7 @@ add_feature_info(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open") # Optional feature enablement # +include(SelectNsec) include(SelectHTTPSBackend) include(SelectHashes) include(SelectHTTPParser) @@ -110,22 +111,6 @@ else() message(FATAL_ERROR "Unsupported architecture (CMAKE_SIZEOF_VOID_P is unset)") endif() -# nanosecond mtime/ctime support - -if(USE_NSEC) - set(GIT_USE_NSEC 1) -endif() - -# high-resolution stat support - -if(HAVE_STRUCT_STAT_ST_MTIM) - set(GIT_USE_STAT_MTIM 1) -elseif(HAVE_STRUCT_STAT_ST_MTIMESPEC) - set(GIT_USE_STAT_MTIMESPEC 1) -elseif(HAVE_STRUCT_STAT_ST_MTIME_NSEC) - set(GIT_USE_STAT_MTIME_NSEC 1) -endif() - # realtime support check_library_exists(rt clock_gettime "time.h" NEED_LIBRT) diff --git a/src/libgit2/index.c b/src/libgit2/index.c index a3142c8bcd9..625315184f2 100644 --- a/src/libgit2/index.c +++ b/src/libgit2/index.c @@ -902,7 +902,7 @@ void git_index_entry__init_from_stat( { entry->ctime.seconds = (int32_t)st->st_ctime; entry->mtime.seconds = (int32_t)st->st_mtime; -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) entry->mtime.nanoseconds = st->st_mtime_nsec; entry->ctime.nanoseconds = st->st_ctime_nsec; #endif diff --git a/src/libgit2/index.h b/src/libgit2/index.h index 601e98f1ce2..57222a8c6f7 100644 --- a/src/libgit2/index.h +++ b/src/libgit2/index.h @@ -85,7 +85,7 @@ GIT_INLINE(bool) git_index_time_eq(const git_index_time *one, const git_index_ti if (one->seconds != two->seconds) return false; -#ifdef GIT_USE_NSEC +#ifdef GIT_NSEC if (one->nanoseconds != two->nanoseconds) return false; #endif @@ -106,7 +106,7 @@ GIT_INLINE(bool) git_index_entry_newer_than_index( return false; /* If the timestamp is the same or newer than the index, it's racy */ -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) if ((int32_t)index->stamp.mtime.tv_sec < entry->mtime.seconds) return true; else if ((int32_t)index->stamp.mtime.tv_sec > entry->mtime.seconds) diff --git a/src/libgit2/iterator.c b/src/libgit2/iterator.c index 5b3e0248539..4eca11f7cd1 100644 --- a/src/libgit2/iterator.c +++ b/src/libgit2/iterator.c @@ -1520,7 +1520,7 @@ static void filesystem_iterator_set_current( iter->entry.ctime.seconds = (int32_t)entry->st.st_ctime; iter->entry.mtime.seconds = (int32_t)entry->st.st_mtime; -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) iter->entry.ctime.nanoseconds = entry->st.st_ctime_nsec; iter->entry.mtime.nanoseconds = entry->st.st_mtime_nsec; #else diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index 537a839a114..5e0aaf67825 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -90,7 +90,7 @@ int git_libgit2_features(void) #ifdef GIT_SSH | GIT_FEATURE_SSH #endif -#ifdef GIT_USE_NSEC +#ifdef GIT_NSEC | GIT_FEATURE_NSEC #endif | GIT_FEATURE_HTTP_PARSER @@ -152,15 +152,15 @@ const char *git_libgit2_feature_backend(git_feature_t feature) break; case GIT_FEATURE_NSEC: -#if defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIMESPEC) +#if defined(GIT_NSEC_MTIMESPEC) return "mtimespec"; -#elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIM) +#elif defined(GIT_NSEC_MTIM) return "mtim"; -#elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIME_NSEC) - return "mtime"; -#elif defined(GIT_USE_NSEC) && defined(GIT_WIN32) +#elif defined(GIT_NSEC_MTIME_NSEC) + return "mtime_nsec"; +#elif defined(GIT_NSEC_WIN32) return "win32"; -#elif defined(GIT_USE_NSEC) +#elif defined(GIT_NSEC) GIT_ASSERT_WITH_RETVAL(!"Unknown high-resolution time backend", NULL); #endif break; diff --git a/src/util/futils.c b/src/util/futils.c index eb32cbb1205..25c3a1be180 100644 --- a/src/util/futils.c +++ b/src/util/futils.c @@ -1158,7 +1158,7 @@ int git_futils_filestamp_check( return GIT_ENOTFOUND; if (stamp->mtime.tv_sec == st.st_mtime && -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) stamp->mtime.tv_nsec == st.st_mtime_nsec && #endif stamp->size == (uint64_t)st.st_size && @@ -1166,7 +1166,7 @@ int git_futils_filestamp_check( return 0; stamp->mtime.tv_sec = st.st_mtime; -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) stamp->mtime.tv_nsec = st.st_mtime_nsec; #endif stamp->size = (uint64_t)st.st_size; @@ -1190,7 +1190,7 @@ void git_futils_filestamp_set_from_stat( { if (st) { stamp->mtime.tv_sec = st->st_mtime; -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) stamp->mtime.tv_nsec = st->st_mtime_nsec; #else stamp->mtime.tv_nsec = 0; diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index a5cf6a9e0fb..f7c4e33f573 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -14,10 +14,12 @@ #cmakedefine GIT_I18N 1 #cmakedefine GIT_I18N_ICONV 1 -#cmakedefine GIT_USE_NSEC 1 -#cmakedefine GIT_USE_STAT_MTIM 1 -#cmakedefine GIT_USE_STAT_MTIMESPEC 1 -#cmakedefine GIT_USE_STAT_MTIME_NSEC 1 +#cmakedefine GIT_NSEC 1 +#cmakedefine GIT_NSEC_MTIM 1 +#cmakedefine GIT_NSEC_MTIMESPEC 1 +#cmakedefine GIT_NSEC_MTIME_NSEC 1 +#cmakedefine GIT_NSEC_WIN32 1 + #cmakedefine GIT_USE_FUTIMENS 1 #cmakedefine GIT_REGEX_REGCOMP_L 1 diff --git a/src/util/unix/posix.h b/src/util/unix/posix.h index 60f27d3d333..d1fc19e4566 100644 --- a/src/util/unix/posix.h +++ b/src/util/unix/posix.h @@ -23,16 +23,16 @@ typedef int GIT_SOCKET; #define p_lstat(p,b) lstat(p,b) #define p_stat(p,b) stat(p, b) -#if defined(GIT_USE_STAT_MTIMESPEC) +#if defined(GIT_NSEC_MTIMESPEC) # define st_atime_nsec st_atimespec.tv_nsec # define st_mtime_nsec st_mtimespec.tv_nsec # define st_ctime_nsec st_ctimespec.tv_nsec -#elif defined(GIT_USE_STAT_MTIM) +#elif defined(GIT_NSEC_MTIM) # define st_atime_nsec st_atim.tv_nsec # define st_mtime_nsec st_mtim.tv_nsec # define st_ctime_nsec st_ctim.tv_nsec -#elif !defined(GIT_USE_STAT_MTIME_NSEC) && defined(GIT_USE_NSEC) -# error GIT_USE_NSEC defined but unknown struct stat nanosecond type +#elif !defined(GIT_NSEC_MTIME_NSEC) && defined(GIT_NSEC) +# error GIT_NSEC defined but unknown struct stat nanosecond type #endif #define p_utimes(f, t) utimes(f, t) diff --git a/src/util/win32/w32_util.h b/src/util/win32/w32_util.h index 519663720d5..dfdf69cd0db 100644 --- a/src/util/win32/w32_util.h +++ b/src/util/win32/w32_util.h @@ -77,8 +77,10 @@ GIT_INLINE(void) git_win32__filetime_to_timespec( int64_t winTime = ((int64_t)ft->dwHighDateTime << 32) + ft->dwLowDateTime; winTime -= INT64_C(116444736000000000); /* Windows to Unix Epoch conversion */ ts->tv_sec = (time_t)(winTime / 10000000); -#ifdef GIT_USE_NSEC +#ifdef GIT_NSEC_WIN32 ts->tv_nsec = (winTime % 10000000) * 100; +#elif GIT_NSEC +# error GIT_NSEC defined but GIT_NSEC_WIN32 not defined #else ts->tv_nsec = 0; #endif diff --git a/tests/libgit2/checkout/checkout_helpers.h b/tests/libgit2/checkout/checkout_helpers.h index 879b48b06d7..6c723ffdf59 100644 --- a/tests/libgit2/checkout/checkout_helpers.h +++ b/tests/libgit2/checkout/checkout_helpers.h @@ -1,5 +1,6 @@ #include "git2/object.h" #include "git2/repository.h" +#include "git2_features.h" extern void assert_on_branch(git_repository *repo, const char *branch); extern void reset_index_to_treeish(git_object *treeish); diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index 9eaa9f35055..4fcce91fd5c 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -20,7 +20,7 @@ void test_core_features__basic(void) cl_assert((caps & GIT_FEATURE_SSH) == 0); #endif -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) cl_assert((caps & GIT_FEATURE_NSEC) != 0); #else cl_assert((caps & GIT_FEATURE_NSEC) == 0); @@ -118,15 +118,15 @@ void test_core_features__backends(void) cl_assert(ssh == NULL); #endif -#if defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIMESPEC) +#if defined(GIT_NSEC_MTIMESPEC) cl_assert_equal_s("mtimespec", nsec); -#elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIM) +#elif defined(GIT_NSEC_MTIM) cl_assert_equal_s("mtim", nsec); -#elif defined(GIT_USE_NSEC) && defined(GIT_USE_STAT_MTIME_NSEC) - cl_assert_equal_s("mtime", nsec); -#elif defined(GIT_USE_NSEC) && defined(GIT_WIN32) +#elif defined(GIT_NSEC_MTIME_NSEC) + cl_assert_equal_s("mtime_nsec", nsec); +#elif defined(GIT_NSEC_WIN32) cl_assert_equal_s("win32", nsec); -#elif defined(GIT_USE_NSEC) +#elif defined(GIT_NSEC) cl_assert(0); #else cl_assert(nsec == NULL); diff --git a/tests/libgit2/merge/workdir/dirty.c b/tests/libgit2/merge/workdir/dirty.c index 570e7c759e5..723b259eaba 100644 --- a/tests/libgit2/merge/workdir/dirty.c +++ b/tests/libgit2/merge/workdir/dirty.c @@ -162,7 +162,7 @@ static void hack_index(char *files[]) entry->ctime.seconds = (int32_t)statbuf.st_ctime; entry->mtime.seconds = (int32_t)statbuf.st_mtime; -#if defined(GIT_USE_NSEC) +#if defined(GIT_NSEC) entry->ctime.nanoseconds = statbuf.st_ctime_nsec; entry->mtime.nanoseconds = statbuf.st_mtime_nsec; #else From 2b581ef517f2a7af01a2d9ee9874cc7dece34dc3 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 11:40:44 +0000 Subject: [PATCH 12/58] cmake: update threads For consistency with other backend/provider selection, allow `USE_THREADS` to select the threads provider. --- CMakeLists.txt | 4 +--- cmake/SelectThreads.cmake | 41 +++++++++++++++++++++++++++++++++++ src/CMakeLists.txt | 14 +----------- src/libgit2/libgit2.c | 6 +++-- src/util/git2_features.h.in | 3 +++ tests/libgit2/core/features.c | 6 +++-- 6 files changed, 54 insertions(+), 20 deletions(-) create mode 100644 cmake/SelectThreads.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index b90e7c1276a..864f813ff0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,10 +25,8 @@ option(BUILD_CLI "Build the command-line interface" option(BUILD_EXAMPLES "Build library usage example apps" OFF) option(BUILD_FUZZERS "Build the fuzz targets" OFF) -# Suggested functionality that may not be available on a per-platform basis -option(USE_THREADS "Use threads for parallel processing when possible" ON) - # Feature enablement and backend selection + set(USE_THREADS "" CACHE STRING "Use threads for parallel processing when possible. One of ON, OFF, or a specific provider: pthreads or win32. (Defaults to ON.)") set(USE_SSH "" CACHE STRING "Enables SSH support and optionally selects provider. One of ON, OFF, or a specific provider: libssh2 or exec. (Defaults to OFF.)") set(USE_HTTPS "" CACHE STRING "Enable HTTPS support and optionally selects the provider. One of ON, OFF, or a specific provider: OpenSSL, OpenSSL-FIPS, OpenSSL-Dynamic, mbedTLS, SecureTransport, Schannel, or WinHTTP. (Defaults to ON.)") set(USE_SHA1 "" CACHE STRING "Selects SHA1 provider. One of builtin, HTTPS, or a specific provider. (Defaults to builtin.)") diff --git a/cmake/SelectThreads.cmake b/cmake/SelectThreads.cmake new file mode 100644 index 00000000000..45c76fa0f5f --- /dev/null +++ b/cmake/SelectThreads.cmake @@ -0,0 +1,41 @@ +include(SanitizeBool) + +sanitizebool(USE_THREADS) + +if(NOT WIN32) + find_package(Threads) +endif() + +if((USE_THREADS STREQUAL ON OR USE_THREADS STREQUAL "") AND THREADS_FOUND) + set(USE_THREADS "pthreads") +elseif((USE_THREADS STREQUAL ON OR USE_THREADS STREQUAL "") AND WIN32) + set(USE_THREADS "win32") +elseif(USE_THREADS STREQUAL "") + set(USE_THREADS OFF) +endif() + +if(USE_THREADS STREQUAL "pthreads") + if(NOT THREADS_FOUND) + message(FATAL_ERROR "pthreads were requested but not found") + endif() + + list(APPEND LIBGIT2_SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT}) + list(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT}) + + set(GIT_THREADS 1) + set(GIT_THREADS_PTHREADS 1) + add_feature_info("Threads" ON "using pthreads") +elseif(USE_THREADS STREQUAL "win32") + if(NOT WIN32) + message(FATAL_ERROR "Win32 API support is not available on this platform") + endif() + + set(GIT_THREADS 1) + set(GIT_THREADS_WIN32 1) + add_feature_info("Threads" ON "using Win32 APIs") +elseif(USE_THREADS STREQUAL OFF) + set(GIT_THREADS 0) + add_feature_info("Threads" OFF "threads support is disabled") +else() + message(FATAL_ERROR "unknown threads option: ${USE_THREADS}") +endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4aa062e7e20..1e4f1286390 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -36,6 +36,7 @@ add_feature_info(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open") # Optional feature enablement # +include(SelectThreads) include(SelectNsec) include(SelectHTTPSBackend) include(SelectHashes) @@ -141,19 +142,6 @@ if(AMIGA) add_definitions(-DNO_ADDRINFO -DNO_READDIR_R -DNO_MMAP) endif() -# threads - -if(USE_THREADS) - if(NOT WIN32) - find_package(Threads REQUIRED) - list(APPEND LIBGIT2_SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT}) - list(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT}) - endif() - - set(GIT_THREADS 1) -endif() -add_feature_info(threadsafe USE_THREADS "threadsafe support") - # # Include child projects # diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index 5e0aaf67825..4bdb6ba6e0f 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -116,10 +116,12 @@ const char *git_libgit2_feature_backend(git_feature_t feature) { switch (feature) { case GIT_FEATURE_THREADS: -#if defined(GIT_THREADS) && defined(GIT_WIN32) +#if defined(GIT_THREADS_PTHREADS) + return "pthread"; +#elif defined(GIT_THREADS_WIN32) return "win32"; #elif defined(GIT_THREADS) - return "pthread"; + GIT_ASSERT_WITH_RETVAL(!"Unknown threads backend", NULL); #endif break; diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index f7c4e33f573..b6eab6ed6cb 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -6,6 +6,9 @@ #cmakedefine GIT_DEBUG_STRICT_OPEN 1 #cmakedefine GIT_THREADS 1 +#cmakedefine GIT_THREADS_PTHREADS 1 +#cmakedefine GIT_THREADS_WIN32 1 + #cmakedefine GIT_WIN32_LEAKCHECK 1 #cmakedefine GIT_ARCH_64 1 diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index 4fcce91fd5c..66211fb6469 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -82,10 +82,12 @@ void test_core_features__backends(void) const char *sha1 = git_libgit2_feature_backend(GIT_FEATURE_SHA1); const char *sha256 = git_libgit2_feature_backend(GIT_FEATURE_SHA256); -#if defined(GIT_THREADS) && defined(GIT_WIN32) +#if defined(GIT_THREADS_WIN32) cl_assert_equal_s("win32", threads); -#elif defined(GIT_THREADS) +#elif defined(GIT_THREADS_PTHREADS) cl_assert_equal_s("pthread", threads); +#elif defined(GIT_THREADS) + cl_assert(0); #else cl_assert(threads == NULL); #endif From bab249d82ea8c8c4f5b5fbe2d981b67df2778487 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jan 2025 11:18:56 +0000 Subject: [PATCH 13/58] cmake: standardize xdiff options --- cmake/SelectXdiff.cmake | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmake/SelectXdiff.cmake b/cmake/SelectXdiff.cmake index 9ab9f3f4f29..e4e4aa5d0d0 100644 --- a/cmake/SelectXdiff.cmake +++ b/cmake/SelectXdiff.cmake @@ -6,4 +6,6 @@ else() list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/xdiff") list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$") add_feature_info(xdiff ON "xdiff support (bundled)") +else() + message(FATAL_ERROR "asked for unknown Xdiff backend: ${USE_XDIFF}") endif() From 94d8883dcfebf2d16d0e517e8ceb436246d9d56a Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 11:42:35 +0000 Subject: [PATCH 14/58] cmake: update verbiage on feature enablement --- cmake/SelectCompression.cmake | 4 ++-- cmake/SelectHTTPParser.cmake | 6 +++--- cmake/SelectI18n.cmake | 4 ++-- cmake/SelectRegex.cmake | 10 +++++----- cmake/SelectXdiff.cmake | 2 +- src/CMakeLists.txt | 6 +++--- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/cmake/SelectCompression.cmake b/cmake/SelectCompression.cmake index 50c4706f415..e2b5bf89e22 100644 --- a/cmake/SelectCompression.cmake +++ b/cmake/SelectCompression.cmake @@ -42,12 +42,12 @@ if(GIT_COMPRESSION_ZLIB) else() list(APPEND LIBGIT2_PC_REQUIRES "zlib") endif() - add_feature_info(compression ON "using system zlib") + add_feature_info("Compression" ON "using system zlib") elseif(GIT_COMPRESSION_BUILTIN) add_subdirectory("${PROJECT_SOURCE_DIR}/deps/zlib" "${PROJECT_BINARY_DIR}/deps/zlib") list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/zlib") list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $) - add_feature_info(compression ON "using bundled zlib") + add_feature_info("Compression" ON "using bundled zlib") else() message(FATAL_ERROR "unknown compression backend") endif() diff --git a/cmake/SelectHTTPParser.cmake b/cmake/SelectHTTPParser.cmake index e547e2d0166..9491c295b1c 100644 --- a/cmake/SelectHTTPParser.cmake +++ b/cmake/SelectHTTPParser.cmake @@ -7,7 +7,7 @@ if(USE_HTTP_PARSER STREQUAL "http-parser" OR USE_HTTP_PARSER STREQUAL "system") list(APPEND LIBGIT2_SYSTEM_LIBS ${HTTP_PARSER_LIBRARIES}) list(APPEND LIBGIT2_PC_LIBS "-lhttp_parser") set(GIT_HTTPPARSER_HTTPPARSER 1) - add_feature_info(http-parser ON "using http-parser (system)") + add_feature_info("HTTP Parser" ON "using system http-parser") else() message(FATAL_ERROR "http-parser support was requested but not found") endif() @@ -19,7 +19,7 @@ elseif(USE_HTTP_PARSER STREQUAL "llhttp") list(APPEND LIBGIT2_SYSTEM_LIBS ${LLHTTP_LIBRARIES}) list(APPEND LIBGIT2_PC_LIBS "-lllhttp") set(GIT_HTTPPARSER_LLHTTP 1) - add_feature_info(http-parser ON "using llhttp (system)") + add_feature_info("HTTP Parser" ON "using system llhttp") else() message(FATAL_ERROR "llhttp support was requested but not found") endif() @@ -28,7 +28,7 @@ elseif(USE_HTTP_PARSER STREQUAL "" OR USE_HTTP_PARSER STREQUAL "builtin") list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/llhttp") list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$") set(GIT_HTTPPARSER_BUILTIN 1) - add_feature_info(http-parser ON "using bundled parser") + add_feature_info("HTTP Parser" ON "using bundled parser") else() message(FATAL_ERROR "unknown http-parser: ${USE_HTTP_PARSER}") endif() diff --git a/cmake/SelectI18n.cmake b/cmake/SelectI18n.cmake index 1b4c6d7803b..aa70ee2f20e 100644 --- a/cmake/SelectI18n.cmake +++ b/cmake/SelectI18n.cmake @@ -33,8 +33,8 @@ if(USE_I18N) set(GIT_I18N 1) set(GIT_I18N_ICONV 1) - add_feature_info(i18n ON "using ${USE_I18N}") + add_feature_info("Internationalization" ON "using ${USE_I18N}") else() set(GIT_I18N 0) - add_feature_info(i18n NO "internationalization support is disabled") + add_feature_info("Internationalization" OFF "internationalization support is disabled") endif() diff --git a/cmake/SelectRegex.cmake b/cmake/SelectRegex.cmake index 64cc2f14815..d1c09ae44c2 100644 --- a/cmake/SelectRegex.cmake +++ b/cmake/SelectRegex.cmake @@ -27,7 +27,7 @@ if(NOT USE_REGEX) endif() if(USE_REGEX STREQUAL "regcomp_l") - add_feature_info(regex ON "using system regcomp_l") + add_feature_info("Regular expressions" ON "using system regcomp_l") set(GIT_REGEX_REGCOMP_L 1) elseif(USE_REGEX STREQUAL "pcre2") find_package(PCRE2) @@ -36,24 +36,24 @@ elseif(USE_REGEX STREQUAL "pcre2") MESSAGE(FATAL_ERROR "PCRE2 support was requested but not found") endif() - add_feature_info(regex ON "using system PCRE2") + add_feature_info("Regular expressions" ON "using system PCRE2") set(GIT_REGEX_PCRE2 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE2_INCLUDE_DIRS}) list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE2_LIBRARIES}) list(APPEND LIBGIT2_PC_REQUIRES "libpcre2-8") elseif(USE_REGEX STREQUAL "pcre") - add_feature_info(regex ON "using system PCRE") + add_feature_info("Regular expressions" ON "using system PCRE") set(GIT_REGEX_PCRE 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS}) list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE_LIBRARIES}) list(APPEND LIBGIT2_PC_REQUIRES "libpcre") elseif(USE_REGEX STREQUAL "regcomp") - add_feature_info(regex ON "using system regcomp") + add_feature_info("Regular expressions" ON "using system regcomp") set(GIT_REGEX_REGCOMP 1) elseif(USE_REGEX STREQUAL "builtin") - add_feature_info(regex ON "using builtin") + add_feature_info("Regular expressions" ON "using bundled implementation") set(GIT_REGEX_BUILTIN 1) add_subdirectory("${PROJECT_SOURCE_DIR}/deps/pcre" "${PROJECT_BINARY_DIR}/deps/pcre") diff --git a/cmake/SelectXdiff.cmake b/cmake/SelectXdiff.cmake index e4e4aa5d0d0..718a6fc4fe3 100644 --- a/cmake/SelectXdiff.cmake +++ b/cmake/SelectXdiff.cmake @@ -5,7 +5,7 @@ else() add_subdirectory("${PROJECT_SOURCE_DIR}/deps/xdiff" "${PROJECT_BINARY_DIR}/deps/xdiff") list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/xdiff") list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$") - add_feature_info(xdiff ON "xdiff support (bundled)") + add_feature_info("Xdiff" ON "using bundled provider") else() message(FATAL_ERROR "asked for unknown Xdiff backend: ${USE_XDIFF}") endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1e4f1286390..3ded3af898c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -20,17 +20,17 @@ endif() if(DEBUG_POOL) set(GIT_DEBUG_POOL 1) endif() -add_feature_info(debugpool GIT_DEBUG_POOL "debug pool allocator") +add_feature_info("Debug pool" GIT_DEBUG_POOL "debug-mode struct pool allocators") if(DEBUG_STRICT_ALLOC) set(GIT_DEBUG_STRICT_ALLOC 1) endif() -add_feature_info(debugalloc GIT_DEBUG_STRICT_ALLOC "debug strict allocators") +add_feature_info("Debug alloc" GIT_DEBUG_STRICT_ALLOC "debug-mode strict allocators") if(DEBUG_STRICT_OPEN) set(GIT_DEBUG_STRICT_OPEN 1) endif() -add_feature_info(debugopen GIT_DEBUG_STRICT_OPEN "path validation in open") +add_feature_info("Debug open" GIT_DEBUG_STRICT_OPEN "strict path validation in open") # # Optional feature enablement From 9efdbe3834ed66a57b43543b6eb2db3fd17e1fbf Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 12:02:50 +0000 Subject: [PATCH 15/58] cmake: standardize leak check option The `GIT_WIN32_LEAKCHECK` option is a debugging option, so it should be `GIT_DEBUG_LEAKCHECK_WIN32` --- .github/workflows/experimental.yml | 2 +- .github/workflows/main.yml | 4 ++-- .github/workflows/nightly.yml | 6 +++--- CMakeLists.txt | 5 +---- cmake/DefaultCFlags.cmake | 4 ++-- src/util/alloc.c | 2 +- src/util/allocators/win32_leakcheck.c | 2 +- src/util/git2_features.h.in | 3 +-- src/util/win32/w32_leakcheck.c | 2 +- src/util/win32/w32_leakcheck.h | 2 +- tests/clar/clar_libgit2_trace.c | 4 ++-- tests/clar/main.c | 4 ++-- tests/libgit2/trace/windows/stacktrace.c | 10 +++++----- 13 files changed, 23 insertions(+), 27 deletions(-) diff --git a/.github/workflows/experimental.yml b/.github/workflows/experimental.yml index 8ffb4b63cbc..bb945d5980f 100644 --- a/.github/workflows/experimental.yml +++ b/.github/workflows/experimental.yml @@ -52,7 +52,7 @@ jobs: env: ARCH: amd64 CMAKE_GENERATOR: Visual Studio 17 2022 - CMAKE_OPTIONS: -A x64 -DWIN32_LEAKCHECK=ON -DDEPRECATE_HARD=ON -DEXPERIMENTAL_SHA256=ON + CMAKE_OPTIONS: -A x64 -DDEBUG_LEAK_CHECKER=win32 -DDEPRECATE_HARD=ON -DEXPERIMENTAL_SHA256=ON SKIP_SSH_TESTS: true SKIP_NEGOTIATE_TESTS: true # TODO: this is a temporary removal diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f6af730b10a..90c02977ea6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -80,7 +80,7 @@ jobs: env: ARCH: amd64 CMAKE_GENERATOR: Visual Studio 17 2022 - CMAKE_OPTIONS: -A x64 -DWIN32_LEAKCHECK=ON -DDEPRECATE_HARD=ON -DUSE_HTTPS=Schannel -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 + CMAKE_OPTIONS: -A x64 -DDEBUG_LEAK_CHECKER=win32 -DDEPRECATE_HARD=ON -DUSE_HTTPS=Schannel -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 BUILD_PATH: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin;D:\Temp\libssh2\bin BUILD_TEMP: D:\Temp SKIP_SSH_TESTS: true @@ -92,7 +92,7 @@ jobs: env: ARCH: x86 CMAKE_GENERATOR: Visual Studio 17 2022 - CMAKE_OPTIONS: -A Win32 -DWIN32_LEAKCHECK=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 + CMAKE_OPTIONS: -A Win32 -DDEBUG_LEAK_CHECKER=win32 -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 BUILD_PATH: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin;D:\Temp\libssh2\bin BUILD_TEMP: D:\Temp SKIP_SSH_TESTS: true diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index a12803d5b16..852a3fb8339 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -91,7 +91,7 @@ jobs: env: ARCH: amd64 CMAKE_GENERATOR: Visual Studio 17 2022 - CMAKE_OPTIONS: -A x64 -DWIN32_LEAKCHECK=ON -DDEPRECATE_HARD=ON -DUSE_HTTPS=Schannel -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 + CMAKE_OPTIONS: -A x64 -DDEBUG_LEAK_CHECKER=win32 -DDEPRECATE_HARD=ON -DUSE_HTTPS=Schannel -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 BUILD_PATH: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin;D:\Temp\libssh2\bin BUILD_TEMP: D:\Temp SKIP_SSH_TESTS: true @@ -103,7 +103,7 @@ jobs: env: ARCH: x86 CMAKE_GENERATOR: Visual Studio 17 2022 - CMAKE_OPTIONS: -A Win32 -DWIN32_LEAKCHECK=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 + CMAKE_OPTIONS: -A Win32 -DDEBUG_LEAK_CHECKER=win32 -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON -DCMAKE_PREFIX_PATH=D:\Temp\libssh2 BUILD_PATH: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin;D:\Temp\libssh2\bin BUILD_TEMP: D:\Temp SKIP_SSH_TESTS: true @@ -370,7 +370,7 @@ jobs: env: ARCH: amd64 CMAKE_GENERATOR: Visual Studio 17 2022 - CMAKE_OPTIONS: -A x64 -DWIN32_LEAKCHECK=ON -DDEPRECATE_HARD=ON -DEXPERIMENTAL_SHA256=ON + CMAKE_OPTIONS: -A x64 -DDEBUG_LEAK_CHECKER=win32 -DDEPRECATE_HARD=ON -DEXPERIMENTAL_SHA256=ON SKIP_SSH_TESTS: true SKIP_NEGOTIATE_TESTS: true # TODO: this is a temporary removal diff --git a/CMakeLists.txt b/CMakeLists.txt index 864f813ff0c..4e884db5034 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ if(APPLE) endif() # Debugging options - set(DEBUG_LEAK_CHECKER "" CACHE STRING "Run tests with leak checker. Either valgrind or leaks.") + set(DEBUG_LEAK_CHECKER "" CACHE STRING "Configure for leak checking test runs. One of valgrind, leaks, or win32. Either valgrind or leaks.") option(USE_STANDALONE_FUZZERS "Enable standalone fuzzers (compatible with gcc)" OFF) option(DEBUG_POOL "Enable debug pool allocator" OFF) option(DEBUG_STRICT_ALLOC "Enable strict allocator behavior" OFF) @@ -78,9 +78,6 @@ if(MSVC) # If you want to embed a copy of libssh2 into libgit2, pass a # path to libssh2 option(EMBED_SSH_PATH "Path to libssh2 to embed (Windows)" OFF) - - # Enable leak checking using the debugging C runtime. - option(WIN32_LEAKCHECK "Enable leak reporting via crtdbg" OFF) endif() if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) diff --git a/cmake/DefaultCFlags.cmake b/cmake/DefaultCFlags.cmake index a9c9ab9729c..14899f89d48 100644 --- a/cmake/DefaultCFlags.cmake +++ b/cmake/DefaultCFlags.cmake @@ -26,8 +26,8 @@ if(MSVC) set(CRT_FLAG_RELEASE "/MD") endif() - if(WIN32_LEAKCHECK) - set(GIT_WIN32_LEAKCHECK 1) + if(DEBUG_LEAK_CHECKER STREQUAL "win32") + set(GIT_DEBUG_LEAKCHECK_WIN32 1) set(CRT_FLAG_DEBUG "${CRT_FLAG_DEBUG}") set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} Dbghelp.lib") endif() diff --git a/src/util/alloc.c b/src/util/alloc.c index 998b0aea1d9..1059cb65744 100644 --- a/src/util/alloc.c +++ b/src/util/alloc.c @@ -87,7 +87,7 @@ char *git__substrdup(const char *str, size_t n) static int setup_default_allocator(void) { -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) return git_win32_leakcheck_init_allocator(&git__allocator); #elif defined(GIT_DEBUG_STRICT_ALLOC) return git_debugalloc_init_allocator(&git__allocator); diff --git a/src/util/allocators/win32_leakcheck.c b/src/util/allocators/win32_leakcheck.c index cdf16d34880..f17f432718f 100644 --- a/src/util/allocators/win32_leakcheck.c +++ b/src/util/allocators/win32_leakcheck.c @@ -7,7 +7,7 @@ #include "win32_leakcheck.h" -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) #include "win32/w32_leakcheck.h" diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index b6eab6ed6cb..c2fa17eedcb 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -4,13 +4,12 @@ #cmakedefine GIT_DEBUG_POOL 1 #cmakedefine GIT_DEBUG_STRICT_ALLOC 1 #cmakedefine GIT_DEBUG_STRICT_OPEN 1 +#cmakedefine GIT_DEBUG_LEAKCHECK_WIN32 1 #cmakedefine GIT_THREADS 1 #cmakedefine GIT_THREADS_PTHREADS 1 #cmakedefine GIT_THREADS_WIN32 1 -#cmakedefine GIT_WIN32_LEAKCHECK 1 - #cmakedefine GIT_ARCH_64 1 #cmakedefine GIT_ARCH_32 1 diff --git a/src/util/win32/w32_leakcheck.c b/src/util/win32/w32_leakcheck.c index 0f095de12d2..26c20918ce3 100644 --- a/src/util/win32/w32_leakcheck.c +++ b/src/util/win32/w32_leakcheck.c @@ -7,7 +7,7 @@ #include "w32_leakcheck.h" -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) #include "Windows.h" #include "Dbghelp.h" diff --git a/src/util/win32/w32_leakcheck.h b/src/util/win32/w32_leakcheck.h index 82d863851ee..52ff10a777a 100644 --- a/src/util/win32/w32_leakcheck.h +++ b/src/util/win32/w32_leakcheck.h @@ -13,7 +13,7 @@ /* Initialize the win32 leak checking system. */ int git_win32_leakcheck_global_init(void); -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) #include #include diff --git a/tests/clar/clar_libgit2_trace.c b/tests/clar/clar_libgit2_trace.c index 814a5fa9ee7..f33b019e1e0 100644 --- a/tests/clar/clar_libgit2_trace.c +++ b/tests/clar/clar_libgit2_trace.c @@ -164,7 +164,7 @@ static void _cl_trace_cb__event_handler( switch (ev) { case CL_TRACE__SUITE_BEGIN: git_trace(GIT_TRACE_TRACE, "\n\n%s\n%s: Begin Suite", HR, suite_name); -#if 0 && defined(GIT_WIN32_LEAKCHECK) +#if 0 && defined(GIT_DEBUG_LEAKCHECK_WIN32) git_win32__crtdbg_stacktrace__dump( GIT_WIN32__CRTDBG_STACKTRACE__SET_MARK, suite_name); @@ -172,7 +172,7 @@ static void _cl_trace_cb__event_handler( break; case CL_TRACE__SUITE_END: -#if 0 && defined(GIT_WIN32_LEAKCHECK) +#if 0 && defined(GIT_DEBUG_LEAKCHECK_WIN32) /* As an example of checkpointing, dump leaks within this suite. * This may generate false positives for things like the global * TLS error state and maybe the odb cache since they aren't diff --git a/tests/clar/main.c b/tests/clar/main.c index e3f4fe740bd..cdd4630790d 100644 --- a/tests/clar/main.c +++ b/tests/clar/main.c @@ -1,7 +1,7 @@ #include "clar_libgit2.h" #include "clar_libgit2_trace.h" -#ifdef GIT_WIN32_LEAKCHECK +#ifdef GIT_DEBUG_LEAKCHECK_WIN32 # include "win32/w32_leakcheck.h" #endif @@ -37,7 +37,7 @@ int main(int argc, char *argv[]) cl_global_trace_disable(); git_libgit2_shutdown(); -#ifdef GIT_WIN32_LEAKCHECK +#ifdef GIT_DEBUG_LEAKCHECK_WIN32 if (git_win32_leakcheck_has_leaks()) res = res || 1; #endif diff --git a/tests/libgit2/trace/windows/stacktrace.c b/tests/libgit2/trace/windows/stacktrace.c index 0a77ef99d21..21dd13a48f4 100644 --- a/tests/libgit2/trace/windows/stacktrace.c +++ b/tests/libgit2/trace/windows/stacktrace.c @@ -1,7 +1,7 @@ #include "clar_libgit2.h" #include "win32/w32_leakcheck.h" -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) static void a(void) { char buf[10000]; @@ -26,7 +26,7 @@ static void c(void) void test_trace_windows_stacktrace__basic(void) { -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) c(); #endif } @@ -34,7 +34,7 @@ void test_trace_windows_stacktrace__basic(void) void test_trace_windows_stacktrace__leaks(void) { -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) void * p1; void * p2; void * p3; @@ -124,7 +124,7 @@ void test_trace_windows_stacktrace__leaks(void) #endif } -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) static void aux_cb_alloc__1(unsigned int *aux_id) { static unsigned int aux_counter = 0; @@ -141,7 +141,7 @@ static void aux_cb_lookup__1(unsigned int aux_id, char *aux_msg, size_t aux_msg_ void test_trace_windows_stacktrace__aux1(void) { -#if defined(GIT_WIN32_LEAKCHECK) +#if defined(GIT_DEBUG_LEAKCHECK_WIN32) git_win32_leakcheck_stack_set_aux_cb(aux_cb_alloc__1, aux_cb_lookup__1); c(); c(); From c42ccfaa349fc5b119f229d1d39665d3fa0d76e2 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 12:05:31 +0000 Subject: [PATCH 16/58] cmake: don't report futimes enablement futimes is not an option; don't report enablement as such. --- src/CMakeLists.txt | 5 ++--- src/util/git2_features.h.in | 2 +- src/util/unix/posix.h | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3ded3af898c..76eb9485584 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,9 +56,8 @@ include(SelectAuthNegotiate) # futimes/futimens if(HAVE_FUTIMENS) - set(GIT_USE_FUTIMENS 1) -endif () -add_feature_info(futimens GIT_USE_FUTIMENS "futimens support") + set(GIT_FUTIMENS 1) +endif() # qsort diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index c2fa17eedcb..cd6bfc54c96 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -22,7 +22,7 @@ #cmakedefine GIT_NSEC_MTIME_NSEC 1 #cmakedefine GIT_NSEC_WIN32 1 -#cmakedefine GIT_USE_FUTIMENS 1 +#cmakedefine GIT_FUTIMENS 1 #cmakedefine GIT_REGEX_REGCOMP_L 1 #cmakedefine GIT_REGEX_REGCOMP 1 diff --git a/src/util/unix/posix.h b/src/util/unix/posix.h index d1fc19e4566..0c5c1065549 100644 --- a/src/util/unix/posix.h +++ b/src/util/unix/posix.h @@ -82,7 +82,7 @@ GIT_INLINE(int) p_fsync(int fd) #define p_timeval timeval -#ifdef GIT_USE_FUTIMENS +#ifdef GIT_FUTIMENS GIT_INLINE(int) p_futimes(int f, const struct p_timeval t[2]) { struct timespec s[2]; From c4c284e46fa17e811bed74839108e836f98473a7 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 13:02:39 +0000 Subject: [PATCH 17/58] cmake: standardize HTTPS backend definitions There were a few oddities around HTTPS provider selection: namely, `GIT_OPENSSL_DYNAMIC` implied `GIT_OPENSSL`, which made a bit of sense, until we added FIPS support. In addition, dynamic OpenSSL for _hashes_ and dynamic OpenSSL for HTTPS was conflated in a few places. Untangle these, and make `GIT_HTTPS_*` the define, for consistency with other feature provider selection. --- cmake/SelectHTTPSBackend.cmake | 25 ++++++++++--------- cmake/SelectHashes.cmake | 2 -- src/libgit2/libgit2.c | 12 ++++----- src/libgit2/settings.c | 10 +++++--- src/libgit2/streams/mbedtls.c | 2 +- src/libgit2/streams/mbedtls.h | 2 +- src/libgit2/streams/openssl.c | 16 ++++++------ src/libgit2/streams/openssl.h | 4 +-- src/libgit2/streams/openssl_dynamic.c | 7 +++--- src/libgit2/streams/openssl_dynamic.h | 4 +-- src/libgit2/streams/openssl_legacy.c | 8 +++--- src/libgit2/streams/openssl_legacy.h | 8 +++--- src/libgit2/streams/schannel.c | 2 +- src/libgit2/streams/schannel.h | 2 +- src/libgit2/streams/stransport.c | 2 +- src/libgit2/streams/stransport.h | 2 +- src/libgit2/streams/tls.c | 18 ++++++++------ src/libgit2/transports/auth_ntlm.h | 8 ------ src/libgit2/transports/http.c | 4 +-- src/libgit2/transports/winhttp.c | 4 +-- src/util/git2_features.h.in | 12 ++++----- src/util/hash/openssl.c | 35 ++++++++++++++++----------- src/util/hash/openssl.h | 22 +++++++++-------- src/util/hash/sha.h | 2 ++ src/util/win32/error.c | 4 +-- tests/libgit2/core/features.c | 12 ++++----- tests/libgit2/online/clone.c | 8 +++--- tests/libgit2/online/customcert.c | 16 ++++++------ tests/libgit2/stream/registration.c | 2 +- 29 files changed, 132 insertions(+), 123 deletions(-) diff --git a/cmake/SelectHTTPSBackend.cmake b/cmake/SelectHTTPSBackend.cmake index 0316b3a1c1a..f7d46c0daff 100644 --- a/cmake/SelectHTTPSBackend.cmake +++ b/cmake/SelectHTTPSBackend.cmake @@ -48,7 +48,7 @@ if(USE_HTTPS) message(FATAL_ERROR "Cannot use SecureTransport backend, SSLCreateContext not supported") endif() - set(GIT_SECURE_TRANSPORT 1) + set(GIT_HTTPS_SECURETRANSPORT 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS}) list(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS}) @@ -57,7 +57,7 @@ if(USE_HTTPS) message(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found") endif() - set(GIT_OPENSSL 1) + set(GIT_HTTPS_OPENSSL 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${OPENSSL_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${OPENSSL_LIBRARIES}) # Static OpenSSL (lib crypto.a) requires libdl, include it explicitly @@ -102,13 +102,12 @@ if(USE_HTTPS) if(CERT_LOCATION) if(NOT EXISTS ${CERT_LOCATION}) - message(FATAL_ERROR "Cannot use CERT_LOCATION=${CERT_LOCATION} as it doesn't exist") + message(FATAL_ERROR "cannot use CERT_LOCATION=${CERT_LOCATION} as it doesn't exist") endif() - add_feature_info(CERT_LOCATION ON "using certificates from ${CERT_LOCATION}") add_definitions(-DGIT_DEFAULT_CERT_LOCATION="${CERT_LOCATION}") endif() - set(GIT_MBEDTLS 1) + set(GIT_HTTPS_MBEDTLS 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES}) # mbedTLS has no pkgconfig file, hence we can't require it @@ -116,12 +115,12 @@ if(USE_HTTPS) # For now, pass its link flags as our own list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES}) elseif(USE_HTTPS STREQUAL "Schannel") - set(GIT_SCHANNEL 1) + set(GIT_HTTPS_SCHANNEL 1) list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32") list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32") elseif(USE_HTTPS STREQUAL "WinHTTP") - set(GIT_WINHTTP 1) + set(GIT_HTTPS_WINHTTP 1) # Since MinGW does not come with headers or an import library for winhttp, # we have to include a private header and generate our own import library @@ -137,16 +136,20 @@ if(USE_HTTPS) list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32") list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32") elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic") - set(GIT_OPENSSL 1) - set(GIT_OPENSSL_DYNAMIC 1) + set(GIT_HTTPS_OPENSSL_DYNAMIC 1) list(APPEND LIBGIT2_SYSTEM_LIBS dl) else() message(FATAL_ERROR "unknown HTTPS backend: ${USE_HTTPS}") endif() set(GIT_HTTPS 1) - add_feature_info(HTTPS GIT_HTTPS "using ${USE_HTTPS}") + + if(USE_HTTPS STREQUAL "mbedTLS" AND CERT_LOCATION) + add_feature_info("HTTPS" GIT_HTTPS "using ${USE_HTTPS} (certificate location: ${CERT_LOCATION})") + else() + add_feature_info("HTTPS" GIT_HTTPS "using ${USE_HTTPS}") + endif() else() set(GIT_HTTPS 0) - add_feature_info(HTTPS NO "HTTPS support is disabled") + add_feature_info("HTTPS" NO "HTTPS support is disabled") endif() diff --git a/cmake/SelectHashes.cmake b/cmake/SelectHashes.cmake index 6f6e0f056dd..b5180d2fdd2 100644 --- a/cmake/SelectHashes.cmake +++ b/cmake/SelectHashes.cmake @@ -34,7 +34,6 @@ elseif(USE_SHA1 STREQUAL "OpenSSL") elseif(USE_SHA1 STREQUAL "OpenSSL-FIPS") set(GIT_SHA1_OPENSSL_FIPS 1) elseif(USE_SHA1 STREQUAL "OpenSSL-Dynamic") - set(GIT_SHA1_OPENSSL 1) set(GIT_SHA1_OPENSSL_DYNAMIC 1) list(APPEND LIBGIT2_SYSTEM_LIBS dl) elseif(USE_SHA1 STREQUAL "CommonCrypto") @@ -80,7 +79,6 @@ elseif(USE_SHA256 STREQUAL "OpenSSL") elseif(USE_SHA256 STREQUAL "OpenSSL-FIPS") set(GIT_SHA256_OPENSSL_FIPS 1) elseif(USE_SHA256 STREQUAL "OpenSSL-Dynamic") - set(GIT_SHA256_OPENSSL 1) set(GIT_SHA256_OPENSSL_DYNAMIC 1) list(APPEND LIBGIT2_SYSTEM_LIBS dl) elseif(USE_SHA256 STREQUAL "CommonCrypto") diff --git a/src/libgit2/libgit2.c b/src/libgit2/libgit2.c index 4bdb6ba6e0f..37e0bd012fe 100644 --- a/src/libgit2/libgit2.c +++ b/src/libgit2/libgit2.c @@ -126,17 +126,17 @@ const char *git_libgit2_feature_backend(git_feature_t feature) break; case GIT_FEATURE_HTTPS: -#if defined(GIT_HTTPS) && defined(GIT_OPENSSL) +#if defined(GIT_HTTPS_OPENSSL) return "openssl"; -#elif defined(GIT_HTTPS) && defined(GIT_OPENSSL_DYNAMIC) +#elif defined(GIT_HTTPS_OPENSSL_DYNAMIC) return "openssl-dynamic"; -#elif defined(GIT_HTTPS) && defined(GIT_MBEDTLS) +#elif defined(GIT_HTTPS_MBEDTLS) return "mbedtls"; -#elif defined(GIT_HTTPS) && defined(GIT_SECURE_TRANSPORT) +#elif defined(GIT_HTTPS_SECURETRANSPORT) return "securetransport"; -#elif defined(GIT_HTTPS) && defined(GIT_SCHANNEL) +#elif defined(GIT_HTTPS_SCHANNEL) return "schannel"; -#elif defined(GIT_HTTPS) && defined(GIT_WINHTTP) +#elif defined(GIT_HTTPS_WINHTTP) return "winhttp"; #elif defined(GIT_HTTPS) GIT_ASSERT_WITH_RETVAL(!"Unknown HTTPS backend", NULL); diff --git a/src/libgit2/settings.c b/src/libgit2/settings.c index f4c2453a433..5c7c9cb15c6 100644 --- a/src/libgit2/settings.c +++ b/src/libgit2/settings.c @@ -204,13 +204,13 @@ int git_libgit2_opts(int key, ...) break; case GIT_OPT_SET_SSL_CERT_LOCATIONS: -#ifdef GIT_OPENSSL +#if defined(GIT_HTTPS_OPENSSL) || defined(GIT_HTTPS_OPENSSL_DYNAMIC) { const char *file = va_arg(ap, const char *); const char *path = va_arg(ap, const char *); error = git_openssl__set_cert_location(file, path); } -#elif defined(GIT_MBEDTLS) +#elif defined(GIT_HTTPS_MBEDTLS) { const char *file = va_arg(ap, const char *); const char *path = va_arg(ap, const char *); @@ -223,7 +223,7 @@ int git_libgit2_opts(int key, ...) break; case GIT_OPT_ADD_SSL_X509_CERT: -#ifdef GIT_OPENSSL +#if defined(GIT_HTTPS_OPENSSL) || defined(GIT_HTTPS_OPENSSL_DYNAMIC) { X509 *cert = va_arg(ap, X509 *); error = git_openssl__add_x509_cert(cert); @@ -303,7 +303,9 @@ int git_libgit2_opts(int key, ...) break; case GIT_OPT_SET_SSL_CIPHERS: -#if (GIT_OPENSSL || GIT_MBEDTLS) +#if defined(GIT_HTTPS_OPENSSL) || \ + defined(GIT_HTTPS_OPENSSL_DYNAMIC) || \ + defined(GIT_HTTPS_MBEDTLS) { git__free(git__ssl_ciphers); git__ssl_ciphers = git__strdup(va_arg(ap, const char *)); diff --git a/src/libgit2/streams/mbedtls.c b/src/libgit2/streams/mbedtls.c index a3839c2ce15..ccf0f110303 100644 --- a/src/libgit2/streams/mbedtls.c +++ b/src/libgit2/streams/mbedtls.c @@ -7,7 +7,7 @@ #include "streams/mbedtls.h" -#ifdef GIT_MBEDTLS +#ifdef GIT_HTTPS_MBEDTLS #include diff --git a/src/libgit2/streams/mbedtls.h b/src/libgit2/streams/mbedtls.h index bcca6dd401a..76c0627a2ca 100644 --- a/src/libgit2/streams/mbedtls.h +++ b/src/libgit2/streams/mbedtls.h @@ -13,7 +13,7 @@ extern int git_mbedtls_stream_global_init(void); -#ifdef GIT_MBEDTLS +#ifdef GIT_HTTPS_MBEDTLS extern int git_mbedtls__set_cert_location(const char *file, const char *path); extern int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port); diff --git a/src/libgit2/streams/openssl.c b/src/libgit2/streams/openssl.c index ca64e460b75..f12b699f9b0 100644 --- a/src/libgit2/streams/openssl.c +++ b/src/libgit2/streams/openssl.c @@ -9,7 +9,7 @@ #include "streams/openssl_legacy.h" #include "streams/openssl_dynamic.h" -#ifdef GIT_OPENSSL +#if defined(GIT_HTTPS_OPENSSL) || defined(GIT_HTTPS_OPENSSL_DYNAMIC) #include @@ -29,7 +29,7 @@ # include #endif -#ifndef GIT_OPENSSL_DYNAMIC +#ifndef GIT_HTTPS_OPENSSL_DYNAMIC # include # include # include @@ -64,7 +64,7 @@ static void shutdown_ssl(void) } #ifdef VALGRIND -# if !defined(GIT_OPENSSL_LEGACY) && !defined(GIT_OPENSSL_DYNAMIC) +# if !defined(GIT_HTTPS_OPENSSL_LEGACY) && !defined(GIT_HTTPS_OPENSSL_DYNAMIC) static void *git_openssl_malloc(size_t bytes, const char *file, int line) { @@ -86,7 +86,7 @@ static void git_openssl_free(void *mem, const char *file, int line) GIT_UNUSED(line); git__free(mem); } -# else /* !GIT_OPENSSL_LEGACY && !GIT_OPENSSL_DYNAMIC */ +# else /* !GIT_HTTPS_OPENSSL_LEGACY && !GIT_HTTPS_OPENSSL_DYNAMIC */ static void *git_openssl_malloc(size_t bytes) { return git__calloc(1, bytes); @@ -101,7 +101,7 @@ static void git_openssl_free(void *mem) { git__free(mem); } -# endif /* !GIT_OPENSSL_LEGACY && !GIT_OPENSSL_DYNAMIC */ +# endif /* !GIT_HTTPS_OPENSSL_LEGACY && !GIT_HTTPS_OPENSSL_DYNAMIC */ #endif /* VALGRIND */ static int openssl_init(void) @@ -181,7 +181,7 @@ bool openssl_initialized; int git_openssl_stream_global_init(void) { -#ifndef GIT_OPENSSL_DYNAMIC +#ifndef GIT_HTTPS_OPENSSL_DYNAMIC return openssl_init(); #else if (git_mutex_init(&openssl_mutex) != 0) @@ -193,7 +193,7 @@ int git_openssl_stream_global_init(void) static int openssl_ensure_initialized(void) { -#ifdef GIT_OPENSSL_DYNAMIC +#ifdef GIT_HTTPS_OPENSSL_DYNAMIC int error = 0; if (git_mutex_lock(&openssl_mutex) != 0) @@ -214,7 +214,7 @@ static int openssl_ensure_initialized(void) #endif } -#if !defined(GIT_OPENSSL_LEGACY) && !defined(GIT_OPENSSL_DYNAMIC) +#if !defined(GIT_HTTPS_OPENSSL_LEGACY) && !defined(GIT_HTTPS_OPENSSL_DYNAMIC) int git_openssl_set_locking(void) { # ifdef GIT_THREADS diff --git a/src/libgit2/streams/openssl.h b/src/libgit2/streams/openssl.h index a3ef1a93343..2a5f04099bc 100644 --- a/src/libgit2/streams/openssl.h +++ b/src/libgit2/streams/openssl.h @@ -15,14 +15,14 @@ extern int git_openssl_stream_global_init(void); -#if defined(GIT_OPENSSL) && !defined(GIT_OPENSSL_DYNAMIC) +#if defined(GIT_HTTPS_OPENSSL) # include # include # include # include # endif -#ifdef GIT_OPENSSL +#if defined(GIT_HTTPS_OPENSSL) || defined(GIT_HTTPS_OPENSSL_DYNAMIC) extern int git_openssl__set_cert_location(const char *file, const char *path); extern int git_openssl__add_x509_cert(X509 *cert); extern int git_openssl__reset_context(void); diff --git a/src/libgit2/streams/openssl_dynamic.c b/src/libgit2/streams/openssl_dynamic.c index fe679526f9d..3ab292073d9 100644 --- a/src/libgit2/streams/openssl_dynamic.c +++ b/src/libgit2/streams/openssl_dynamic.c @@ -8,7 +8,7 @@ #include "streams/openssl.h" #include "streams/openssl_dynamic.h" -#if defined(GIT_OPENSSL) && defined(GIT_OPENSSL_DYNAMIC) +#ifdef GIT_HTTPS_OPENSSL_DYNAMIC #include "runtime.h" @@ -128,7 +128,8 @@ int git_openssl_stream_dynamic_init(void) (openssl_handle = dlopen("libssl.so.1.0.0", RTLD_NOW)) == NULL && (openssl_handle = dlopen("libssl.1.0.0.dylib", RTLD_NOW)) == NULL && (openssl_handle = dlopen("libssl.so.10", RTLD_NOW)) == NULL && - (openssl_handle = dlopen("libssl.so.3", RTLD_NOW)) == NULL) { + (openssl_handle = dlopen("libssl.so.3", RTLD_NOW)) == NULL && + (openssl_handle = dlopen("libssl.3.dylib", RTLD_NOW)) == NULL) { git_error_set(GIT_ERROR_SSL, "could not load ssl libraries"); return -1; } @@ -314,4 +315,4 @@ void GENERAL_NAMES_free(GENERAL_NAME *sk) sk_free(sk); } -#endif /* GIT_OPENSSL && GIT_OPENSSL_DYNAMIC */ +#endif /* GIT_HTTPS_OPENSSL_DYNAMIC */ diff --git a/src/libgit2/streams/openssl_dynamic.h b/src/libgit2/streams/openssl_dynamic.h index 0d7ef0f2a89..07a650b91af 100644 --- a/src/libgit2/streams/openssl_dynamic.h +++ b/src/libgit2/streams/openssl_dynamic.h @@ -149,7 +149,7 @@ #ifndef INCLUDE_streams_openssl_dynamic_h__ #define INCLUDE_streams_openssl_dynamic_h__ -#ifdef GIT_OPENSSL_DYNAMIC +#ifdef GIT_HTTPS_OPENSSL_DYNAMIC # define BIO_CTRL_FLUSH 11 @@ -348,6 +348,6 @@ extern void GENERAL_NAMES_free(GENERAL_NAME *sk); extern int git_openssl_stream_dynamic_init(void); -#endif /* GIT_OPENSSL_DYNAMIC */ +#endif /* GIT_HTTPS_OPENSSL_DYNAMIC */ #endif diff --git a/src/libgit2/streams/openssl_legacy.c b/src/libgit2/streams/openssl_legacy.c index e61e6efbb5e..7d361263f49 100644 --- a/src/libgit2/streams/openssl_legacy.c +++ b/src/libgit2/streams/openssl_legacy.c @@ -11,14 +11,14 @@ #include "runtime.h" #include "git2/sys/openssl.h" -#if defined(GIT_OPENSSL) && !defined(GIT_OPENSSL_DYNAMIC) +#if defined(GIT_HTTPS_OPENSSL) && !defined(GIT_HTTPS_OPENSSL_DYNAMIC) # include # include # include # include #endif -#if defined(GIT_OPENSSL_LEGACY) || defined(GIT_OPENSSL_DYNAMIC) +#if defined(GIT_HTTPS_OPENSSL_LEGACY) || defined(GIT_HTTPS_OPENSSL_DYNAMIC) /* * OpenSSL 1.1 made BIO opaque so we have to use functions to interact with it @@ -173,7 +173,7 @@ int git_openssl_set_locking(void) return -1; #endif -#ifdef GIT_OPENSSL_DYNAMIC +#ifdef GIT_HTTPS_OPENSSL_DYNAMIC /* * This function is required on legacy versions of OpenSSL; when building * with dynamically-loaded OpenSSL, we detect whether we loaded it or not. @@ -200,4 +200,4 @@ int git_openssl_set_locking(void) } #endif /* GIT_THREADS */ -#endif /* GIT_OPENSSL_LEGACY || GIT_OPENSSL_DYNAMIC */ +#endif /* GIT_HTTPS_OPENSSL_LEGACY || GIT_HTTPS_OPENSSL_DYNAMIC */ diff --git a/src/libgit2/streams/openssl_legacy.h b/src/libgit2/streams/openssl_legacy.h index e6dae957207..205c984adcc 100644 --- a/src/libgit2/streams/openssl_legacy.h +++ b/src/libgit2/streams/openssl_legacy.h @@ -9,7 +9,7 @@ #include "streams/openssl_dynamic.h" -#if defined(GIT_OPENSSL) && !defined(GIT_OPENSSL_DYNAMIC) +#if defined(GIT_HTTPS_OPENSSL) && !defined(GIT_HTTPS_OPENSSL_DYNAMIC) # include # include # include @@ -17,11 +17,11 @@ # if (defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x10100000L) || \ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) -# define GIT_OPENSSL_LEGACY +# define GIT_HTTPS_OPENSSL_LEGACY # endif #endif -#if defined(GIT_OPENSSL_LEGACY) && !defined(GIT_OPENSSL_DYNAMIC) +#if defined(GIT_HTTPS_OPENSSL_LEGACY) && !defined(GIT_HTTPS_OPENSSL_DYNAMIC) # define OPENSSL_init_ssl OPENSSL_init_ssl__legacy # define BIO_meth_new BIO_meth_new__legacy # define BIO_meth_free BIO_meth_free__legacy @@ -39,7 +39,7 @@ # define ASN1_STRING_get0_data ASN1_STRING_get0_data__legacy #endif -#if defined(GIT_OPENSSL_LEGACY) || defined(GIT_OPENSSL_DYNAMIC) +#if defined(GIT_HTTPS_OPENSSL_LEGACY) || defined(GIT_HTTPS_OPENSSL_DYNAMIC) extern int OPENSSL_init_ssl__legacy(uint64_t opts, const void *settings); extern BIO_METHOD *BIO_meth_new__legacy(int type, const char *name); diff --git a/src/libgit2/streams/schannel.c b/src/libgit2/streams/schannel.c index f096158193c..062758a2587 100644 --- a/src/libgit2/streams/schannel.c +++ b/src/libgit2/streams/schannel.c @@ -7,7 +7,7 @@ #include "streams/schannel.h" -#ifdef GIT_SCHANNEL +#ifdef GIT_HTTPS_SCHANNEL #define SECURITY_WIN32 diff --git a/src/libgit2/streams/schannel.h b/src/libgit2/streams/schannel.h index 3584970d1f8..153bdbf96e7 100644 --- a/src/libgit2/streams/schannel.h +++ b/src/libgit2/streams/schannel.h @@ -11,7 +11,7 @@ #include "git2/sys/stream.h" -#ifdef GIT_SCHANNEL +#ifdef GIT_HTTPS_SCHANNEL extern int git_schannel_stream_new( git_stream **out, diff --git a/src/libgit2/streams/stransport.c b/src/libgit2/streams/stransport.c index 2d4cc55b549..3dbc403b7f4 100644 --- a/src/libgit2/streams/stransport.c +++ b/src/libgit2/streams/stransport.c @@ -7,7 +7,7 @@ #include "streams/stransport.h" -#ifdef GIT_SECURE_TRANSPORT +#ifdef GIT_HTTPS_SECURETRANSPORT #include #include diff --git a/src/libgit2/streams/stransport.h b/src/libgit2/streams/stransport.h index 1026e204b16..e1b936b53ba 100644 --- a/src/libgit2/streams/stransport.h +++ b/src/libgit2/streams/stransport.h @@ -11,7 +11,7 @@ #include "git2/sys/stream.h" -#ifdef GIT_SECURE_TRANSPORT +#ifdef GIT_HTTPS_SECURETRANSPORT extern int git_stransport_stream_new(git_stream **out, const char *host, const char *port); extern int git_stransport_stream_wrap(git_stream **out, git_stream *in, const char *host); diff --git a/src/libgit2/streams/tls.c b/src/libgit2/streams/tls.c index 246ac9ca793..47ef2689f3f 100644 --- a/src/libgit2/streams/tls.c +++ b/src/libgit2/streams/tls.c @@ -28,13 +28,14 @@ int git_tls_stream_new(git_stream **out, const char *host, const char *port) if ((error = git_stream_registry_lookup(&custom, GIT_STREAM_TLS)) == 0) { init = custom.init; } else if (error == GIT_ENOTFOUND) { -#ifdef GIT_SECURE_TRANSPORT +#if defined(GIT_HTTPS_SECURETRANSPORT) init = git_stransport_stream_new; -#elif defined(GIT_OPENSSL) +#elif defined(GIT_HTTPS_OPENSSL) || \ + defined(GIT_HTTPS_OPENSSL_DYNAMIC) init = git_openssl_stream_new; -#elif defined(GIT_MBEDTLS) +#elif defined(GIT_HTTPS_MBEDTLS) init = git_mbedtls_stream_new; -#elif defined(GIT_SCHANNEL) +#elif defined(GIT_HTTPS_SCHANNEL) init = git_schannel_stream_new; #endif } else { @@ -60,13 +61,14 @@ int git_tls_stream_wrap(git_stream **out, git_stream *in, const char *host) if (git_stream_registry_lookup(&custom, GIT_STREAM_TLS) == 0) { wrap = custom.wrap; } else { -#ifdef GIT_SECURE_TRANSPORT +#if defined(GIT_HTTPS_SECURETRANSPORT) wrap = git_stransport_stream_wrap; -#elif defined(GIT_OPENSSL) +#elif defined(GIT_HTTPS_OPENSSL) || \ + defined(GIT_HTTPS_OPENSSL_DYNAMIC) wrap = git_openssl_stream_wrap; -#elif defined(GIT_MBEDTLS) +#elif defined(GIT_HTTPS_MBEDTLS) wrap = git_mbedtls_stream_wrap; -#elif defined(GIT_SCHANNEL) +#elif defined(GIT_HTTPS_SCHANNEL) wrap = git_schannel_stream_wrap; #endif } diff --git a/src/libgit2/transports/auth_ntlm.h b/src/libgit2/transports/auth_ntlm.h index b6610d94018..d83d1c4cd4d 100644 --- a/src/libgit2/transports/auth_ntlm.h +++ b/src/libgit2/transports/auth_ntlm.h @@ -15,14 +15,6 @@ #if defined(GIT_AUTH_NTLM) -#if defined(GIT_OPENSSL) -# define CRYPT_OPENSSL -#elif defined(GIT_MBEDTLS) -# define CRYPT_MBEDTLS -#elif defined(GIT_SECURE_TRANSPORT) -# define CRYPT_COMMONCRYPTO -#endif - extern int git_http_auth_ntlm( git_http_auth_context **out, const git_net_url *url); diff --git a/src/libgit2/transports/http.c b/src/libgit2/transports/http.c index ea819952018..923a825fa30 100644 --- a/src/libgit2/transports/http.c +++ b/src/libgit2/transports/http.c @@ -7,7 +7,7 @@ #include "common.h" -#ifndef GIT_WINHTTP +#ifndef GIT_HTTPS_WINHTTP #include "net.h" #include "remote.h" @@ -762,4 +762,4 @@ int git_smart_subtransport_http(git_smart_subtransport **out, git_transport *own return 0; } -#endif /* !GIT_WINHTTP */ +#endif /* !GIT_HTTPS_WINHTTP */ diff --git a/src/libgit2/transports/winhttp.c b/src/libgit2/transports/winhttp.c index b83ef990de6..7141c284634 100644 --- a/src/libgit2/transports/winhttp.c +++ b/src/libgit2/transports/winhttp.c @@ -7,7 +7,7 @@ #include "common.h" -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP #include "git2.h" #include "git2/transport.h" @@ -1715,4 +1715,4 @@ int git_smart_subtransport_http(git_smart_subtransport **out, git_transport *own return 0; } -#endif /* GIT_WINHTTP */ +#endif /* GIT_HTTPS_WINHTTP */ diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index cd6bfc54c96..02a5c811375 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -49,13 +49,13 @@ #cmakedefine GIT_AUTH_NEGOTIATE_GSSAPI 1 #cmakedefine GIT_AUTH_NEGOTIATE_SSPI 1 -#cmakedefine GIT_WINHTTP 1 #cmakedefine GIT_HTTPS 1 -#cmakedefine GIT_OPENSSL 1 -#cmakedefine GIT_OPENSSL_DYNAMIC 1 -#cmakedefine GIT_SECURE_TRANSPORT 1 -#cmakedefine GIT_MBEDTLS 1 -#cmakedefine GIT_SCHANNEL 1 +#cmakedefine GIT_HTTPS_OPENSSL 1 +#cmakedefine GIT_HTTPS_OPENSSL_DYNAMIC 1 +#cmakedefine GIT_HTTPS_SECURETRANSPORT 1 +#cmakedefine GIT_HTTPS_MBEDTLS 1 +#cmakedefine GIT_HTTPS_SCHANNEL 1 +#cmakedefine GIT_HTTPS_WINHTTP 1 #cmakedefine GIT_HTTPPARSER_HTTPPARSER 1 #cmakedefine GIT_HTTPPARSER_LLHTTP 1 diff --git a/src/util/hash/openssl.c b/src/util/hash/openssl.c index 1ed1b4409f9..8d58cfbc15b 100644 --- a/src/util/hash/openssl.c +++ b/src/util/hash/openssl.c @@ -7,7 +7,7 @@ #include "openssl.h" -#ifdef GIT_OPENSSL_DYNAMIC +#if defined(GIT_SHA1_OPENSSL_DYNAMIC) || defined(GIT_SHA256_OPENSSL_DYNAMIC) # include static int handle_count; @@ -31,7 +31,8 @@ static int git_hash_openssl_global_init(void) (openssl_handle = dlopen("libssl.so.1.0.0", RTLD_NOW)) == NULL && (openssl_handle = dlopen("libssl.1.0.0.dylib", RTLD_NOW)) == NULL && (openssl_handle = dlopen("libssl.so.10", RTLD_NOW)) == NULL && - (openssl_handle = dlopen("libssl.so.3", RTLD_NOW)) == NULL) { + (openssl_handle = dlopen("libssl.so.3", RTLD_NOW)) == NULL && + (openssl_handle = dlopen("libssl.3.dylib", RTLD_NOW)) == NULL) { git_error_set(GIT_ERROR_SSL, "could not load ssl libraries"); return -1; } @@ -46,17 +47,13 @@ static int git_hash_openssl_global_init(void) #endif -#ifdef GIT_SHA1_OPENSSL - -# ifdef GIT_OPENSSL_DYNAMIC +#ifdef GIT_SHA1_OPENSSL_DYNAMIC static int (*SHA1_Init)(SHA_CTX *c); static int (*SHA1_Update)(SHA_CTX *c, const void *data, size_t len); static int (*SHA1_Final)(unsigned char *md, SHA_CTX *c); -# endif int git_hash_sha1_global_init(void) { -#ifdef GIT_OPENSSL_DYNAMIC if (git_hash_openssl_global_init() < 0) return -1; @@ -67,10 +64,17 @@ int git_hash_sha1_global_init(void) git_error_set(GIT_ERROR_SSL, "could not load hash function: %s", msg ? msg : "unknown error"); return -1; } -#endif return 0; } +#elif GIT_SHA1_OPENSSL +int git_hash_sha1_global_init(void) +{ + return 0; +} +#endif + +#if defined(GIT_SHA1_OPENSSL) || defined(GIT_SHA1_OPENSSL_DYNAMIC) int git_hash_sha1_ctx_init(git_hash_sha1_ctx *ctx) { @@ -196,17 +200,13 @@ int git_hash_sha1_final(unsigned char *out, git_hash_sha1_ctx *ctx) #endif -#ifdef GIT_SHA256_OPENSSL - -# ifdef GIT_OPENSSL_DYNAMIC +#ifdef GIT_SHA256_OPENSSL_DYNAMIC static int (*SHA256_Init)(SHA256_CTX *c); static int (*SHA256_Update)(SHA256_CTX *c, const void *data, size_t len); static int (*SHA256_Final)(unsigned char *md, SHA256_CTX *c); -#endif int git_hash_sha256_global_init(void) { -#ifdef GIT_OPENSSL_DYNAMIC if (git_hash_openssl_global_init() < 0) return -1; @@ -217,10 +217,17 @@ int git_hash_sha256_global_init(void) git_error_set(GIT_ERROR_SSL, "could not load hash function: %s", msg ? msg : "unknown error"); return -1; } -#endif return 0; } +#elif GIT_SHA256_OPENSSL +int git_hash_sha256_global_init(void) +{ + return 0; +} +#endif + +#if defined(GIT_SHA256_OPENSSL) || defined(GIT_SHA256_OPENSSL_DYNAMIC) int git_hash_sha256_ctx_init(git_hash_sha256_ctx *ctx) { diff --git a/src/util/hash/openssl.h b/src/util/hash/openssl.h index 8be37fd44e8..2ab73c9893c 100644 --- a/src/util/hash/openssl.h +++ b/src/util/hash/openssl.h @@ -10,31 +10,33 @@ #include "hash/sha.h" -#ifndef GIT_OPENSSL_DYNAMIC -# if defined(GIT_SHA1_OPENSSL_FIPS) || defined(GIT_SHA256_OPENSSL_FIPS) -# include -# else -# include -# endif -#else +#if defined(GIT_SHA1_OPENSSL_FIPS) || defined(GIT_SHA256_OPENSSL_FIPS) +# include +#endif + +#if defined(GIT_SHA1_OPENSSL) || defined(GIT_SHA256_OPENSSL) +# include +#endif +#if defined(GIT_SHA1_OPENSSL_DYNAMIC) typedef struct { unsigned int h0, h1, h2, h3, h4; unsigned int Nl, Nh; unsigned int data[16]; unsigned int num; } SHA_CTX; +#endif +#if defined(GIT_SHA256_OPENSSL_DYNAMIC) typedef struct { unsigned int h[8]; unsigned int Nl, Nh; unsigned int data[16]; unsigned int num, md_len; } SHA256_CTX; - #endif -#ifdef GIT_SHA1_OPENSSL +#if defined(GIT_SHA1_OPENSSL) || defined(GIT_SHA1_OPENSSL_DYNAMIC) struct git_hash_sha1_ctx { SHA_CTX c; }; @@ -46,7 +48,7 @@ struct git_hash_sha1_ctx { }; #endif -#ifdef GIT_SHA256_OPENSSL +#if defined(GIT_SHA256_OPENSSL) || defined(GIT_SHA256_OPENSSL_DYNAMIC) struct git_hash_sha256_ctx { SHA256_CTX c; }; diff --git a/src/util/hash/sha.h b/src/util/hash/sha.h index eb418c0d631..f9d04814237 100644 --- a/src/util/hash/sha.h +++ b/src/util/hash/sha.h @@ -22,8 +22,10 @@ typedef struct git_hash_sha256_ctx git_hash_sha256_ctx; #endif #if defined(GIT_SHA1_OPENSSL) || \ + defined(GIT_SHA1_OPENSSL_DYNAMIC) || \ defined(GIT_SHA1_OPENSSL_FIPS) || \ defined(GIT_SHA256_OPENSSL) || \ + defined(GIT_SHA256_OPENSSL_DYNAMIC) || \ defined(GIT_SHA256_OPENSSL_FIPS) # include "openssl.h" #endif diff --git a/src/util/win32/error.c b/src/util/win32/error.c index dfd6fa1e8a1..141b1ad4cef 100644 --- a/src/util/win32/error.c +++ b/src/util/win32/error.c @@ -9,7 +9,7 @@ #include "utf-conv.h" -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP # include #endif @@ -24,7 +24,7 @@ char *git_win32_get_error_message(DWORD error_code) if (!error_code) return NULL; -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP /* Errors raised by WinHTTP are not in the system resource table */ if (error_code >= WINHTTP_ERROR_BASE && error_code <= WINHTTP_ERROR_LAST) diff --git a/tests/libgit2/core/features.c b/tests/libgit2/core/features.c index 66211fb6469..f8c6679c2fb 100644 --- a/tests/libgit2/core/features.c +++ b/tests/libgit2/core/features.c @@ -92,17 +92,17 @@ void test_core_features__backends(void) cl_assert(threads == NULL); #endif -#if defined(GIT_HTTPS) && defined(GIT_OPENSSL) +#if defined(GIT_HTTPS_OPENSSL) cl_assert_equal_s("openssl", https); -#elif defined(GIT_HTTPS) && defined(GIT_OPENSSL_DYNAMIC) +#elif defined(GIT_HTTPS_OPENSSL_DYNAMIC) cl_assert_equal_s("openssl-dynamic", https); -#elif defined(GIT_HTTPS) && defined(GIT_MBEDTLS) +#elif defined(GIT_HTTPS_MBEDTLS) cl_assert_equal_s("mbedtls", https); -#elif defined(GIT_HTTPS) && defined(GIT_SECURE_TRANSPORT) +#elif defined(GIT_HTTPS_SECURETRANSPORT) cl_assert_equal_s("securetransport", https); -#elif defined(GIT_HTTPS) && defined(GIT_SCHANNEL) +#elif defined(GIT_HTTPS_SCHANNEL) cl_assert_equal_s("schannel", https); -#elif defined(GIT_HTTPS) && defined(GIT_WINHTTP) +#elif defined(GIT_HTTPS_WINHTTP) cl_assert_equal_s("winhttp", https); #elif defined(GIT_HTTPS) cl_assert(0); diff --git a/tests/libgit2/online/clone.c b/tests/libgit2/online/clone.c index 6e9c8ea5051..be0990d86de 100644 --- a/tests/libgit2/online/clone.c +++ b/tests/libgit2/online/clone.c @@ -1373,7 +1373,7 @@ void test_online_clone__sha256(void) void test_online_clone__connect_timeout_configurable(void) { -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP cl_skip(); #else uint64_t start, finish; @@ -1392,7 +1392,7 @@ void test_online_clone__connect_timeout_configurable(void) void test_online_clone__connect_timeout_default(void) { -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP cl_skip(); #else /* This test takes ~ 75 seconds on Unix. */ @@ -1410,7 +1410,7 @@ void test_online_clone__connect_timeout_default(void) void test_online_clone__timeout_configurable_times_out(void) { -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP cl_skip(); #else git_repository *failed_repo; @@ -1427,7 +1427,7 @@ void test_online_clone__timeout_configurable_times_out(void) void test_online_clone__timeout_configurable_succeeds_slowly(void) { -#ifdef GIT_WINHTTP +#ifdef GIT_HTTPS_WINHTTP cl_skip(); #else if (!_remote_speed_slow) diff --git a/tests/libgit2/online/customcert.c b/tests/libgit2/online/customcert.c index 89694b5f4cf..ef05bb4ea15 100644 --- a/tests/libgit2/online/customcert.c +++ b/tests/libgit2/online/customcert.c @@ -10,7 +10,7 @@ #include "str.h" #include "streams/openssl.h" -#if (GIT_OPENSSL && !GIT_OPENSSL_DYNAMIC) +#ifdef GIT_HTTPS_OPENSSL # include # include # include @@ -30,13 +30,13 @@ #define CUSTOM_CERT_THREE_URL "https://test.libgit2.org:3443/anonymous/test.git" #define CUSTOM_CERT_THREE_FILE "three.pem.raw" -#if (GIT_OPENSSL || GIT_MBEDTLS) +#if (GIT_HTTPS_OPENSSL || GIT_HTTPS_OPENSSL_DYNAMIC || GIT_HTTPS_MBEDTLS) static git_repository *g_repo; #endif void test_online_customcert__initialize(void) { -#if (GIT_OPENSSL || GIT_MBEDTLS) +#if (GIT_HTTPS_OPENSSL || GIT_HTTPS_OPENSSL_DYNAMIC || GIT_HTTPS_MBEDTLS) git_str path = GIT_STR_INIT, file = GIT_STR_INIT; char cwd[GIT_PATH_MAX]; @@ -58,7 +58,7 @@ void test_online_customcert__initialize(void) void test_online_customcert__cleanup(void) { -#if (GIT_OPENSSL || GIT_MBEDTLS) +#if (GIT_HTTPS_OPENSSL || GIT_HTTPS_OPENSSL_DYNAMIC || GIT_HTTPS_MBEDTLS) if (g_repo) { git_repository_free(g_repo); g_repo = NULL; @@ -68,14 +68,14 @@ void test_online_customcert__cleanup(void) cl_fixture_cleanup(CUSTOM_CERT_DIR); #endif -#ifdef GIT_OPENSSL +#if (GIT_HTTPS_OPENSSL || GIT_HTTPS_OPENSSL_DYNAMIC) git_openssl__reset_context(); #endif } void test_online_customcert__file(void) { -#if (GIT_OPENSSL || GIT_MBEDTLS) +#if (GIT_HTTPS_OPENSSL || GIT_HTTPS_OPENSSL_DYNAMIC || GIT_HTTPS_MBEDTLS) cl_git_pass(git_clone(&g_repo, CUSTOM_CERT_ONE_URL, "./cloned", NULL)); cl_assert(git_fs_path_exists("./cloned/master.txt")); #endif @@ -83,7 +83,7 @@ void test_online_customcert__file(void) void test_online_customcert__path(void) { -#if (GIT_OPENSSL || GIT_MBEDTLS) +#if (GIT_HTTPS_OPENSSL || GIT_HTTPS_OPENSSL_DYNAMIC || GIT_HTTPS_MBEDTLS) cl_git_pass(git_clone(&g_repo, CUSTOM_CERT_TWO_URL, "./cloned", NULL)); cl_assert(git_fs_path_exists("./cloned/master.txt")); #endif @@ -91,7 +91,7 @@ void test_online_customcert__path(void) void test_online_customcert__raw_x509(void) { -#if (GIT_OPENSSL && !GIT_OPENSSL_DYNAMIC) +#if GIT_HTTPS_OPENSSL X509* x509_cert = NULL; char cwd[GIT_PATH_MAX]; git_str raw_file = GIT_STR_INIT, diff --git a/tests/libgit2/stream/registration.c b/tests/libgit2/stream/registration.c index ccaecee8c1e..e1ce54a5dc2 100644 --- a/tests/libgit2/stream/registration.c +++ b/tests/libgit2/stream/registration.c @@ -84,7 +84,7 @@ void test_stream_registration__tls(void) /* We don't have TLS support enabled, or we're on Windows * with WinHTTP, which is not actually TLS stream support. */ -#if defined(GIT_WINHTTP) || !defined(GIT_HTTPS) +#if defined(GIT_HTTPS_WINHTTP) || !defined(GIT_HTTPS) cl_git_fail_with(-1, error); #else cl_git_pass(error); From 5a654f11bbbbf509bf01b603339eb8917d24656f Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 31 Dec 2024 13:06:26 +0000 Subject: [PATCH 18/58] cmake: update git2_features.h Reorganize the libgit2 feature selection file. --- src/util/git2_features.h.in | 76 ++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/src/util/git2_features.h.in b/src/util/git2_features.h.in index 02a5c811375..7e94835e83a 100644 --- a/src/util/git2_features.h.in +++ b/src/util/git2_features.h.in @@ -1,20 +1,37 @@ #ifndef INCLUDE_features_h__ #define INCLUDE_features_h__ +/* Debugging options */ + #cmakedefine GIT_DEBUG_POOL 1 #cmakedefine GIT_DEBUG_STRICT_ALLOC 1 #cmakedefine GIT_DEBUG_STRICT_OPEN 1 #cmakedefine GIT_DEBUG_LEAKCHECK_WIN32 1 +/* Feature enablement and provider / backend selection */ + #cmakedefine GIT_THREADS 1 #cmakedefine GIT_THREADS_PTHREADS 1 #cmakedefine GIT_THREADS_WIN32 1 -#cmakedefine GIT_ARCH_64 1 -#cmakedefine GIT_ARCH_32 1 +#cmakedefine GIT_SHA1_BUILTIN 1 +#cmakedefine GIT_SHA1_OPENSSL 1 +#cmakedefine GIT_SHA1_OPENSSL_FIPS 1 +#cmakedefine GIT_SHA1_OPENSSL_DYNAMIC 1 +#cmakedefine GIT_SHA1_MBEDTLS 1 +#cmakedefine GIT_SHA1_COMMON_CRYPTO 1 +#cmakedefine GIT_SHA1_WIN32 1 -#cmakedefine GIT_I18N 1 -#cmakedefine GIT_I18N_ICONV 1 +#cmakedefine GIT_SHA256_BUILTIN 1 +#cmakedefine GIT_SHA256_WIN32 1 +#cmakedefine GIT_SHA256_COMMON_CRYPTO 1 +#cmakedefine GIT_SHA256_OPENSSL 1 +#cmakedefine GIT_SHA256_OPENSSL_FIPS 1 +#cmakedefine GIT_SHA256_OPENSSL_DYNAMIC 1 +#cmakedefine GIT_SHA256_MBEDTLS 1 + +#cmakedefine GIT_COMPRESSION_BUILTIN 1 +#cmakedefine GIT_COMPRESSION_ZLIB 1 #cmakedefine GIT_NSEC 1 #cmakedefine GIT_NSEC_MTIM 1 @@ -22,7 +39,8 @@ #cmakedefine GIT_NSEC_MTIME_NSEC 1 #cmakedefine GIT_NSEC_WIN32 1 -#cmakedefine GIT_FUTIMENS 1 +#cmakedefine GIT_I18N 1 +#cmakedefine GIT_I18N_ICONV 1 #cmakedefine GIT_REGEX_REGCOMP_L 1 #cmakedefine GIT_REGEX_REGCOMP 1 @@ -30,25 +48,11 @@ #cmakedefine GIT_REGEX_PCRE2 1 #cmakedefine GIT_REGEX_BUILTIN 1 -#cmakedefine GIT_QSORT_BSD 1 -#cmakedefine GIT_QSORT_GNU 1 -#cmakedefine GIT_QSORT_C11 1 -#cmakedefine GIT_QSORT_MSC 1 - #cmakedefine GIT_SSH 1 #cmakedefine GIT_SSH_EXEC 1 #cmakedefine GIT_SSH_LIBSSH2 1 #cmakedefine GIT_SSH_LIBSSH2_MEMORY_CREDENTIALS 1 -#cmakedefine GIT_AUTH_NTLM 1 -#cmakedefine GIT_AUTH_NTLM_BUILTIN 1 -#cmakedefine GIT_AUTH_NTLM_SSPI 1 - -#cmakedefine GIT_AUTH_NEGOTIATE 1 -#cmakedefine GIT_AUTH_NEGOTIATE_GSSFRAMEWORK 1 -#cmakedefine GIT_AUTH_NEGOTIATE_GSSAPI 1 -#cmakedefine GIT_AUTH_NEGOTIATE_SSPI 1 - #cmakedefine GIT_HTTPS 1 #cmakedefine GIT_HTTPS_OPENSSL 1 #cmakedefine GIT_HTTPS_OPENSSL_DYNAMIC 1 @@ -61,24 +65,26 @@ #cmakedefine GIT_HTTPPARSER_LLHTTP 1 #cmakedefine GIT_HTTPPARSER_BUILTIN 1 -#cmakedefine GIT_SHA1_BUILTIN 1 -#cmakedefine GIT_SHA1_WIN32 1 -#cmakedefine GIT_SHA1_COMMON_CRYPTO 1 -#cmakedefine GIT_SHA1_OPENSSL 1 -#cmakedefine GIT_SHA1_OPENSSL_FIPS 1 -#cmakedefine GIT_SHA1_OPENSSL_DYNAMIC 1 -#cmakedefine GIT_SHA1_MBEDTLS 1 +#cmakedefine GIT_AUTH_NTLM 1 +#cmakedefine GIT_AUTH_NTLM_BUILTIN 1 +#cmakedefine GIT_AUTH_NTLM_SSPI 1 -#cmakedefine GIT_SHA256_BUILTIN 1 -#cmakedefine GIT_SHA256_WIN32 1 -#cmakedefine GIT_SHA256_COMMON_CRYPTO 1 -#cmakedefine GIT_SHA256_OPENSSL 1 -#cmakedefine GIT_SHA256_OPENSSL_FIPS 1 -#cmakedefine GIT_SHA256_OPENSSL_DYNAMIC 1 -#cmakedefine GIT_SHA256_MBEDTLS 1 +#cmakedefine GIT_AUTH_NEGOTIATE 1 +#cmakedefine GIT_AUTH_NEGOTIATE_GSSFRAMEWORK 1 +#cmakedefine GIT_AUTH_NEGOTIATE_GSSAPI 1 +#cmakedefine GIT_AUTH_NEGOTIATE_SSPI 1 -#cmakedefine GIT_COMPRESSION_BUILTIN 1 -#cmakedefine GIT_COMPRESSION_ZLIB 1 +/* Platform details */ + +#cmakedefine GIT_ARCH_64 1 +#cmakedefine GIT_ARCH_32 1 + +#cmakedefine GIT_QSORT_BSD 1 +#cmakedefine GIT_QSORT_GNU 1 +#cmakedefine GIT_QSORT_C11 1 +#cmakedefine GIT_QSORT_MSC 1 + +#cmakedefine GIT_FUTIMENS 1 #cmakedefine GIT_RAND_GETENTROPY 1 #cmakedefine GIT_RAND_GETLOADAVG 1 From 4546929e003ef8182c4c76c751af26928fc9a95d Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jan 2025 11:31:52 +0000 Subject: [PATCH 19/58] cmake: case insensitive options It's hard to remember whether it's `-DUSE_HTTPS=mbedTLS` or `-DUSE_HTTPS=mbedtls`. Even worse for things like `builtin` which we may have been inconsistent about. Allow for case insensitive options. --- ...SanitizeBool.cmake => SanitizeInput.cmake} | 4 +- cmake/SelectAuthNTLM.cmake | 6 +- cmake/SelectAuthNegotiate.cmake | 10 +- cmake/SelectCompression.cmake | 6 +- cmake/SelectHTTPParser.cmake | 8 +- cmake/SelectHTTPSBackend.cmake | 60 ++++++---- cmake/SelectHashes.cmake | 103 +++++++++--------- cmake/SelectI18n.cmake | 6 +- cmake/SelectNsec.cmake | 4 +- cmake/SelectThreads.cmake | 4 +- cmake/SelectXdiff.cmake | 7 +- deps/ntlmclient/CMakeLists.txt | 8 +- src/util/CMakeLists.txt | 22 ++-- 13 files changed, 140 insertions(+), 108 deletions(-) rename cmake/{SanitizeBool.cmake => SanitizeInput.cmake} (88%) diff --git a/cmake/SanitizeBool.cmake b/cmake/SanitizeInput.cmake similarity index 88% rename from cmake/SanitizeBool.cmake rename to cmake/SanitizeInput.cmake index 586c17d0528..8398d888986 100644 --- a/cmake/SanitizeBool.cmake +++ b/cmake/SanitizeInput.cmake @@ -1,4 +1,4 @@ -function(SanitizeBool VAR) +function(SanitizeInput VAR) string(TOLOWER "${${VAR}}" VALUE) if(VALUE STREQUAL "on") set(${VAR} "ON" PARENT_SCOPE) @@ -16,5 +16,7 @@ function(SanitizeBool VAR) set(${VAR} "OFF" PARENT_SCOPE) elseif(VALUE STREQUAL "0") set(${VAR} "OFF" PARENT_SCOPE) + else() + set(${VAR} "${VALUE}" PARENT_SCOPE) endif() endfunction() diff --git a/cmake/SelectAuthNTLM.cmake b/cmake/SelectAuthNTLM.cmake index 105c4bbc38e..ed48c047867 100644 --- a/cmake/SelectAuthNTLM.cmake +++ b/cmake/SelectAuthNTLM.cmake @@ -1,11 +1,11 @@ -include(SanitizeBool) +include(SanitizeInput) if(USE_AUTH_NTLM STREQUAL "" AND NOT USE_NTLMCLIENT STREQUAL "") - sanitizebool(USE_NTLMCLIENT) + sanitizeinput(USE_NTLMCLIENT) set(USE_AUTH_NTLM "${USE_NTLMCLIENT}") endif() -sanitizebool(USE_AUTH_NTLM) +sanitizeinput(USE_AUTH_NTLM) if(USE_AUTH_NTLM STREQUAL "") set(USE_AUTH_NTLM ON) diff --git a/cmake/SelectAuthNegotiate.cmake b/cmake/SelectAuthNegotiate.cmake index 3615571bc27..98e925af26f 100644 --- a/cmake/SelectAuthNegotiate.cmake +++ b/cmake/SelectAuthNegotiate.cmake @@ -1,4 +1,4 @@ -include(SanitizeBool) +include(SanitizeInput) find_package(GSSAPI) @@ -7,14 +7,14 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin" OR CMAKE_SYSTEM_NAME MATCHES "iOS") endif() if(USE_AUTH_NEGOTIATE STREQUAL "" AND NOT USE_GSSAPI STREQUAL "") - sanitizebool(USE_GSSAPI) + sanitizeinput(USE_GSSAPI) set(USE_AUTH_NEGOTIATE "${USE_GSSAPI}") endif() -sanitizebool(USE_AUTH_NEGOTIATE) +sanitizeinput(USE_AUTH_NEGOTIATE) if((USE_AUTH_NEGOTIATE STREQUAL ON OR USE_AUTH_NEGOTIATE STREQUAL "") AND GSSFRAMEWORK_FOUND) - set(USE_AUTH_NEGOTIATE "GSS.framework") + set(USE_AUTH_NEGOTIATE "gssframework") elseif((USE_AUTH_NEGOTIATE STREQUAL ON OR USE_AUTH_NEGOTIATE STREQUAL "") AND GSSAPI_FOUND) set(USE_AUTH_NEGOTIATE "gssapi") elseif((USE_AUTH_NEGOTIATE STREQUAL ON OR USE_AUTH_NEGOTIATE STREQUAL "") AND WIN32) @@ -25,7 +25,7 @@ elseif(USE_AUTH_NEGOTIATE STREQUAL ON) message(FATAL_ERROR "negotiate support was requested but no backend is available") endif() -if(USE_AUTH_NEGOTIATE STREQUAL "GSS.framework") +if(USE_AUTH_NEGOTIATE STREQUAL "gssframework") if(NOT GSSFRAMEWORK_FOUND) message(FATAL_ERROR "GSS.framework could not be found") endif() diff --git a/cmake/SelectCompression.cmake b/cmake/SelectCompression.cmake index e2b5bf89e22..d0a4b566476 100644 --- a/cmake/SelectCompression.cmake +++ b/cmake/SelectCompression.cmake @@ -1,8 +1,8 @@ -include(SanitizeBool) +include(SanitizeInput) # Fall back to the previous cmake configuration, "USE_BUNDLED_ZLIB" if(NOT USE_COMPRESSION AND USE_BUNDLED_ZLIB) - SanitizeBool(USE_BUNDLED_ZLIB) + SanitizeInput(USE_BUNDLED_ZLIB) if(USE_BUNDLED_ZLIB STREQUAL ON) set(USE_COMPRESSION "builtin") @@ -13,6 +13,8 @@ if(NOT USE_COMPRESSION AND USE_BUNDLED_ZLIB) endif() endif() +SanitizeInput(USE_COMPRESSION) + if(NOT USE_COMPRESSION) find_package(ZLIB) diff --git a/cmake/SelectHTTPParser.cmake b/cmake/SelectHTTPParser.cmake index 9491c295b1c..00138c20da1 100644 --- a/cmake/SelectHTTPParser.cmake +++ b/cmake/SelectHTTPParser.cmake @@ -1,5 +1,11 @@ +include(SanitizeInput) + +sanitizeinput(USE_HTTP_PARSER) + # Optional external dependency: http-parser -if(USE_HTTP_PARSER STREQUAL "http-parser" OR USE_HTTP_PARSER STREQUAL "system") +if(USE_HTTP_PARSER STREQUAL "http-parser" OR + USE_HTTP_PARSER STREQUAL "httpparser" OR + USE_HTTP_PARSER STREQUAL "system") find_package(HTTP_Parser) if(HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2) diff --git a/cmake/SelectHTTPSBackend.cmake b/cmake/SelectHTTPSBackend.cmake index f7d46c0daff..a264945be45 100644 --- a/cmake/SelectHTTPSBackend.cmake +++ b/cmake/SelectHTTPSBackend.cmake @@ -1,8 +1,9 @@ -include(SanitizeBool) +include(SanitizeInput) # We try to find any packages our backends might use find_package(OpenSSL) find_package(mbedTLS) + if(CMAKE_SYSTEM_NAME MATCHES "Darwin" OR CMAKE_SYSTEM_NAME MATCHES "iOS") find_package(Security) find_package(CoreFoundation) @@ -12,24 +13,24 @@ if(USE_HTTPS STREQUAL "") set(USE_HTTPS ON) endif() -sanitizebool(USE_HTTPS) +sanitizeinput(USE_HTTPS) if(USE_HTTPS) # Auto-select TLS backend if(USE_HTTPS STREQUAL ON) if(SECURITY_FOUND) if(SECURITY_HAS_SSLCREATECONTEXT) - set(USE_HTTPS "SecureTransport") + set(USE_HTTPS "securetransport") else() message(STATUS "Security framework is too old, falling back to OpenSSL") set(USE_HTTPS "OpenSSL") endif() elseif(WIN32) - set(USE_HTTPS "WinHTTP") + set(USE_HTTPS "winhttp") elseif(OPENSSL_FOUND) - set(USE_HTTPS "OpenSSL") + set(USE_HTTPS "openssl") elseif(MBEDTLS_FOUND) - set(USE_HTTPS "mbedTLS") + set(USE_HTTPS "mbedtls") else() message(FATAL_ERROR "Unable to autodetect a usable HTTPS backend." "Please pass the backend name explicitly (-DUSE_HTTPS=backend)") @@ -37,7 +38,7 @@ if(USE_HTTPS) endif() # Check that we can find what's required for the selected backend - if(USE_HTTPS STREQUAL "SecureTransport") + if(USE_HTTPS STREQUAL "securetransport") if(NOT COREFOUNDATION_FOUND) message(FATAL_ERROR "Cannot use SecureTransport backend, CoreFoundation.framework not found") endif() @@ -48,25 +49,31 @@ if(USE_HTTPS) message(FATAL_ERROR "Cannot use SecureTransport backend, SSLCreateContext not supported") endif() - set(GIT_HTTPS_SECURETRANSPORT 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${SECURITY_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS}) list(APPEND LIBGIT2_PC_LIBS ${COREFOUNDATION_LDFLAGS} ${SECURITY_LDFLAGS}) - elseif(USE_HTTPS STREQUAL "OpenSSL") + + set(GIT_HTTPS_SECURETRANSPORT 1) + add_feature_info("HTTPS" ON "using SecureTransport") + elseif(USE_HTTPS STREQUAL "openssl") if(NOT OPENSSL_FOUND) message(FATAL_ERROR "Asked for OpenSSL TLS backend, but it wasn't found") endif() - set(GIT_HTTPS_OPENSSL 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${OPENSSL_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${OPENSSL_LIBRARIES}) + # Static OpenSSL (lib crypto.a) requires libdl, include it explicitly if(LINK_WITH_STATIC_LIBRARIES STREQUAL ON) list(APPEND LIBGIT2_SYSTEM_LIBS ${CMAKE_DL_LIBS}) endif() + list(APPEND LIBGIT2_PC_LIBS ${OPENSSL_LDFLAGS}) list(APPEND LIBGIT2_PC_REQUIRES "openssl") - elseif(USE_HTTPS STREQUAL "mbedTLS") + + set(GIT_HTTPS_OPENSSL 1) + add_feature_info("HTTPS" ON "using OpenSSL") + elseif(USE_HTTPS STREQUAL "mbedtls") if(NOT MBEDTLS_FOUND) message(FATAL_ERROR "Asked for mbedTLS backend, but it wasn't found") endif() @@ -107,21 +114,27 @@ if(USE_HTTPS) add_definitions(-DGIT_DEFAULT_CERT_LOCATION="${CERT_LOCATION}") endif() - set(GIT_HTTPS_MBEDTLS 1) list(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES}) # mbedTLS has no pkgconfig file, hence we can't require it # https://github.com/ARMmbed/mbedtls/issues/228 # For now, pass its link flags as our own list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES}) - elseif(USE_HTTPS STREQUAL "Schannel") - set(GIT_HTTPS_SCHANNEL 1) + set(GIT_HTTPS_MBEDTLS 1) + + if(CERT_LOCATION) + add_feature_info("HTTPS" ON "using mbedTLS (certificate location: ${CERT_LOCATION})") + else() + add_feature_info("HTTPS" ON "using mbedTLS") + endif() + elseif(USE_HTTPS STREQUAL "schannel") list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32") list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32") - elseif(USE_HTTPS STREQUAL "WinHTTP") - set(GIT_HTTPS_WINHTTP 1) + set(GIT_HTTPS_SCHANNEL 1) + add_feature_info("HTTPS" ON "using Schannel") + elseif(USE_HTTPS STREQUAL "winhttp") # Since MinGW does not come with headers or an import library for winhttp, # we have to include a private header and generate our own import library if(MINGW) @@ -135,20 +148,19 @@ if(USE_HTTPS) list(APPEND LIBGIT2_SYSTEM_LIBS "rpcrt4" "crypt32" "ole32") list(APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32") - elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic") - set(GIT_HTTPS_OPENSSL_DYNAMIC 1) + + set(GIT_HTTPS_WINHTTP 1) + add_feature_info("HTTPS" ON "using WinHTTP") + elseif(USE_HTTPS STREQUAL "openssl-dynamic") list(APPEND LIBGIT2_SYSTEM_LIBS dl) + + set(GIT_HTTPS_OPENSSL_DYNAMIC 1) + add_feature_info("HTTPS" ON "using OpenSSL-Dynamic") else() message(FATAL_ERROR "unknown HTTPS backend: ${USE_HTTPS}") endif() set(GIT_HTTPS 1) - - if(USE_HTTPS STREQUAL "mbedTLS" AND CERT_LOCATION) - add_feature_info("HTTPS" GIT_HTTPS "using ${USE_HTTPS} (certificate location: ${CERT_LOCATION})") - else() - add_feature_info("HTTPS" GIT_HTTPS "using ${USE_HTTPS}") - endif() else() set(GIT_HTTPS 0) add_feature_info("HTTPS" NO "HTTPS support is disabled") diff --git a/cmake/SelectHashes.cmake b/cmake/SelectHashes.cmake index b5180d2fdd2..cf229666a4a 100644 --- a/cmake/SelectHashes.cmake +++ b/cmake/SelectHashes.cmake @@ -1,21 +1,24 @@ # Select a hash backend -include(SanitizeBool) +include(SanitizeInput) -sanitizebool(USE_SHA1) -sanitizebool(USE_SHA256) +sanitizeinput(USE_HTTPS) +sanitizeinput(USE_SHA1) +sanitizeinput(USE_SHA256) # sha1 -if(USE_SHA1 STREQUAL "" OR USE_SHA1 STREQUAL ON) +if(USE_SHA1 STREQUAL "" OR + USE_SHA1 STREQUAL ON OR + USE_SHA1 STREQUAL "collisiondetection") SET(USE_SHA1 "builtin") -elseif(USE_SHA1 STREQUAL "HTTPS") - if(USE_HTTPS STREQUAL "SecureTransport") - set(USE_SHA1 "CommonCrypto") - elseif(USE_HTTPS STREQUAL "Schannel") - set(USE_SHA1 "Win32") - elseif(USE_HTTPS STREQUAL "WinHTTP") - set(USE_SHA1 "Win32") +elseif(USE_SHA1 STREQUAL "https") + if(USE_HTTPS STREQUAL "securetransport") + set(USE_SHA1 "commoncrypto") + elseif(USE_HTTPS STREQUAL "schannel") + set(USE_SHA1 "win32") + elseif(USE_HTTPS STREQUAL "winhttp") + set(USE_SHA1 "win32") elseif(USE_HTTPS) set(USE_SHA1 ${USE_HTTPS}) else() @@ -23,25 +26,28 @@ elseif(USE_SHA1 STREQUAL "HTTPS") endif() endif() -if(USE_SHA1 STREQUAL "Builtin" OR USE_SHA1 STREQUAL "CollisionDetection") - set(USE_SHA1 "builtin") -endif() - if(USE_SHA1 STREQUAL "builtin") set(GIT_SHA1_BUILTIN 1) -elseif(USE_SHA1 STREQUAL "OpenSSL") + add_feature_info(SHA1 ON "using bundled collision detection implementation") +elseif(USE_SHA1 STREQUAL "openssl") set(GIT_SHA1_OPENSSL 1) -elseif(USE_SHA1 STREQUAL "OpenSSL-FIPS") + add_feature_info(SHA1 ON "using OpenSSL") +elseif(USE_SHA1 STREQUAL "openssl-fips") set(GIT_SHA1_OPENSSL_FIPS 1) -elseif(USE_SHA1 STREQUAL "OpenSSL-Dynamic") - set(GIT_SHA1_OPENSSL_DYNAMIC 1) + add_feature_info(SHA1 ON "using OpenSSL-FIPS") +elseif(USE_SHA1 STREQUAL "openssl-dynamic") list(APPEND LIBGIT2_SYSTEM_LIBS dl) -elseif(USE_SHA1 STREQUAL "CommonCrypto") + set(GIT_SHA1_OPENSSL_DYNAMIC 1) + add_feature_info(SHA1 ON "using OpenSSL-Dynamic") +elseif(USE_SHA1 STREQUAL "commoncrypto") set(GIT_SHA1_COMMON_CRYPTO 1) -elseif(USE_SHA1 STREQUAL "mbedTLS") + add_feature_info(SHA1 ON "using CommonCrypto") +elseif(USE_SHA1 STREQUAL "mbedtls") set(GIT_SHA1_MBEDTLS 1) -elseif(USE_SHA1 STREQUAL "Win32") + add_feature_info(SHA1 ON "using mbedTLS") +elseif(USE_SHA1 STREQUAL "win32") set(GIT_SHA1_WIN32 1) + add_feature_info(SHA1 ON "using Win32 APIs") else() message(FATAL_ERROR "asked for unknown SHA1 backend: ${USE_SHA1}") endif() @@ -50,23 +56,19 @@ endif() if(USE_SHA256 STREQUAL "" OR USE_SHA256 STREQUAL ON) if(USE_HTTPS) - SET(USE_SHA256 "HTTPS") + SET(USE_SHA256 "https") else() SET(USE_SHA256 "builtin") endif() endif() -if(USE_SHA256 STREQUAL "Builtin") - set(USE_SHA256 "builtin") -endif() - -if(USE_SHA256 STREQUAL "HTTPS") - if(USE_HTTPS STREQUAL "SecureTransport") - set(USE_SHA256 "CommonCrypto") - elseif(USE_HTTPS STREQUAL "Schannel") - set(USE_SHA256 "Win32") - elseif(USE_HTTPS STREQUAL "WinHTTP") - set(USE_SHA256 "Win32") +if(USE_SHA256 STREQUAL "https") + if(USE_HTTPS STREQUAL "securetransport") + set(USE_SHA256 "commoncrypto") + elseif(USE_HTTPS STREQUAL "schannel") + set(USE_SHA256 "win32") + elseif(USE_HTTPS STREQUAL "winhttp") + set(USE_SHA256 "win32") elseif(USE_HTTPS) set(USE_SHA256 ${USE_HTTPS}) endif() @@ -74,27 +76,33 @@ endif() if(USE_SHA256 STREQUAL "builtin") set(GIT_SHA256_BUILTIN 1) -elseif(USE_SHA256 STREQUAL "OpenSSL") + add_feature_info(SHA256 ON "using bundled implementation") +elseif(USE_SHA256 STREQUAL "openssl") set(GIT_SHA256_OPENSSL 1) -elseif(USE_SHA256 STREQUAL "OpenSSL-FIPS") + add_feature_info(SHA256 ON "using OpenSSL") +elseif(USE_SHA256 STREQUAL "openssl-fips") set(GIT_SHA256_OPENSSL_FIPS 1) -elseif(USE_SHA256 STREQUAL "OpenSSL-Dynamic") - set(GIT_SHA256_OPENSSL_DYNAMIC 1) + add_feature_info(SHA256 ON "using OpenSSL-FIPS") +elseif(USE_SHA256 STREQUAL "openssl-dynamic") list(APPEND LIBGIT2_SYSTEM_LIBS dl) -elseif(USE_SHA256 STREQUAL "CommonCrypto") + set(GIT_SHA256_OPENSSL_DYNAMIC 1) + add_feature_info(SHA256 ON "using OpenSSL-Dynamic") +elseif(USE_SHA256 STREQUAL "commoncrypto") set(GIT_SHA256_COMMON_CRYPTO 1) -elseif(USE_SHA256 STREQUAL "mbedTLS") + add_feature_info(SHA256 ON "using CommonCrypto") +elseif(USE_SHA256 STREQUAL "mbedtls") set(GIT_SHA256_MBEDTLS 1) -elseif(USE_SHA256 STREQUAL "Win32") + add_feature_info(SHA256 ON "using mbedTLS") +elseif(USE_SHA256 STREQUAL "win32") set(GIT_SHA256_WIN32 1) + add_feature_info(SHA256 ON "using Win32 APIs") else() message(FATAL_ERROR "asked for unknown SHA256 backend: ${USE_SHA256}") endif() # add library requirements - -if(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL" OR - USE_SHA1 STREQUAL "OpenSSL-FIPS" OR USE_SHA256 STREQUAL "OpenSSL-FIPS") +if(USE_SHA1 STREQUAL "openssl" OR USE_SHA256 STREQUAL "openssl" OR + USE_SHA1 STREQUAL "openssl-fips" OR USE_SHA256 STREQUAL "openssl-fips") if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") list(APPEND LIBGIT2_PC_LIBS "-lssl") else() @@ -102,7 +110,7 @@ if(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL" OR endif() endif() -if(USE_SHA1 STREQUAL "mbedTLS" OR USE_SHA256 STREQUAL "mbedTLS") +if(USE_SHA1 STREQUAL "mbedtls" OR USE_SHA256 STREQUAL "mbedtls") list(APPEND LIBGIT2_SYSTEM_INCLUDES ${MBEDTLS_INCLUDE_DIR}) list(APPEND LIBGIT2_SYSTEM_LIBS ${MBEDTLS_LIBRARIES}) # mbedTLS has no pkgconfig file, hence we can't require it @@ -111,11 +119,6 @@ if(USE_SHA1 STREQUAL "mbedTLS" OR USE_SHA256 STREQUAL "mbedTLS") list(APPEND LIBGIT2_PC_LIBS ${MBEDTLS_LIBRARIES}) endif() -# notify feature enablement - -add_feature_info(SHA1 ON "using ${USE_SHA1}") -add_feature_info(SHA256 ON "using ${USE_SHA256}") - # warn for users who do not use sha1dc if(NOT "${USE_SHA1}" STREQUAL "builtin") diff --git a/cmake/SelectI18n.cmake b/cmake/SelectI18n.cmake index aa70ee2f20e..f95e1244135 100644 --- a/cmake/SelectI18n.cmake +++ b/cmake/SelectI18n.cmake @@ -1,9 +1,9 @@ -include(SanitizeBool) +include(SanitizeInput) find_package(IntlIconv) if(USE_I18N STREQUAL "" AND NOT USE_ICONV STREQUAL "") - sanitizebool(USE_ICONV) + sanitizeinput(USE_ICONV) set(USE_I18N "${USE_ICONV}") endif() @@ -11,7 +11,7 @@ if(USE_I18N STREQUAL "") set(USE_I18N ON) endif() -sanitizebool(USE_I18N) +sanitizeinput(USE_I18N) if(USE_I18N) if(USE_I18N STREQUAL ON) diff --git a/cmake/SelectNsec.cmake b/cmake/SelectNsec.cmake index 392b92bc45c..59606a47f81 100644 --- a/cmake/SelectNsec.cmake +++ b/cmake/SelectNsec.cmake @@ -1,7 +1,7 @@ -include(SanitizeBool) +include(SanitizeInput) include(FeatureSummary) -sanitizebool(USE_NSEC) +sanitizeinput(USE_NSEC) if((USE_NSEC STREQUAL ON OR USE_NSEC STREQUAL "") AND HAVE_STRUCT_STAT_ST_MTIM) set(USE_NSEC "mtim") diff --git a/cmake/SelectThreads.cmake b/cmake/SelectThreads.cmake index 45c76fa0f5f..1a6ddfa9670 100644 --- a/cmake/SelectThreads.cmake +++ b/cmake/SelectThreads.cmake @@ -1,6 +1,6 @@ -include(SanitizeBool) +include(SanitizeInput) -sanitizebool(USE_THREADS) +sanitizeinput(USE_THREADS) if(NOT WIN32) find_package(Threads) diff --git a/cmake/SelectXdiff.cmake b/cmake/SelectXdiff.cmake index 718a6fc4fe3..91d72ad34b6 100644 --- a/cmake/SelectXdiff.cmake +++ b/cmake/SelectXdiff.cmake @@ -1,7 +1,12 @@ # Optional external dependency: xdiff + +include(SanitizeInput) + +sanitizeinput(USE_XDIFF) + if(USE_XDIFF STREQUAL "system") message(FATAL_ERROR "external/system xdiff is not yet supported") -else() +elseif(USE_XDIFF STREQUAL "builtin" OR USE_XDIFF STREQUAL "") add_subdirectory("${PROJECT_SOURCE_DIR}/deps/xdiff" "${PROJECT_BINARY_DIR}/deps/xdiff") list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/xdiff") list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$") diff --git a/deps/ntlmclient/CMakeLists.txt b/deps/ntlmclient/CMakeLists.txt index f1f5de162a0..a3e8c2aff03 100644 --- a/deps/ntlmclient/CMakeLists.txt +++ b/deps/ntlmclient/CMakeLists.txt @@ -13,22 +13,22 @@ else() file(GLOB SRC_NTLMCLIENT_UNICODE "unicode_builtin.c" "unicode_builtin.h") endif() -if(USE_HTTPS STREQUAL "SecureTransport") +if(USE_HTTPS STREQUAL "securetransport") add_definitions(-DCRYPT_COMMONCRYPTO) set(SRC_NTLMCLIENT_CRYPTO "crypt_commoncrypto.c" "crypt_commoncrypto.h") # CC_MD4 has been deprecated in macOS 10.15. set_source_files_properties("crypt_commoncrypto.c" COMPILE_FLAGS "-Wno-deprecated") -elseif(USE_HTTPS STREQUAL "OpenSSL") +elseif(USE_HTTPS STREQUAL "openssl") add_definitions(-DCRYPT_OPENSSL) add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) include_directories(${OPENSSL_INCLUDE_DIR}) set(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c" "crypt_openssl.h") -elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic") +elseif(USE_HTTPS STREQUAL "openssl-dynamic") add_definitions(-DCRYPT_OPENSSL) add_definitions(-DCRYPT_OPENSSL_DYNAMIC) add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) set(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c" "crypt_openssl.h") -elseif(USE_HTTPS STREQUAL "mbedTLS") +elseif(USE_HTTPS STREQUAL "mbedtls") add_definitions(-DCRYPT_MBEDTLS) include_directories(${MBEDTLS_INCLUDE_DIR}) set(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c" "crypt_mbedtls.h" "crypt_builtin_md4.c") diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt index 5831c213b7b..0811057f3a3 100644 --- a/src/util/CMakeLists.txt +++ b/src/util/CMakeLists.txt @@ -34,16 +34,16 @@ if(USE_SHA1 STREQUAL "builtin") target_compile_definitions(util PRIVATE SHA1DC_NO_STANDARD_INCLUDES=1) target_compile_definitions(util PRIVATE SHA1DC_CUSTOM_INCLUDE_SHA1_C=\"git2_util.h\") target_compile_definitions(util PRIVATE SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"git2_util.h\") -elseif(USE_SHA1 STREQUAL "SHA1CollisionDetection") - file(GLOB UTIL_SRC_SHA1 hash/collisiondetect.*) -elseif(USE_SHA1 STREQUAL "OpenSSL" OR USE_SHA1 STREQUAL "OpenSSL-Dynamic" OR USE_SHA1 STREQUAL "OpenSSL-FIPS") +elseif(USE_SHA1 STREQUAL "openssl" OR + USE_SHA1 STREQUAL "openssl-dynamic" OR + USE_SHA1 STREQUAL "openssl-fips") add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) file(GLOB UTIL_SRC_SHA1 hash/openssl.*) -elseif(USE_SHA1 STREQUAL "CommonCrypto") +elseif(USE_SHA1 STREQUAL "commoncrypto") file(GLOB UTIL_SRC_SHA1 hash/common_crypto.*) -elseif(USE_SHA1 STREQUAL "mbedTLS") +elseif(USE_SHA1 STREQUAL "mbedtls") file(GLOB UTIL_SRC_SHA1 hash/mbedtls.*) -elseif(USE_SHA1 STREQUAL "Win32") +elseif(USE_SHA1 STREQUAL "win32") file(GLOB UTIL_SRC_SHA1 hash/win32.*) else() message(FATAL_ERROR "Asked for unknown SHA1 backend: ${USE_SHA1}") @@ -53,14 +53,16 @@ list(SORT UTIL_SRC_SHA1) if(USE_SHA256 STREQUAL "builtin") file(GLOB UTIL_SRC_SHA256 hash/builtin.* hash/rfc6234/*) -elseif(USE_SHA256 STREQUAL "OpenSSL" OR USE_SHA256 STREQUAL "OpenSSL-Dynamic" OR USE_SHA256 STREQUAL "OpenSSL-FIPS") +elseif(USE_SHA256 STREQUAL "openssl" OR + USE_SHA256 STREQUAL "openssl-dynamic" OR + USE_SHA256 STREQUAL "openssl-fips") add_definitions(-DOPENSSL_API_COMPAT=0x10100000L) file(GLOB UTIL_SRC_SHA256 hash/openssl.*) -elseif(USE_SHA256 STREQUAL "CommonCrypto") +elseif(USE_SHA256 STREQUAL "commoncrypto") file(GLOB UTIL_SRC_SHA256 hash/common_crypto.*) -elseif(USE_SHA256 STREQUAL "mbedTLS") +elseif(USE_SHA256 STREQUAL "mbedtls") file(GLOB UTIL_SRC_SHA256 hash/mbedtls.*) -elseif(USE_SHA256 STREQUAL "Win32") +elseif(USE_SHA256 STREQUAL "win32") file(GLOB UTIL_SRC_SHA256 hash/win32.*) else() message(FATAL_ERROR "asked for unknown SHA256 backend: ${USE_SHA256}") From 24d50ad87b70a6120a4d645874ec2eca6e85beed Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jan 2025 10:36:39 +0000 Subject: [PATCH 20/58] cli: add version command Move the `--version` information into its own command, so that we can support `--build-options`. --- src/cli/cmd.h | 1 + src/cli/cmd_version.c | 91 +++++++++++++++++++++++++++++++++++++++++++ src/cli/main.c | 10 ++++- 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 src/cli/cmd_version.c diff --git a/src/cli/cmd.h b/src/cli/cmd.h index 194a0b5058d..bce4709fb7a 100644 --- a/src/cli/cmd.h +++ b/src/cli/cmd.h @@ -33,5 +33,6 @@ extern int cmd_hash_object(int argc, char **argv); extern int cmd_help(int argc, char **argv); extern int cmd_index_pack(int argc, char **argv); extern int cmd_init(int argc, char **argv); +extern int cmd_version(int argc, char **argv); #endif /* CLI_cmd_h__ */ diff --git a/src/cli/cmd_version.c b/src/cli/cmd_version.c new file mode 100644 index 00000000000..3d415b49229 --- /dev/null +++ b/src/cli/cmd_version.c @@ -0,0 +1,91 @@ +/* + * Copyright (C) the libgit2 contributors. All rights reserved. + * + * This file is part of libgit2, distributed under the GNU GPL v2 with + * a Linking Exception. For full terms see the included COPYING file. + */ + +#include +#include +#include "common.h" +#include "cmd.h" + +#define COMMAND_NAME "version" + +static int build_options; + +struct feature_names { + int feature; + const char *name; +}; + +static const struct feature_names feature_names[] = { + { GIT_FEATURE_SHA1, "sha1" }, + { GIT_FEATURE_SHA256, "sha256" }, + { GIT_FEATURE_THREADS, "threads" }, + { GIT_FEATURE_NSEC, "nsec" }, + { GIT_FEATURE_COMPRESSION, "compression" }, + { GIT_FEATURE_I18N, "i18n" }, + { GIT_FEATURE_REGEX, "regex" }, + { GIT_FEATURE_SSH, "ssh" }, + { GIT_FEATURE_HTTPS, "https" }, + { GIT_FEATURE_HTTP_PARSER, "http_parser" }, + { GIT_FEATURE_AUTH_NTLM, "auth_ntlm" }, + { GIT_FEATURE_AUTH_NEGOTIATE, "auth_negotiate" }, + { 0, NULL } +}; + +static const cli_opt_spec opts[] = { + CLI_COMMON_OPT, + + { CLI_OPT_TYPE_SWITCH, "build-options", 0, &build_options, 1, + CLI_OPT_USAGE_DEFAULT, NULL, "show compile-time options" }, + { 0 }, +}; + +static int print_help(void) +{ + cli_opt_usage_fprint(stdout, PROGRAM_NAME, COMMAND_NAME, opts, 0); + printf("\n"); + + printf("Display version information for %s.\n", PROGRAM_NAME); + printf("\n"); + + printf("Options:\n"); + + cli_opt_help_fprint(stdout, opts); + + return 0; +} + +int cmd_version(int argc, char **argv) +{ + cli_opt invalid_opt; + const struct feature_names *f; + const char *backend; + int supported_features; + + if (cli_opt_parse(&invalid_opt, opts, argv + 1, argc - 1, CLI_OPT_PARSE_GNU)) + return cli_opt_usage_error(COMMAND_NAME, opts, &invalid_opt); + + if (cli_opt__show_help) { + print_help(); + return 0; + } + + printf("%s version %s\n", PROGRAM_NAME, LIBGIT2_VERSION); + + if (build_options) { + supported_features = git_libgit2_features(); + + for (f = feature_names; f->feature; f++) { + if (!(supported_features & f->feature)) + continue; + + backend = git_libgit2_feature_backend(f->feature); + printf("backend-%s: %s\n", f->name, backend); + } + } + + return 0; +} diff --git a/src/cli/main.c b/src/cli/main.c index be913ba64ec..4716d6ddee9 100644 --- a/src/cli/main.c +++ b/src/cli/main.c @@ -38,6 +38,7 @@ const cli_cmd_spec cli_cmds[] = { { "help", cmd_help, "Display help information" }, { "index-pack", cmd_index_pack, "Create an index for a packfile" }, { "init", cmd_init, "Create a new git repository" }, + { "version", cmd_version, "Show application version information" }, { NULL } }; @@ -76,6 +77,12 @@ static void help_args(int *argc, char **argv) *argc = 1; } +static void version_args(int *argc, char **argv) +{ + argv[0] = "version"; + *argc = 1; +} + int main(int argc, char **argv) { const cli_cmd_spec *cmd; @@ -110,7 +117,8 @@ int main(int argc, char **argv) } if (show_version) { - printf("%s version %s\n", PROGRAM_NAME, LIBGIT2_VERSION); + version_args(&argc, argv); + ret = cmd_version(argc, argv); goto done; } From fb7fef0d729da561a4f9892c051dea5c462cd74d Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jan 2025 12:03:58 +0000 Subject: [PATCH 21/58] hash: allow `unsigned int` != `size_t` in sha256 Our bundled SHA256 implementation passes a `size_t` as an `unsigned int`. Stop doing that. --- src/util/hash/builtin.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/util/hash/builtin.c b/src/util/hash/builtin.c index cc4aa58fe8d..b4736efbc66 100644 --- a/src/util/hash/builtin.c +++ b/src/util/hash/builtin.c @@ -32,13 +32,23 @@ int git_hash_sha256_init(git_hash_sha256_ctx *ctx) return 0; } -int git_hash_sha256_update(git_hash_sha256_ctx *ctx, const void *data, size_t len) +int git_hash_sha256_update(git_hash_sha256_ctx *ctx, const void *_data, size_t len) { + const unsigned char *data = _data; GIT_ASSERT_ARG(ctx); - if (SHA256Input(&ctx->c, data, len)) { - git_error_set(GIT_ERROR_SHA, "SHA256 error"); - return -1; + + while (len > 0) { + unsigned int chunk = (len > UINT_MAX) ? UINT_MAX : (unsigned int)len; + + if (SHA256Input(&ctx->c, data, chunk)) { + git_error_set(GIT_ERROR_SHA, "SHA256 error"); + return -1; + } + + data += chunk; + len -= chunk; } + return 0; } From 56e2a85643fab018c154767e5a1f5fbf794fc774 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 23 Dec 2024 11:53:23 +0000 Subject: [PATCH 22/58] sha256: simplify API changes for sha256 support There are several places where users may want to specify the type of object IDs (sha1 or sha256) that should be used, for example, when dealing with repositories, indexes, etc. However, given that sha256 support remains disappointingly uncommon in the wild, we should avoid hard API breaks when possible. Instead, update these APIs to have an "extended" format (eg, `git_odb_open_ext`) that provides an options structure with oid type information. This allows callers who do care about sha256 to use it, and callers who do not to avoid gratuitous API breakage. --- examples/diff.c | 6 --- examples/show-index.c | 4 -- fuzzers/packfile_fuzzer.c | 7 --- include/git2/diff.h | 40 ++++++++++++++-- include/git2/index.h | 66 ++++++++++++++++----------- include/git2/odb.h | 59 ++++++++++++++---------- include/git2/sys/repository.h | 28 +++++++----- src/libgit2/apply.c | 8 ++-- src/libgit2/diff.h | 10 ++++ src/libgit2/diff_parse.c | 19 ++++---- src/libgit2/index.c | 41 ++++++----------- src/libgit2/index.h | 30 +++++++----- src/libgit2/merge.c | 8 +++- src/libgit2/odb.c | 39 +++++----------- src/libgit2/odb.h | 22 +++++---- src/libgit2/repository.c | 34 ++++++++------ src/libgit2/repository.h | 12 ++++- src/libgit2/stash.c | 12 +++-- tests/libgit2/attr/repo.c | 4 -- tests/libgit2/checkout/index.c | 5 +- tests/libgit2/clone/nonetwork.c | 6 ++- tests/libgit2/diff/diff_helpers.c | 10 ---- tests/libgit2/diff/index.c | 5 +- tests/libgit2/index/cache.c | 13 ++++-- tests/libgit2/index/inmemory.c | 4 +- tests/libgit2/index/racy.c | 5 +- tests/libgit2/index/read_index.c | 18 +++++--- tests/libgit2/index/tests.c | 33 ++++++++------ tests/libgit2/index/tests256.c | 65 ++++++++++++++++++++------ tests/libgit2/network/remote/local.c | 10 +--- tests/libgit2/object/raw/write.c | 2 +- tests/libgit2/object/tree/update.c | 12 ++--- tests/libgit2/odb/backend/loose.c | 2 +- tests/libgit2/odb/backend/mempack.c | 2 +- tests/libgit2/odb/backend/nobackend.c | 10 ++-- tests/libgit2/odb/foreach.c | 5 +- tests/libgit2/odb/loose.c | 25 +++++----- tests/libgit2/odb/mixed.c | 2 +- tests/libgit2/odb/open.c | 8 ++-- tests/libgit2/odb/packed.c | 2 +- tests/libgit2/odb/packed256.c | 2 +- tests/libgit2/odb/packedone.c | 3 +- tests/libgit2/odb/packedone256.c | 2 +- tests/libgit2/odb/sorting.c | 4 +- tests/libgit2/refs/iterator.c | 2 +- tests/libgit2/repo/new.c | 23 ++-------- tests/libgit2/repo/setters.c | 7 ++- tests/libgit2/reset/hard.c | 3 +- tests/libgit2/status/worktree_init.c | 4 +- tests/libgit2/submodule/lookup.c | 2 +- 50 files changed, 419 insertions(+), 326 deletions(-) diff --git a/examples/diff.c b/examples/diff.c index 80c5200e908..ed8fbd60d42 100644 --- a/examples/diff.c +++ b/examples/diff.c @@ -189,15 +189,9 @@ static void compute_diff_no_index(git_diff **diff, struct diff_options *o) { git_patch_to_buf(&buf, patch), "patch to buf", NULL); -#ifdef GIT_EXPERIMENTAL_SHA256 - check_lg2( - git_diff_from_buffer(diff, buf.ptr, buf.size, NULL), - "diff from patch", NULL); -#else check_lg2( git_diff_from_buffer(diff, buf.ptr, buf.size), "diff from patch", NULL); -#endif git_patch_free(patch); git_buf_dispose(&buf); diff --git a/examples/show-index.c b/examples/show-index.c index ac0040874ec..fb797e04beb 100644 --- a/examples/show-index.c +++ b/examples/show-index.c @@ -30,11 +30,7 @@ int lg2_show_index(git_repository *repo, int argc, char **argv) dirlen = strlen(dir); if (dirlen > 5 && strcmp(dir + dirlen - 5, "index") == 0) { -#ifdef GIT_EXPERIMENTAL_SHA256 - check_lg2(git_index_open(&index, dir, NULL), "could not open index", dir); -#else check_lg2(git_index_open(&index, dir), "could not open index", dir); -#endif } else { check_lg2(git_repository_open_ext(&repo, dir, 0, NULL), "could not open repository", dir); check_lg2(git_repository_index(&index, repo), "could not open repository index", NULL); diff --git a/fuzzers/packfile_fuzzer.c b/fuzzers/packfile_fuzzer.c index bcbdd8bc40b..cc4c33ad536 100644 --- a/fuzzers/packfile_fuzzer.c +++ b/fuzzers/packfile_fuzzer.c @@ -37,17 +37,10 @@ int LLVMFuzzerInitialize(int *argc, char ***argv) abort(); } -#ifdef GIT_EXPERIMENTAL_SHA256 - if (git_odb_new(&odb, NULL) < 0) { - fprintf(stderr, "Failed to create the odb\n"); - abort(); - } -#else if (git_odb_new(&odb) < 0) { fprintf(stderr, "Failed to create the odb\n"); abort(); } -#endif if (git_mempack_new(&mempack) < 0) { fprintf(stderr, "Failed to create the mempack\n"); diff --git a/include/git2/diff.h b/include/git2/diff.h index b12e8ab2754..856a28f7943 100644 --- a/include/git2/diff.h +++ b/include/git2/diff.h @@ -1321,6 +1321,8 @@ GIT_EXTERN(int) git_diff_buffers( */ typedef struct { unsigned int version; + + /** Object ID type used in the patch file. */ git_oid_t oid_type; } git_diff_parse_options; @@ -1330,8 +1332,7 @@ typedef struct { /** Stack initializer for diff parse options. Alternatively use * `git_diff_parse_options_init` programmatic initialization. */ -#define GIT_DIFF_PARSE_OPTIONS_INIT \ - { GIT_DIFF_PARSE_OPTIONS_VERSION, GIT_OID_DEFAULT } +#define GIT_DIFF_PARSE_OPTIONS_INIT { GIT_DIFF_PARSE_OPTIONS_VERSION } /** * Read the contents of a git patch file into a `git_diff` object. @@ -1347,6 +1348,9 @@ typedef struct { * implementation, it will not read unified diffs produced by * the `diff` program, nor any other types of patch files. * + * @note This API only supports SHA1 patch files + * @see git_diff_from_buffer_ext + * * @param out A pointer to a git_diff pointer that will be allocated. * @param content The contents of a patch file * @param content_len The length of the patch file contents @@ -1355,11 +1359,37 @@ typedef struct { GIT_EXTERN(int) git_diff_from_buffer( git_diff **out, const char *content, - size_t content_len + size_t content_len); + #ifdef GIT_EXPERIMENTAL_SHA256 - , git_diff_parse_options *opts + +/** + * Read the contents of a git patch file into a `git_diff` object. + * + * The diff object produced is similar to the one that would be + * produced if you actually produced it computationally by comparing + * two trees, however there may be subtle differences. For example, + * a patch file likely contains abbreviated object IDs, so the + * object IDs in a `git_diff_delta` produced by this function will + * also be abbreviated. + * + * This function will only read patch files created by a git + * implementation, it will not read unified diffs produced by + * the `diff` program, nor any other types of patch files. + * + * @param out A pointer to a git_diff pointer that will be allocated. + * @param content The contents of a patch file + * @param content_len The length of the patch file contents + * @param opts Options controlling diff parsing + * @return 0 or an error code + */ +GIT_EXTERN(int) git_diff_from_buffer_ext( + git_diff **out, + const char *content, + size_t content_len, + git_diff_parse_options *opts); + #endif - ); /** * This is an opaque structure which is allocated by `git_diff_get_stats`. diff --git a/include/git2/index.h b/include/git2/index.h index 0adff1abd95..6aadbef6b73 100644 --- a/include/git2/index.h +++ b/include/git2/index.h @@ -189,8 +189,6 @@ typedef enum { GIT_INDEX_STAGE_THEIRS = 3 } git_index_stage_t; -#ifdef GIT_EXPERIMENTAL_SHA256 - /** * The options for opening or creating an index. * @@ -233,62 +231,76 @@ GIT_EXTERN(int) git_index_options_init( unsigned int version); /** - * Creates a new bare Git index object, without a repository to back - * it. This index object is capable of storing SHA256 objects. + * Create a new bare Git index object as a memory representation + * of the Git index file in 'index_path', without a repository + * to back it. + * + * Since there is no ODB or working directory behind this index, + * any Index methods which rely on these (e.g. index_add_bypath) + * will fail with the GIT_ERROR error code. + * + * If you need to access the index of an actual repository, + * use the `git_repository_index` wrapper. + * + * The index must be freed once it's no longer in use. + * + * @note This API only supports SHA1 indexes + * @see git_index_open_ext * * @param index_out the pointer for the new index * @param index_path the path to the index file in disk - * @param opts the options for opening the index, or NULL * @return 0 or an error code */ GIT_EXTERN(int) git_index_open( git_index **index_out, - const char *index_path, - const git_index_options *opts); + const char *index_path); + +#ifdef GIT_EXPERIMENTAL_SHA256 /** - * Create an in-memory index object. + * Creates a new bare Git index object, without a repository to back + * it. This index object is capable of storing SHA256 objects. * * @param index_out the pointer for the new index + * @param index_path the path to the index file in disk * @param opts the options for opening the index, or NULL * @return 0 or an error code */ -GIT_EXTERN(int) git_index_new(git_index **index_out, const git_index_options *opts); +GIT_EXTERN(int) git_index_open_ext( + git_index **index_out, + const char *index_path, + const git_index_options *opts); -#else +#endif /** - * Create a new bare Git index object as a memory representation - * of the Git index file in 'index_path', without a repository - * to back it. - * - * Since there is no ODB or working directory behind this index, - * any Index methods which rely on these (e.g. index_add_bypath) - * will fail with the GIT_ERROR error code. + * Create an in-memory index object. * - * If you need to access the index of an actual repository, - * use the `git_repository_index` wrapper. + * This index object cannot be read/written to the filesystem, + * but may be used to perform in-memory index operations. * * The index must be freed once it's no longer in use. * + * @note This API only supports SHA1 indexes + * @see git_index_new_ext + * * @param index_out the pointer for the new index - * @param index_path the path to the index file in disk * @return 0 or an error code */ -GIT_EXTERN(int) git_index_open(git_index **index_out, const char *index_path); +GIT_EXTERN(int) git_index_new(git_index **index_out); + +#ifdef GIT_EXPERIMENTAL_SHA256 /** * Create an in-memory index object. * - * This index object cannot be read/written to the filesystem, - * but may be used to perform in-memory index operations. - * - * The index must be freed once it's no longer in use. - * * @param index_out the pointer for the new index + * @param opts the options for opening the index, or NULL * @return 0 or an error code */ -GIT_EXTERN(int) git_index_new(git_index **index_out); +GIT_EXTERN(int) git_index_new_ext( + git_index **index_out, + const git_index_options *opts); #endif diff --git a/include/git2/odb.h b/include/git2/odb.h index e809c36d70e..e81e41c910a 100644 --- a/include/git2/odb.h +++ b/include/git2/odb.h @@ -62,44 +62,34 @@ typedef struct { */ #define GIT_ODB_OPTIONS_INIT { GIT_ODB_OPTIONS_VERSION } -#ifdef GIT_EXPERIMENTAL_SHA256 - /** * Create a new object database with no backends. * - * @param[out] odb location to store the database pointer, if opened. - * @param opts the options for this object database or NULL for defaults - * @return 0 or an error code - */ -GIT_EXTERN(int) git_odb_new(git_odb **odb, const git_odb_options *opts); - -/** - * Create a new object database and automatically add loose and packed - * backends. + * Before the ODB can be used for read/writing, a custom database + * backend must be manually added using `git_odb_add_backend()` * - * @param[out] odb_out location to store the database pointer, if opened. - * Set to NULL if the open failed. - * @param objects_dir path of the backends' "objects" directory. - * @param opts the options for this object database or NULL for defaults + * @note This API only supports SHA1 object databases + * @see git_odb_new_ext + * + * @param[out] odb location to store the database pointer, if opened. * @return 0 or an error code */ -GIT_EXTERN(int) git_odb_open( - git_odb **odb_out, - const char *objects_dir, - const git_odb_options *opts); +GIT_EXTERN(int) git_odb_new(git_odb **odb); -#else +#ifdef GIT_EXPERIMENTAL_SHA256 /** * Create a new object database with no backends. * - * Before the ODB can be used for read/writing, a custom database - * backend must be manually added using `git_odb_add_backend()` - * * @param[out] odb location to store the database pointer, if opened. + * @param opts the options for this object database or NULL for defaults * @return 0 or an error code */ -GIT_EXTERN(int) git_odb_new(git_odb **odb); +GIT_EXTERN(int) git_odb_new_ext( + git_odb **odb, + const git_odb_options *opts); + +#endif /** * Create a new object database and automatically add @@ -112,12 +102,33 @@ GIT_EXTERN(int) git_odb_new(git_odb **odb); * assuming `objects_dir` as the Objects folder which * contains a 'pack/' folder with the corresponding data * + * @note This API only supports SHA1 object databases + * @see git_odb_open_ext + * * @param[out] odb_out location to store the database pointer, if opened. * Set to NULL if the open failed. * @param objects_dir path of the backends' "objects" directory. * @return 0 or an error code */ GIT_EXTERN(int) git_odb_open(git_odb **odb_out, const char *objects_dir); + +#ifdef GIT_EXPERIMENTAL_SHA256 + +/** + * Create a new object database and automatically add loose and packed + * backends. + * + * @param[out] odb_out location to store the database pointer, if opened. + * Set to NULL if the open failed. + * @param objects_dir path of the backends' "objects" directory. + * @param opts the options for this object database or NULL for defaults + * @return 0 or an error code + */ +GIT_EXTERN(int) git_odb_open_ext( + git_odb **odb_out, + const char *objects_dir, + const git_odb_options *opts); + #endif /** diff --git a/include/git2/sys/repository.h b/include/git2/sys/repository.h index 026ac8a1d1a..cdd1a4bd2d6 100644 --- a/include/git2/sys/repository.h +++ b/include/git2/sys/repository.h @@ -20,8 +20,6 @@ */ GIT_BEGIN_DECL -#ifdef GIT_EXPERIMENTAL_SHA256 - /** * The options for creating an repository from scratch. * @@ -64,16 +62,6 @@ GIT_EXTERN(int) git_repository_new_options_init( git_repository_new_options *opts, unsigned int version); -/** - * Create a new repository with no backends. - * - * @param[out] out The blank repository - * @param opts the options for repository creation, or NULL for defaults - * @return 0 on success, or an error code - */ -GIT_EXTERN(int) git_repository_new(git_repository **out, git_repository_new_options *opts); -#else - /** * Create a new repository with neither backends nor config object * @@ -84,11 +72,27 @@ GIT_EXTERN(int) git_repository_new(git_repository **out, git_repository_new_opti * can fail to function properly: locations under $GIT_DIR, $GIT_COMMON_DIR, * or $GIT_INFO_DIR are impacted. * + * @note This API only creates SHA1 repositories + * @see git_repository_new_ext + * * @param[out] out The blank repository * @return 0 on success, or an error code */ GIT_EXTERN(int) git_repository_new(git_repository **out); +#ifdef GIT_EXPERIMENTAL_SHA256 + +/** + * Create a new repository with no backends. + * + * @param[out] out The blank repository + * @param opts the options for repository creation, or NULL for defaults + * @return 0 on success, or an error code + */ +GIT_EXTERN(int) git_repository_new_ext( + git_repository **out, + git_repository_new_options *opts); + #endif /** diff --git a/src/libgit2/apply.c b/src/libgit2/apply.c index 07e502db259..24922cfa550 100644 --- a/src/libgit2/apply.c +++ b/src/libgit2/apply.c @@ -621,6 +621,7 @@ int git_apply_to_tree( { git_index *postimage = NULL; git_reader *pre_reader = NULL, *post_reader = NULL; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); git_apply_options opts = GIT_APPLY_OPTIONS_INIT; const git_diff_delta *delta; size_t i; @@ -643,7 +644,7 @@ int git_apply_to_tree( * put the current tree into the postimage as-is - the diff will * replace any entries contained therein */ - if ((error = git_index__new(&postimage, repo->oid_type)) < 0 || + if ((error = git_index_new_ext(&postimage, &index_opts)) < 0 || (error = git_index_read_tree(postimage, preimage)) < 0 || (error = git_reader_for_index(&post_reader, repo, postimage)) < 0) goto done; @@ -809,6 +810,7 @@ int git_apply( git_index *index = NULL, *preimage = NULL, *postimage = NULL; git_reader *pre_reader = NULL, *post_reader = NULL; git_apply_options opts = GIT_APPLY_OPTIONS_INIT; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); int error = GIT_EINVALID; GIT_ASSERT_ARG(repo); @@ -849,8 +851,8 @@ int git_apply( * having the full repo index, so we will limit our checkout * to only write these files that were affected by the diff. */ - if ((error = git_index__new(&preimage, repo->oid_type)) < 0 || - (error = git_index__new(&postimage, repo->oid_type)) < 0 || + if ((error = git_index_new_ext(&preimage, &index_opts)) < 0 || + (error = git_index_new_ext(&postimage, &index_opts)) < 0 || (error = git_reader_for_index(&post_reader, repo, postimage)) < 0) goto done; diff --git a/src/libgit2/diff.h b/src/libgit2/diff.h index f21b2764505..c79a279e379 100644 --- a/src/libgit2/diff.h +++ b/src/libgit2/diff.h @@ -64,4 +64,14 @@ extern int git_diff_delta__casecmp(const void *a, const void *b); extern int git_diff__entry_cmp(const void *a, const void *b); extern int git_diff__entry_icmp(const void *a, const void *b); +#ifndef GIT_EXPERIMENTAL_SHA256 + +int git_diff_from_buffer_ext( + git_diff **out, + const char *content, + size_t content_len, + git_diff_parse_options *opts); + +#endif + #endif diff --git a/src/libgit2/diff_parse.c b/src/libgit2/diff_parse.c index 02eb21ef82c..25dcd8e1100 100644 --- a/src/libgit2/diff_parse.c +++ b/src/libgit2/diff_parse.c @@ -68,11 +68,16 @@ static git_diff_parsed *diff_parsed_alloc(git_oid_t oid_type) int git_diff_from_buffer( git_diff **out, const char *content, - size_t content_len -#ifdef GIT_EXPERIMENTAL_SHA256 - , git_diff_parse_options *opts -#endif - ) + size_t content_len) +{ + return git_diff_from_buffer_ext(out, content, content_len, NULL); +} + +int git_diff_from_buffer_ext( + git_diff **out, + const char *content, + size_t content_len, + git_diff_parse_options *opts) { git_diff_parsed *diff; git_patch *patch; @@ -83,12 +88,8 @@ int git_diff_from_buffer( *out = NULL; -#ifdef GIT_EXPERIMENTAL_SHA256 oid_type = (opts && opts->oid_type) ? opts->oid_type : GIT_OID_DEFAULT; -#else - oid_type = GIT_OID_DEFAULT; -#endif patch_opts.oid_type = oid_type; diff --git a/src/libgit2/index.c b/src/libgit2/index.c index a3142c8bcd9..7610781fc16 100644 --- a/src/libgit2/index.c +++ b/src/libgit2/index.c @@ -386,21 +386,25 @@ void git_index__set_ignore_case(git_index *index, bool ignore_case) git_vector_sort(&index->reuc); } -int git_index__open( +int git_index_open_ext( git_index **index_out, const char *index_path, - git_oid_t oid_type) + const git_index_options *opts) { git_index *index; int error = -1; GIT_ASSERT_ARG(index_out); + GIT_ERROR_CHECK_VERSION(opts, GIT_INDEX_OPTIONS_VERSION, "git_index_options"); + + if (opts && opts->oid_type) + GIT_ASSERT_ARG(git_oid_type_is_valid(opts->oid_type)); index = git__calloc(1, sizeof(git_index)); GIT_ERROR_CHECK_ALLOC(index); - GIT_ASSERT_ARG(git_oid_type_is_valid(oid_type)); - index->oid_type = oid_type; + index->oid_type = opts && opts->oid_type ? opts->oid_type : + GIT_OID_DEFAULT; if (git_pool_init(&index->tree_pool, 1) < 0) goto fail; @@ -441,39 +445,20 @@ int git_index__open( return error; } -#ifdef GIT_EXPERIMENTAL_SHA256 -int git_index_open( - git_index **index_out, - const char *index_path, - const git_index_options *opts) -{ - return git_index__open(index_out, index_path, - opts && opts->oid_type ? opts->oid_type : GIT_OID_DEFAULT); -} -#else int git_index_open(git_index **index_out, const char *index_path) { - return git_index__open(index_out, index_path, GIT_OID_SHA1); + return git_index_open_ext(index_out, index_path, NULL); } -#endif -int git_index__new(git_index **out, git_oid_t oid_type) +int git_index_new(git_index **out) { - return git_index__open(out, NULL, oid_type); + return git_index_open_ext(out, NULL, NULL); } -#ifdef GIT_EXPERIMENTAL_SHA256 -int git_index_new(git_index **out, const git_index_options *opts) +int git_index_new_ext(git_index **out, const git_index_options *opts) { - return git_index__new(out, - opts && opts->oid_type ? opts->oid_type : GIT_OID_DEFAULT); + return git_index_open_ext(out, NULL, opts); } -#else -int git_index_new(git_index **out) -{ - return git_index__new(out, GIT_OID_SHA1); -} -#endif static void index_free(git_index *index) { diff --git a/src/libgit2/index.h b/src/libgit2/index.h index 601e98f1ce2..aa2667de3e5 100644 --- a/src/libgit2/index.h +++ b/src/libgit2/index.h @@ -20,6 +20,10 @@ #define GIT_INDEX_FILE "index" #define GIT_INDEX_FILE_MODE 0666 +/* Helper to create index options based on repository options */ +#define GIT_INDEX_OPTIONS_FOR_REPO(r) \ + { GIT_INDEX_OPTIONS_VERSION, r ? r->oid_type : 0 } + extern bool git_index__enforce_unsaved_safety; struct git_index { @@ -143,17 +147,6 @@ GIT_INLINE(unsigned char *) git_index__checksum(git_index *index) return index->checksum; } -/* SHA256-aware internal functions */ - -extern int git_index__new( - git_index **index_out, - git_oid_t oid_type); - -extern int git_index__open( - git_index **index_out, - const char *index_path, - git_oid_t oid_type); - /* Copy the current entries vector *and* increment the index refcount. * Call `git_index__release_snapshot` when done. */ @@ -204,4 +197,19 @@ extern int git_indexwriter_commit(git_indexwriter *writer); */ extern void git_indexwriter_cleanup(git_indexwriter *writer); +/* SHA256 support */ + +#ifndef GIT_EXPERIMENTAL_SHA256 + +int git_index_open_ext( + git_index **index_out, + const char *index_path, + const git_index_options *opts); + +GIT_EXTERN(int) git_index_new_ext( + git_index **index_out, + const git_index_options *opts); + +#endif + #endif diff --git a/src/libgit2/merge.c b/src/libgit2/merge.c index 25834c69fed..0c5bc0f82d0 100644 --- a/src/libgit2/merge.c +++ b/src/libgit2/merge.c @@ -2014,11 +2014,14 @@ static int index_from_diff_list( git_index *index; size_t i; git_merge_diff *conflict; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; int error = 0; *out = NULL; - if ((error = git_index__new(&index, oid_type)) < 0) + index_opts.oid_type = oid_type; + + if ((error = git_index_new_ext(&index, &index_opts)) < 0) return error; if ((error = git_index__fill(index, &diff_list->staged)) < 0) @@ -2195,6 +2198,7 @@ int git_merge_trees( { git_iterator *ancestor_iter = NULL, *our_iter = NULL, *their_iter = NULL; git_iterator_options iter_opts = GIT_ITERATOR_OPTIONS_INIT; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); int error; GIT_ASSERT_ARG(out); @@ -2211,7 +2215,7 @@ int git_merge_trees( result = our_tree; if (result) { - if ((error = git_index__new(out, repo->oid_type)) == 0) + if ((error = git_index_new_ext(out, &index_opts)) == 0) error = git_index_read_tree(*out, result); return error; diff --git a/src/libgit2/odb.c b/src/libgit2/odb.c index 2c308c97772..5678524c4d0 100644 --- a/src/libgit2/odb.c +++ b/src/libgit2/odb.c @@ -536,9 +536,14 @@ static void normalize_options( opts->oid_type = GIT_OID_DEFAULT; } -int git_odb__new(git_odb **out, const git_odb_options *opts) +int git_odb_new_ext(git_odb **out, const git_odb_options *opts) { - git_odb *db = git__calloc(1, sizeof(*db)); + git_odb *db; + + GIT_ASSERT_ARG(out); + GIT_ERROR_CHECK_VERSION(opts, GIT_ODB_OPTIONS_VERSION, "git_odb_options"); + + db = git__calloc(1, sizeof(*db)); GIT_ERROR_CHECK_ALLOC(db); normalize_options(&db->options, opts); @@ -564,17 +569,10 @@ int git_odb__new(git_odb **out, const git_odb_options *opts) return 0; } -#ifdef GIT_EXPERIMENTAL_SHA256 -int git_odb_new(git_odb **out, const git_odb_options *opts) -{ - return git_odb__new(out, opts); -} -#else int git_odb_new(git_odb **out) { - return git_odb__new(out, NULL); + return git_odb_new_ext(out, NULL); } -#endif static int add_backend_internal( git_odb *odb, git_odb_backend *backend, @@ -833,7 +831,7 @@ int git_odb_set_commit_graph(git_odb *odb, git_commit_graph *cgraph) return error; } -int git_odb__open( +int git_odb_open_ext( git_odb **out, const char *objects_dir, const git_odb_options *opts) @@ -842,10 +840,11 @@ int git_odb__open( GIT_ASSERT_ARG(out); GIT_ASSERT_ARG(objects_dir); + GIT_ERROR_CHECK_VERSION(opts, GIT_ODB_OPTIONS_VERSION, "git_odb_options"); *out = NULL; - if (git_odb__new(&db, opts) < 0) + if (git_odb_new_ext(&db, opts) < 0) return -1; if (git_odb__add_default_backends(db, objects_dir, 0, 0) < 0) { @@ -857,25 +856,11 @@ int git_odb__open( return 0; } -#ifdef GIT_EXPERIMENTAL_SHA256 - -int git_odb_open( - git_odb **out, - const char *objects_dir, - const git_odb_options *opts) -{ - return git_odb__open(out, objects_dir, opts); -} - -#else - int git_odb_open(git_odb **out, const char *objects_dir) { - return git_odb__open(out, objects_dir, NULL); + return git_odb_open_ext(out, objects_dir, NULL); } -#endif - int git_odb__set_caps(git_odb *odb, int caps) { if (caps == GIT_ODB_CAP_FROM_OWNER) { diff --git a/src/libgit2/odb.h b/src/libgit2/odb.h index 7a712e20262..fa50b984971 100644 --- a/src/libgit2/odb.h +++ b/src/libgit2/odb.h @@ -160,13 +160,6 @@ void git_odb_object__free(void *object); /* SHA256 support */ -int git_odb__new(git_odb **out, const git_odb_options *opts); - -int git_odb__open( - git_odb **out, - const char *objects_dir, - const git_odb_options *opts); - int git_odb__hash( git_oid *out, const void *data, @@ -180,9 +173,22 @@ int git_odb__hashfile( git_object_t object_type, git_oid_t oid_type); -GIT_EXTERN(int) git_odb__backend_loose( +int git_odb__backend_loose( git_odb_backend **out, const char *objects_dir, git_odb_backend_loose_options *opts); +#ifndef GIT_EXPERIMENTAL_SHA256 + +int git_odb_open_ext( + git_odb **odb_out, + const char *objects_dir, + const git_odb_options *opts); + +int git_odb_new_ext( + git_odb **odb, + const git_odb_options *opts); + +#endif + #endif diff --git a/src/libgit2/repository.c b/src/libgit2/repository.c index 2c36458b367..3be967c9406 100644 --- a/src/libgit2/repository.c +++ b/src/libgit2/repository.c @@ -328,33 +328,35 @@ static git_repository *repository_alloc(void) return NULL; } -int git_repository__new(git_repository **out, git_oid_t oid_type) +int git_repository_new_ext( + git_repository **out, + git_repository_new_options *opts) { git_repository *repo; + GIT_ASSERT_ARG(out); + GIT_ERROR_CHECK_VERSION(opts, + GIT_REPOSITORY_NEW_OPTIONS_VERSION, + "git_repository_new_options"); + + if (opts && opts->oid_type) + GIT_ASSERT_ARG(git_oid_type_is_valid(opts->oid_type)); + *out = repo = repository_alloc(); GIT_ERROR_CHECK_ALLOC(repo); - GIT_ASSERT_ARG(git_oid_type_is_valid(oid_type)); - repo->is_bare = 1; repo->is_worktree = 0; - repo->oid_type = oid_type; + repo->oid_type = opts && opts->oid_type ? opts->oid_type : + GIT_OID_DEFAULT; return 0; } -#ifdef GIT_EXPERIMENTAL_SHA256 -int git_repository_new(git_repository **out, git_repository_new_options *opts) +int git_repository_new(git_repository **out) { - return git_repository__new(out, opts && opts->oid_type ? opts->oid_type : GIT_OID_DEFAULT); + return git_repository_new_ext(out, NULL); } -#else -int git_repository_new(git_repository** out) -{ - return git_repository__new(out, GIT_OID_SHA1); -} -#endif static int load_config_data(git_repository *repo, const git_config *config) { @@ -1548,7 +1550,7 @@ int git_repository_odb__weakptr(git_odb **out, git_repository *repo) odb_opts.oid_type = repo->oid_type; if ((error = repository_odb_path(&odb_path, repo)) < 0 || - (error = git_odb__new(&odb, &odb_opts)) < 0 || + (error = git_odb_new_ext(&odb, &odb_opts)) < 0 || (error = repository_odb_alternates(odb, repo)) < 0) return error; @@ -1657,11 +1659,13 @@ int git_repository_index__weakptr(git_index **out, git_repository *repo) if (repo->_index == NULL) { git_str index_path = GIT_STR_INIT; git_index *index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; if ((error = repository_index_path(&index_path, repo)) < 0) return error; - error = git_index__open(&index, index_path.ptr, repo->oid_type); + index_opts.oid_type = repo->oid_type; + error = git_index_open_ext(&index, index_path.ptr, &index_opts); if (!error) { GIT_REFCOUNT_OWN(index, repo); diff --git a/src/libgit2/repository.h b/src/libgit2/repository.h index fbf143894e6..7da2d165577 100644 --- a/src/libgit2/repository.h +++ b/src/libgit2/repository.h @@ -15,6 +15,7 @@ #include "git2/repository.h" #include "git2/object.h" #include "git2/config.h" +#include "git2/sys/repository.h" #include "array.h" #include "cache.h" @@ -281,7 +282,14 @@ int git_repository__set_objectformat( git_repository *repo, git_oid_t oid_type); -/* SHA256-aware internal functions */ -int git_repository__new(git_repository **out, git_oid_t oid_type); +/* SHA256 support */ + +#ifndef GIT_EXPERIMENTAL_SHA256 + +GIT_EXTERN(int) git_repository_new_ext( + git_repository **out, + git_repository_new_options *opts); + +#endif #endif diff --git a/src/libgit2/stash.c b/src/libgit2/stash.c index b49e95cdb21..23c82b408fd 100644 --- a/src/libgit2/stash.c +++ b/src/libgit2/stash.c @@ -281,10 +281,11 @@ static int build_untracked_tree( git_tree *i_tree = NULL; git_diff *diff = NULL; git_diff_options opts = GIT_DIFF_OPTIONS_INIT; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); struct stash_update_rules data = {0}; int error; - if ((error = git_index__new(&i_index, repo->oid_type)) < 0) + if ((error = git_index_new_ext(&i_index, &index_opts)) < 0) goto cleanup; if (flags & GIT_STASH_INCLUDE_UNTRACKED) { @@ -484,10 +485,11 @@ static int commit_worktree( { git_index *i_index = NULL, *r_index = NULL; git_tree *w_tree = NULL; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); int error = 0, ignorecase; if ((error = git_repository_index(&r_index, repo) < 0) || - (error = git_index__new(&i_index, repo->oid_type)) < 0 || + (error = git_index_new_ext(&i_index, &index_opts)) < 0 || (error = git_index__fill(i_index, &r_index->entries) < 0) || (error = git_repository__configmap_lookup(&ignorecase, repo, GIT_CONFIGMAP_IGNORECASE)) < 0) goto cleanup; @@ -688,6 +690,7 @@ int git_stash_save_with_opts( git_str msg = GIT_STR_INIT; git_tree *tree = NULL; git_reference *head = NULL; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); bool has_paths = false; int error; @@ -732,7 +735,7 @@ int git_stash_save_with_opts( i_commit, b_commit, u_commit)) < 0) goto cleanup; } else { - if ((error = git_index__new(&paths_index, repo->oid_type)) < 0 || + if ((error = git_index_new_ext(&paths_index, &index_opts)) < 0 || (error = retrieve_head(&head, repo)) < 0 || (error = git_reference_peel((git_object**)&tree, head, GIT_OBJECT_TREE)) < 0 || (error = git_index_read_tree(paths_index, tree)) < 0 || @@ -1010,9 +1013,10 @@ static int stage_new_files( git_iterator *iterators[2] = { NULL, NULL }; git_iterator_options iterator_options = GIT_ITERATOR_OPTIONS_INIT; git_index *index = NULL; + git_index_options index_opts = GIT_INDEX_OPTIONS_FOR_REPO(repo); int error; - if ((error = git_index__new(&index, repo->oid_type)) < 0 || + if ((error = git_index_new_ext(&index, &index_opts)) < 0 || (error = git_iterator_for_tree( &iterators[0], parent_tree, &iterator_options)) < 0 || (error = git_iterator_for_tree( diff --git a/tests/libgit2/attr/repo.c b/tests/libgit2/attr/repo.c index 793c1a7d041..4c71bddb75c 100644 --- a/tests/libgit2/attr/repo.c +++ b/tests/libgit2/attr/repo.c @@ -317,11 +317,7 @@ void test_attr_repo__inmemory_repo_without_index(void) git_index *index = NULL; /* setup bare in-memory repo without index */ -#ifdef GIT_EXPERIMENTAL_SHA256 - cl_git_pass(git_repository_new(&inmemory, NULL)); -#else cl_git_pass(git_repository_new(&inmemory)); -#endif cl_assert(git_repository_is_bare(inmemory)); /* verify repo isn't given an index upfront in future */ diff --git a/tests/libgit2/checkout/index.c b/tests/libgit2/checkout/index.c index 03d5d392b54..aa85e24a616 100644 --- a/tests/libgit2/checkout/index.c +++ b/tests/libgit2/checkout/index.c @@ -830,8 +830,11 @@ void test_checkout_index__adding_conflict_removes_stage_0(void) { git_index *new_index, *index; git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__new(&new_index, GIT_OID_SHA1)); + index_opts.oid_type = GIT_OID_SHA1; + + cl_git_pass(git_index_new_ext(&new_index, &index_opts)); add_conflict(new_index, "new.txt"); cl_git_pass(git_checkout_index(g_repo, new_index, &opts)); diff --git a/tests/libgit2/clone/nonetwork.c b/tests/libgit2/clone/nonetwork.c index e784ec20f4e..dfde7f291eb 100644 --- a/tests/libgit2/clone/nonetwork.c +++ b/tests/libgit2/clone/nonetwork.c @@ -265,13 +265,17 @@ void test_clone_nonetwork__clone_tag_to_tree(void) git_tree *tree; git_reference *tag; git_tree_entry *tentry; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + const char *file_path = "some/deep/path.txt"; const char *file_content = "some content\n"; const char *tag_name = "refs/tags/tree-tag"; + index_opts.oid_type = GIT_OID_SHA1; + stage = cl_git_sandbox_init("testrepo.git"); cl_git_pass(git_repository_odb(&odb, stage)); - cl_git_pass(git_index__new(&index, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&index, &index_opts)); memset(&entry, 0, sizeof(git_index_entry)); entry.path = file_path; diff --git a/tests/libgit2/diff/diff_helpers.c b/tests/libgit2/diff/diff_helpers.c index 5daebffeb3c..6a76a92e7e8 100644 --- a/tests/libgit2/diff/diff_helpers.c +++ b/tests/libgit2/diff/diff_helpers.c @@ -314,15 +314,6 @@ void diff_assert_equal(git_diff *a, git_diff *b) } } -#ifdef GIT_EXPERIMENTAL_SHA256 -int diff_from_buffer( - git_diff **out, - const char *content, - size_t content_len) -{ - return git_diff_from_buffer(out, content, content_len, NULL); -} -#else int diff_from_buffer( git_diff **out, const char *content, @@ -330,4 +321,3 @@ int diff_from_buffer( { return git_diff_from_buffer(out, content, content_len); } -#endif diff --git a/tests/libgit2/diff/index.c b/tests/libgit2/diff/index.c index b7866750bb3..c6b7037e4c0 100644 --- a/tests/libgit2/diff/index.c +++ b/tests/libgit2/diff/index.c @@ -276,10 +276,13 @@ void test_diff_index__to_index(void) git_tree *old_tree; git_index *old_index; git_index *new_index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; git_diff *diff; diff_expects exp; - cl_git_pass(git_index__new(&old_index, GIT_OID_SHA1)); + index_opts.oid_type = GIT_OID_SHA1; + + cl_git_pass(git_index_new_ext(&old_index, &index_opts)); old_tree = resolve_commit_oid_to_tree(g_repo, a_commit); cl_git_pass(git_index_read_tree(old_index, old_tree)); diff --git a/tests/libgit2/index/cache.c b/tests/libgit2/index/cache.c index 77f19a50b29..1d0f8a3ebf2 100644 --- a/tests/libgit2/index/cache.c +++ b/tests/libgit2/index/cache.c @@ -24,7 +24,7 @@ void test_index_cache__write_extension_at_root(void) const char *tree_id_str = "45dd856fdd4d89b884c340ba0e047752d9b085d6"; const char *index_file = "index-tree"; - cl_git_pass(git_index__open(&index, index_file, GIT_OID_SHA1)); + cl_git_pass(git_index_open_ext(&index, index_file, NULL)); cl_assert(index->tree == NULL); cl_git_pass(git_oid__fromstr(&id, tree_id_str, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); @@ -35,7 +35,7 @@ void test_index_cache__write_extension_at_root(void) cl_git_pass(git_index_write(index)); git_index_free(index); - cl_git_pass(git_index__open(&index, index_file, GIT_OID_SHA1)); + cl_git_pass(git_index_open_ext(&index, index_file, NULL)); cl_assert(index->tree); cl_assert_equal_i(git_index_entrycount(index), index->tree->entry_count); @@ -52,11 +52,12 @@ void test_index_cache__write_extension_invalidated_root(void) git_index *index; git_tree *tree; git_oid id; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; const char *tree_id_str = "45dd856fdd4d89b884c340ba0e047752d9b085d6"; const char *index_file = "index-tree-invalidated"; git_index_entry entry; - cl_git_pass(git_index__open(&index, index_file, GIT_OID_SHA1)); + cl_git_pass(git_index_open_ext(&index, index_file, &index_opts)); cl_assert(index->tree == NULL); cl_git_pass(git_oid__fromstr(&id, tree_id_str, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); @@ -77,7 +78,9 @@ void test_index_cache__write_extension_invalidated_root(void) cl_git_pass(git_index_write(index)); git_index_free(index); - cl_git_pass(git_index__open(&index, index_file, GIT_OID_SHA1)); + index_opts.oid_type = GIT_OID_SHA1; + + cl_git_pass(git_index_open_ext(&index, index_file, &index_opts)); cl_assert(index->tree); cl_assert_equal_i(-1, index->tree->entry_count); @@ -96,7 +99,7 @@ void test_index_cache__read_tree_no_children(void) git_tree *tree; git_oid id; - cl_git_pass(git_index__new(&index, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&index)); cl_assert(index->tree == NULL); cl_git_pass(git_oid__fromstr(&id, "45dd856fdd4d89b884c340ba0e047752d9b085d6", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); diff --git a/tests/libgit2/index/inmemory.c b/tests/libgit2/index/inmemory.c index 39374af67bc..2b4ea994877 100644 --- a/tests/libgit2/index/inmemory.c +++ b/tests/libgit2/index/inmemory.c @@ -5,7 +5,7 @@ void test_index_inmemory__can_create_an_inmemory_index(void) { git_index *index; - cl_git_pass(git_index__new(&index, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&index)); cl_assert_equal_i(0, (int)git_index_entrycount(index)); git_index_free(index); @@ -15,7 +15,7 @@ void test_index_inmemory__cannot_add_bypath_to_an_inmemory_index(void) { git_index *index; - cl_git_pass(git_index__new(&index, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&index, NULL)); cl_assert_equal_i(GIT_ERROR, git_index_add_bypath(index, "test.txt")); diff --git a/tests/libgit2/index/racy.c b/tests/libgit2/index/racy.c index a1d6f9c6ec0..bbac7a6df3b 100644 --- a/tests/libgit2/index/racy.c +++ b/tests/libgit2/index/racy.c @@ -279,6 +279,7 @@ void test_index_racy__read_index_smudges(void) { git_index *index, *newindex; const git_index_entry *entry; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; /* if we are reading an index into our new index, ensure that any * racy entries in the index that we're reading are smudged so that @@ -287,7 +288,7 @@ void test_index_racy__read_index_smudges(void) setup_race(); cl_git_pass(git_repository_index(&index, g_repo)); - cl_git_pass(git_index__new(&newindex, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&newindex, &index_opts)); cl_git_pass(git_index_read_index(newindex, index)); cl_assert(entry = git_index_get_bypath(newindex, "A", 0)); @@ -305,7 +306,7 @@ void test_index_racy__read_index_clears_uptodate_bit(void) setup_uptodate_files(); cl_git_pass(git_repository_index(&index, g_repo)); - cl_git_pass(git_index__new(&newindex, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&newindex)); cl_git_pass(git_index_read_index(newindex, index)); /* ensure that files brought in from the other index are not uptodate */ diff --git a/tests/libgit2/index/read_index.c b/tests/libgit2/index/read_index.c index 9c80be299f1..caaf40f7967 100644 --- a/tests/libgit2/index/read_index.c +++ b/tests/libgit2/index/read_index.c @@ -33,8 +33,11 @@ void test_index_read_index__maintains_stat_cache(void) git_index_entry new_entry; const git_index_entry *e; git_tree *tree; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; size_t i; + index_opts.oid_type = GIT_OID_SHA1; + cl_assert_equal_i(4, git_index_entrycount(_index)); /* write-tree */ @@ -42,7 +45,7 @@ void test_index_read_index__maintains_stat_cache(void) /* read-tree, then read index */ git_tree_lookup(&tree, _repo, &index_id); - cl_git_pass(git_index__new(&new_index, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&new_index, &index_opts)); cl_git_pass(git_index_read_tree(new_index, tree)); git_tree_free(tree); @@ -81,7 +84,7 @@ static bool roundtrip_with_read_index(const char *tree_idstr) cl_git_pass(git_oid__fromstr(&tree_id, tree_idstr, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &tree_id)); - cl_git_pass(git_index__new(&tree_index, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&tree_index)); cl_git_pass(git_index_read_tree(tree_index, tree)); cl_git_pass(git_index_read_index(_index, tree_index)); cl_git_pass(git_index_write_tree(&new_tree_id, _index)); @@ -110,15 +113,18 @@ void test_index_read_index__read_and_writes(void) git_oid tree_id, new_tree_id; git_tree *tree; git_index *tree_index, *new_index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA1; cl_git_pass(git_oid__fromstr(&tree_id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &tree_id)); - cl_git_pass(git_index__new(&tree_index, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&tree_index, &index_opts)); cl_git_pass(git_index_read_tree(tree_index, tree)); cl_git_pass(git_index_read_index(_index, tree_index)); cl_git_pass(git_index_write(_index)); - cl_git_pass(git_index__open(&new_index, git_index_path(_index), GIT_OID_SHA1)); + cl_git_pass(git_index_open_ext(&new_index, git_index_path(_index), &index_opts)); cl_git_pass(git_index_write_tree_to(&new_tree_id, new_index, _repo)); cl_assert_equal_oid(&tree_id, &new_tree_id); @@ -174,8 +180,8 @@ void test_index_read_index__handles_conflicts(void) cl_git_pass(git_oid__fromstr(&tree_id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &tree_id)); - cl_git_pass(git_index__new(&index, GIT_OID_SHA1)); - cl_git_pass(git_index__new(&new_index, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&index, NULL)); + cl_git_pass(git_index_new_ext(&new_index, NULL)); cl_git_pass(git_index_read_tree(index, tree)); cl_git_pass(git_index_read_tree(new_index, tree)); diff --git a/tests/libgit2/index/tests.c b/tests/libgit2/index/tests.c index b48eb0fc170..fb064ea2172 100644 --- a/tests/libgit2/index/tests.c +++ b/tests/libgit2/index/tests.c @@ -81,7 +81,7 @@ void test_index_tests__empty_index(void) { git_index *index; - cl_git_pass(git_index__open(&index, "in-memory-index", GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, "in-memory-index")); cl_assert(index->on_disk == 0); cl_assert(git_index_entrycount(index) == 0); @@ -96,7 +96,7 @@ void test_index_tests__default_test_index(void) unsigned int i; git_index_entry **entries; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); cl_assert(index->on_disk); cl_assert(git_index_entrycount(index) == index_entry_count); @@ -119,7 +119,7 @@ void test_index_tests__gitgit_index(void) { git_index *index; - cl_git_pass(git_index__open(&index, TEST_INDEX2_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX2_PATH)); cl_assert(index->on_disk); cl_assert(git_index_entrycount(index) == index_entry_count_2); @@ -134,7 +134,7 @@ void test_index_tests__find_in_existing(void) git_index *index; unsigned int i; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); for (i = 0; i < ARRAY_SIZE(test_entries); ++i) { size_t idx; @@ -151,7 +151,7 @@ void test_index_tests__find_in_empty(void) git_index *index; unsigned int i; - cl_git_pass(git_index__open(&index, "fake-index", GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, "fake-index")); for (i = 0; i < ARRAY_SIZE(test_entries); ++i) { cl_assert(GIT_ENOTFOUND == git_index_find(NULL, index, test_entries[i].path)); @@ -166,7 +166,7 @@ void test_index_tests__find_prefix(void) const git_index_entry *entry; size_t pos; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); cl_git_pass(git_index_find_prefix(&pos, index, "src")); entry = git_index_get_byindex(index, pos); @@ -187,7 +187,7 @@ void test_index_tests__write(void) copy_file(TEST_INDEXBIG_PATH, "index_rewrite"); - cl_git_pass(git_index__open(&index, "index_rewrite", GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, "index_rewrite")); cl_assert(index->on_disk); cl_git_pass(git_index_write(index)); @@ -218,7 +218,7 @@ void test_index_tests__sort1(void) /* sort the entries in an empty index */ git_index *index; - cl_git_pass(git_index__open(&index, "fake-index", GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, "fake-index")); /* FIXME: this test is slightly dumb */ cl_assert(git_vector_is_sorted(&index->entries)); @@ -702,8 +702,11 @@ void test_index_tests__write_tree_invalid_unowned_index(void) git_repository *repo; git_index_entry entry = {{0}}; git_oid tree_id; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + index_opts.oid_type = GIT_OID_SHA1; + + cl_git_pass(git_index_new_ext(&idx, &index_opts)); cl_git_pass(git_oid__fromstr(&entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318", GIT_OID_SHA1)); entry.path = "foo"; @@ -966,7 +969,7 @@ void test_index_tests__reload_from_disk(void) cl_git_pass(git_repository_index(&write_index, repo)); cl_assert_equal_i(false, write_index->on_disk); - cl_git_pass(git_index__open(&read_index, write_index->index_file_path, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&read_index, write_index->index_file_path)); cl_assert_equal_i(false, read_index->on_disk); /* Stage two new files against the write_index */ @@ -1004,7 +1007,7 @@ void test_index_tests__corrupted_extension(void) { git_index *index; - cl_git_fail_with(git_index__open(&index, TEST_INDEXBAD_PATH, GIT_OID_SHA1), GIT_ERROR); + cl_git_fail_with(git_index_open(&index, TEST_INDEXBAD_PATH), GIT_ERROR); } void test_index_tests__reload_while_ignoring_case(void) @@ -1012,7 +1015,7 @@ void test_index_tests__reload_while_ignoring_case(void) git_index *index; unsigned int caps; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); cl_git_pass(git_vector_verify_sorted(&index->entries)); caps = git_index_caps(index); @@ -1037,7 +1040,7 @@ void test_index_tests__change_icase_on_instance(void) unsigned int caps; const git_index_entry *e; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); cl_git_pass(git_vector_verify_sorted(&index->entries)); caps = git_index_caps(index); @@ -1093,7 +1096,7 @@ void test_index_tests__can_iterate(void) size_t i, iterator_idx = 0, found = 0; int ret; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); cl_git_pass(git_index_iterator_new(&iterator, index)); cl_assert(git_vector_is_sorted(&iterator->snap)); @@ -1136,7 +1139,7 @@ void test_index_tests__can_modify_while_iterating(void) size_t expected = 0, seen = 0; int ret; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, TEST_INDEX_PATH)); cl_git_pass(git_index_iterator_new(&iterator, index)); expected = git_index_entrycount(index); diff --git a/tests/libgit2/index/tests256.c b/tests/libgit2/index/tests256.c index 97246ce4d5a..c720796d8bb 100644 --- a/tests/libgit2/index/tests256.c +++ b/tests/libgit2/index/tests256.c @@ -86,8 +86,11 @@ void test_index_tests256__empty_index(void) { #ifdef GIT_EXPERIMENTAL_SHA256 git_index *index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__open(&index, "in-memory-index", GIT_OID_SHA256)); + index_opts.oid_type = GIT_OID_SHA256; + + cl_git_pass(git_index_open_ext(&index, "in-memory-index", &index_opts)); cl_assert(index->on_disk == 0); cl_assert(git_index_entrycount(index) == 0); @@ -103,8 +106,11 @@ void test_index_tests256__default_test_index(void) git_index *index; unsigned int i; git_index_entry **entries; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); cl_assert(index->on_disk); cl_assert_equal_sz(git_index_entrycount(index), index_entry_count); @@ -129,8 +135,11 @@ void test_index_tests256__find_in_existing(void) #ifdef GIT_EXPERIMENTAL_SHA256 git_index *index; unsigned int i; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + index_opts.oid_type = GIT_OID_SHA256; + + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); for (i = 0; i < ARRAY_SIZE(test_entries); ++i) { size_t idx; @@ -148,8 +157,11 @@ void test_index_tests256__find_in_empty(void) #ifdef GIT_EXPERIMENTAL_SHA256 git_index *index; unsigned int i; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_index__open(&index, "fake-index", GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, "fake-index", &index_opts)); for (i = 0; i < ARRAY_SIZE(test_entries); ++i) { cl_assert(GIT_ENOTFOUND == git_index_find(NULL, index, test_entries[i].path)); @@ -165,8 +177,11 @@ void test_index_tests256__find_prefix(void) git_index *index; const git_index_entry *entry; size_t pos; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + index_opts.oid_type = GIT_OID_SHA256; + + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); cl_git_pass(git_index_find_prefix(&pos, index, "Documentation")); entry = git_index_get_byindex(index, pos); @@ -186,10 +201,13 @@ void test_index_tests256__write(void) { #ifdef GIT_EXPERIMENTAL_SHA256 git_index *index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; copy_file(TEST_INDEX_PATH, "index_rewrite"); - cl_git_pass(git_index__open(&index, "index_rewrite", GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, "index_rewrite", &index_opts)); cl_assert(index->on_disk); cl_git_pass(git_index_write(index)); @@ -206,8 +224,11 @@ void test_index_tests256__sort1(void) #ifdef GIT_EXPERIMENTAL_SHA256 /* sort the entries in an empty index */ git_index *index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_index__open(&index, "fake-index", GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, "fake-index", &index_opts)); /* FIXME: this test is slightly dumb */ cl_assert(git_vector_is_sorted(&index->entries)); @@ -675,8 +696,11 @@ void test_index_tests256__write_tree_invalid_unowned_index(void) git_repository *repo; git_index_entry entry = {{0}}; git_oid tree_id; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__new(&idx, GIT_OID_SHA256)); + index_opts.oid_type = GIT_OID_SHA256; + + cl_git_pass(git_index_new_ext(&idx, &index_opts)); /* TODO: this one is failing */ cl_git_pass(git_oid__fromstr(&entry.id, "a8c2e0a89a9cbab77c732b6bc39b51a783e3a318a847f46cba7614cac9814291", GIT_OID_SHA256)); @@ -947,6 +971,9 @@ void test_index_tests256__reload_from_disk(void) git_repository *repo; git_index *read_index; git_index *write_index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; cl_set_cleanup(&cleanup_myrepo, NULL); @@ -958,7 +985,7 @@ void test_index_tests256__reload_from_disk(void) cl_git_pass(git_repository_index(&write_index, repo)); cl_assert_equal_i(false, write_index->on_disk); - cl_git_pass(git_index__open(&read_index, write_index->index_file_path, GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&read_index, write_index->index_file_path, &index_opts)); cl_assert_equal_i(false, read_index->on_disk); /* Stage two new files against the write_index */ @@ -998,8 +1025,11 @@ void test_index_tests256__reload_while_ignoring_case(void) #ifdef GIT_EXPERIMENTAL_SHA256 git_index *index; unsigned int caps; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); cl_git_pass(git_vector_verify_sorted(&index->entries)); caps = git_index_caps(index); @@ -1025,8 +1055,11 @@ void test_index_tests256__change_icase_on_instance(void) git_index *index; unsigned int caps; const git_index_entry *e; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + index_opts.oid_type = GIT_OID_SHA256; + + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); cl_git_pass(git_vector_verify_sorted(&index->entries)); caps = git_index_caps(index); @@ -1085,8 +1118,11 @@ void test_index_tests256__can_iterate(void) const git_index_entry *entry; size_t i, iterator_idx = 0, found = 0; int ret; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); cl_git_pass(git_index_iterator_new(&iterator, index)); cl_assert(git_vector_is_sorted(&iterator->snap)); @@ -1130,8 +1166,11 @@ void test_index_tests256__can_modify_while_iterating(void) git_index_entry new_entry = {{0}}; size_t expected = 0, seen = 0; int ret; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; + + index_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_index__open(&index, TEST_INDEX_PATH, GIT_OID_SHA256)); + cl_git_pass(git_index_open_ext(&index, TEST_INDEX_PATH, &index_opts)); cl_git_pass(git_index_iterator_new(&iterator, index)); expected = git_index_entrycount(index); diff --git a/tests/libgit2/network/remote/local.c b/tests/libgit2/network/remote/local.c index 9f3c8b61179..88bf2da785e 100644 --- a/tests/libgit2/network/remote/local.c +++ b/tests/libgit2/network/remote/local.c @@ -2,6 +2,7 @@ #include "path.h" #include "posix.h" #include "git2/sys/repository.h" +#include "repository.h" static git_repository *repo; static git_str file_path_buf = GIT_STR_INIT; @@ -470,18 +471,11 @@ void test_network_remote_local__anonymous_remote_inmemory_repo(void) { git_repository *inmemory; git_remote *remote; - -#ifdef GIT_EXPERIMENTAL_SHA256 git_repository_new_options repo_opts = GIT_REPOSITORY_NEW_OPTIONS_INIT; -#endif git_str_sets(&file_path_buf, cl_git_path_url(cl_fixture("testrepo.git"))); -#ifdef GIT_EXPERIMENTAL_SHA256 - cl_git_pass(git_repository_new(&inmemory, &repo_opts)); -#else - cl_git_pass(git_repository_new(&inmemory)); -#endif + cl_git_pass(git_repository_new_ext(&inmemory, &repo_opts)); cl_git_pass(git_remote_create_anonymous(&remote, inmemory, git_str_cstr(&file_path_buf))); cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH, NULL, NULL, NULL)); cl_assert(git_remote_connected(remote)); diff --git a/tests/libgit2/object/raw/write.c b/tests/libgit2/object/raw/write.c index 346053df59a..b95deffdbfe 100644 --- a/tests/libgit2/object/raw/write.c +++ b/tests/libgit2/object/raw/write.c @@ -66,7 +66,7 @@ void test_body(object_data *d, git_rawobj *o) git_rawobj tmp; make_odb_dir(); - cl_git_pass(git_odb__open(&db, odb_dir, NULL)); + cl_git_pass(git_odb_open_ext(&db, odb_dir, NULL)); cl_git_pass(git_oid__fromstr(&id1, d->id, GIT_OID_SHA1)); streaming_write(&id2, db, o); diff --git a/tests/libgit2/object/tree/update.c b/tests/libgit2/object/tree/update.c index 1e82bdcd621..13373b6c4f7 100644 --- a/tests/libgit2/object/tree/update.c +++ b/tests/libgit2/object/tree/update.c @@ -29,7 +29,7 @@ void test_object_tree_update__remove_blob(void) cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&idx)); cl_git_pass(git_index_read_tree(idx, base_tree)); cl_git_pass(git_index_remove(idx, path, 0)); cl_git_pass(git_index_write_tree_to(&tree_index_id, idx, g_repo)); @@ -58,7 +58,7 @@ void test_object_tree_update__remove_blob_deeper(void) cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&idx)); cl_git_pass(git_index_read_tree(idx, base_tree)); cl_git_pass(git_index_remove(idx, path, 0)); cl_git_pass(git_index_write_tree_to(&tree_index_id, idx, g_repo)); @@ -89,7 +89,7 @@ void test_object_tree_update__remove_all_entries(void) cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&idx)); cl_git_pass(git_index_read_tree(idx, base_tree)); cl_git_pass(git_index_remove(idx, path1, 0)); cl_git_pass(git_index_remove(idx, path2, 0)); @@ -120,7 +120,7 @@ void test_object_tree_update__replace_blob(void) cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&idx)); cl_git_pass(git_index_read_tree(idx, base_tree)); entry.path = path; @@ -172,7 +172,7 @@ void test_object_tree_update__add_blobs(void) int j; /* Create it with an index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&idx)); base_tree = NULL; if (i == 1) { @@ -229,7 +229,7 @@ void test_object_tree_update__add_blobs_unsorted(void) int j; /* Create it with an index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new(&idx)); base_tree = NULL; if (i == 1) { diff --git a/tests/libgit2/odb/backend/loose.c b/tests/libgit2/odb/backend/loose.c index f5a0b4f5caf..4e17bb96fe8 100644 --- a/tests/libgit2/odb/backend/loose.c +++ b/tests/libgit2/odb/backend/loose.c @@ -19,7 +19,7 @@ void test_odb_backend_loose__initialize(void) cl_git_pass(git_odb_backend_loose(&backend, "testrepo.git/objects", 0, 0, 0, 0)); #endif - cl_git_pass(git_odb__new(&_odb, NULL)); + cl_git_pass(git_odb_new(&_odb)); cl_git_pass(git_odb_add_backend(_odb, backend, 10)); cl_git_pass(git_repository_wrap_odb(&_repo, _odb)); } diff --git a/tests/libgit2/odb/backend/mempack.c b/tests/libgit2/odb/backend/mempack.c index 462a1d333a6..036b13a5170 100644 --- a/tests/libgit2/odb/backend/mempack.c +++ b/tests/libgit2/odb/backend/mempack.c @@ -13,7 +13,7 @@ static git_odb_backend *_backend; void test_odb_backend_mempack__initialize(void) { cl_git_pass(git_mempack_new(&_backend)); - cl_git_pass(git_odb__new(&_odb, NULL)); + cl_git_pass(git_odb_new(&_odb)); cl_git_pass(git_odb_add_backend(_odb, _backend, 10)); cl_git_pass(git_repository_wrap_odb(&_repo, _odb)); } diff --git a/tests/libgit2/odb/backend/nobackend.c b/tests/libgit2/odb/backend/nobackend.c index e8af9a6d6fa..b33f79abb90 100644 --- a/tests/libgit2/odb/backend/nobackend.c +++ b/tests/libgit2/odb/backend/nobackend.c @@ -11,17 +11,15 @@ void test_odb_backend_nobackend__initialize(void) git_odb *odb; git_refdb *refdb; -#ifdef GIT_EXPERIMENTAL_SHA256 git_repository_new_options repo_opts = GIT_REPOSITORY_NEW_OPTIONS_INIT; + git_odb_options odb_opts = GIT_ODB_OPTIONS_INIT; repo_opts.oid_type = GIT_OID_SHA1; + odb_opts.oid_type = GIT_OID_SHA1; - cl_git_pass(git_repository_new(&_repo, &repo_opts)); -#else - cl_git_pass(git_repository_new(&_repo)); -#endif + cl_git_pass(git_repository_new_ext(&_repo, &repo_opts)); cl_git_pass(git_config_new(&config)); - cl_git_pass(git_odb__new(&odb, NULL)); + cl_git_pass(git_odb_new_ext(&odb, &odb_opts)); cl_git_pass(git_refdb_new(&refdb, _repo)); git_repository_set_config(_repo, config); diff --git a/tests/libgit2/odb/foreach.c b/tests/libgit2/odb/foreach.c index 56b3e882ce0..091bd783e5b 100644 --- a/tests/libgit2/odb/foreach.c +++ b/tests/libgit2/odb/foreach.c @@ -50,8 +50,11 @@ void test_odb_foreach__one_pack(void) { git_odb_backend *backend = NULL; int nobj = 0; + git_odb_options odb_opts = GIT_ODB_OPTIONS_INIT; - cl_git_pass(git_odb__new(&_odb, NULL)); + odb_opts.oid_type = GIT_OID_SHA1; + + cl_git_pass(git_odb_new_ext(&_odb, &odb_opts)); #ifdef GIT_EXPERIMENTAL_SHA256 cl_git_pass(git_odb_backend_one_pack(&backend, diff --git a/tests/libgit2/odb/loose.c b/tests/libgit2/odb/loose.c index 0409dfb2812..4ad47772c23 100644 --- a/tests/libgit2/odb/loose.c +++ b/tests/libgit2/odb/loose.c @@ -44,7 +44,7 @@ static void test_read_object(object_data *data) write_object_files(data); - cl_git_pass(git_odb__open(&odb, "test-objects", &opts)); + cl_git_pass(git_odb_open_ext(&odb, "test-objects", &opts)); cl_git_pass(git_oid__fromstr(&id, data->id, data->id_type)); cl_git_pass(git_odb_read(&obj, odb, &id)); @@ -70,7 +70,7 @@ static void test_read_header(object_data *data) write_object_files(data); - cl_git_pass(git_odb__open(&odb, "test-objects", &opts)); + cl_git_pass(git_odb_open_ext(&odb, "test-objects", &opts)); cl_git_pass(git_oid__fromstr(&id, data->id, data->id_type)); cl_git_pass(git_odb_read_header(&len, &type, odb, &id)); @@ -95,7 +95,7 @@ static void test_readstream_object(object_data *data, size_t blocksize) write_object_files(data); - cl_git_pass(git_odb__open(&odb, "test-objects", &opts)); + cl_git_pass(git_odb_open_ext(&odb, "test-objects", &opts)); cl_git_pass(git_oid__fromstr(&id, data->id, data->id_type)); cl_git_pass(git_odb_open_rstream(&stream, &tmp.len, &tmp.type, odb, &id)); @@ -139,7 +139,7 @@ void test_odb_loose__exists_sha1(void) git_odb *odb; write_object_files(&one); - cl_git_pass(git_odb__open(&odb, "test-objects", NULL)); + cl_git_pass(git_odb_open(&odb, "test-objects")); cl_git_pass(git_oid__fromstr(&id, one.id, GIT_OID_SHA1)); cl_assert(git_odb_exists(odb, &id)); @@ -170,7 +170,7 @@ void test_odb_loose__exists_sha256(void) odb_opts.oid_type = GIT_OID_SHA256; write_object_files(&one_sha256); - cl_git_pass(git_odb__open(&odb, "test-objects", &odb_opts)); + cl_git_pass(git_odb_open_ext(&odb, "test-objects", &odb_opts)); cl_git_pass(git_oid__fromstr(&id, one_sha256.id, GIT_OID_SHA256)); cl_assert(git_odb_exists(odb, &id)); @@ -304,7 +304,7 @@ static void test_write_object_permission( opts.dir_mode = dir_mode; opts.file_mode = file_mode; - cl_git_pass(git_odb__new(&odb, NULL)); + cl_git_pass(git_odb_new(&odb)); cl_git_pass(git_odb__backend_loose(&backend, "test-objects", &opts)); cl_git_pass(git_odb_add_backend(odb, backend, 1)); cl_git_pass(git_odb_write(&oid, odb, "Test data\n", 10, GIT_OBJECT_BLOB)); @@ -338,16 +338,17 @@ static void write_object_to_loose_odb(int fsync) git_odb *odb; git_odb_backend *backend; git_oid oid; - git_odb_backend_loose_options opts = GIT_ODB_BACKEND_LOOSE_OPTIONS_INIT; + git_odb_options odb_opts = GIT_ODB_OPTIONS_INIT; + git_odb_backend_loose_options backend_opts = GIT_ODB_BACKEND_LOOSE_OPTIONS_INIT; if (fsync) - opts.flags |= GIT_ODB_BACKEND_LOOSE_FSYNC; + backend_opts.flags |= GIT_ODB_BACKEND_LOOSE_FSYNC; - opts.dir_mode = 0777; - opts.file_mode = 0666; + backend_opts.dir_mode = 0777; + backend_opts.file_mode = 0666; - cl_git_pass(git_odb__new(&odb, NULL)); - cl_git_pass(git_odb__backend_loose(&backend, "test-objects", &opts)); + cl_git_pass(git_odb_new_ext(&odb, &odb_opts)); + cl_git_pass(git_odb__backend_loose(&backend, "test-objects", &backend_opts)); cl_git_pass(git_odb_add_backend(odb, backend, 1)); cl_git_pass(git_odb_write(&oid, odb, "Test data\n", 10, GIT_OBJECT_BLOB)); git_odb_free(odb); diff --git a/tests/libgit2/odb/mixed.c b/tests/libgit2/odb/mixed.c index 19e6dcebf1e..2cba8cb1479 100644 --- a/tests/libgit2/odb/mixed.c +++ b/tests/libgit2/odb/mixed.c @@ -5,7 +5,7 @@ static git_odb *_odb; void test_odb_mixed__initialize(void) { - cl_git_pass(git_odb__open(&_odb, cl_fixture("duplicate.git/objects"), NULL)); + cl_git_pass(git_odb_open_ext(&_odb, cl_fixture("duplicate.git/objects"), NULL)); } void test_odb_mixed__cleanup(void) diff --git a/tests/libgit2/odb/open.c b/tests/libgit2/odb/open.c index 395406d0f3c..05e65d2c0eb 100644 --- a/tests/libgit2/odb/open.c +++ b/tests/libgit2/odb/open.c @@ -1,4 +1,5 @@ #include "clar_libgit2.h" +#include "odb.h" void test_odb_open__initialize(void) { @@ -14,15 +15,14 @@ void test_odb_open__exists(void) { git_odb *odb; git_oid one, two; - -#ifdef GIT_EXPERIMENTAL_SHA256 git_odb_options opts = GIT_ODB_OPTIONS_INIT; - cl_git_pass(git_odb_open(&odb, "testrepo.git/objects", &opts)); + cl_git_pass(git_odb_open_ext(&odb, "testrepo.git/objects", &opts)); + +#ifdef GIT_EXPERIMENTAL_SHA256 cl_git_pass(git_oid_fromstr(&one, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); cl_git_pass(git_oid_fromstr(&two, "00112233445566778899aabbccddeeff00112233", GIT_OID_SHA1)); #else - cl_git_pass(git_odb_open(&odb, "testrepo.git/objects")); cl_git_pass(git_oid_fromstr(&one, "1385f264afb75a56a5bec74243be9b367ba4ca08")); cl_git_pass(git_oid_fromstr(&two, "00112233445566778899aabbccddeeff00112233")); #endif diff --git a/tests/libgit2/odb/packed.c b/tests/libgit2/odb/packed.c index b41041fc112..6fbe0a46dab 100644 --- a/tests/libgit2/odb/packed.c +++ b/tests/libgit2/odb/packed.c @@ -6,7 +6,7 @@ static git_odb *_odb; void test_odb_packed__initialize(void) { - cl_git_pass(git_odb__open(&_odb, cl_fixture("testrepo.git/objects"), NULL)); + cl_git_pass(git_odb_open_ext(&_odb, cl_fixture("testrepo.git/objects"), NULL)); } void test_odb_packed__cleanup(void) diff --git a/tests/libgit2/odb/packed256.c b/tests/libgit2/odb/packed256.c index 65220fd4c8b..3b04e88b558 100644 --- a/tests/libgit2/odb/packed256.c +++ b/tests/libgit2/odb/packed256.c @@ -13,7 +13,7 @@ void test_odb_packed256__initialize(void) opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_odb__open( + cl_git_pass(git_odb_open_ext( &_odb, cl_fixture("testrepo_256.git/objects"), &opts)); diff --git a/tests/libgit2/odb/packedone.c b/tests/libgit2/odb/packedone.c index 8637001ffa7..4dea474f95c 100644 --- a/tests/libgit2/odb/packedone.c +++ b/tests/libgit2/odb/packedone.c @@ -10,7 +10,8 @@ void test_odb_packedone__initialize(void) { git_odb_backend *backend = NULL; - cl_git_pass(git_odb__new(&_odb, NULL)); + cl_git_pass(git_odb_new_ext(&_odb, NULL)); + #ifdef GIT_EXPERIMENTAL_SHA256 cl_git_pass(git_odb_backend_one_pack(&backend, cl_fixture("testrepo.git/objects/pack/pack-a81e489679b7d3418f9ab594bda8ceb37dd4c695.idx"), diff --git a/tests/libgit2/odb/packedone256.c b/tests/libgit2/odb/packedone256.c index fdeac42055f..6fc6a80814a 100644 --- a/tests/libgit2/odb/packedone256.c +++ b/tests/libgit2/odb/packedone256.c @@ -18,7 +18,7 @@ void test_odb_packedone256__initialize(void) odb_opts.oid_type = GIT_OID_SHA256; backend_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_odb__new(&_odb, &odb_opts)); + cl_git_pass(git_odb_new_ext(&_odb, &odb_opts)); cl_git_pass(git_odb_backend_one_pack( &backend, cl_fixture("testrepo_256.git/objects/pack/pack-e2f07f30db7e480ea84a0e64ee791b9b270067124b2609019b74f33f256f33fa.idx"), diff --git a/tests/libgit2/odb/sorting.c b/tests/libgit2/odb/sorting.c index 3fe52e852cd..95d471db5d4 100644 --- a/tests/libgit2/odb/sorting.c +++ b/tests/libgit2/odb/sorting.c @@ -42,7 +42,7 @@ static git_odb *_odb; void test_odb_sorting__initialize(void) { - cl_git_pass(git_odb__new(&_odb, NULL)); + cl_git_pass(git_odb_new(&_odb)); } void test_odb_sorting__cleanup(void) @@ -94,7 +94,7 @@ void test_odb_sorting__override_default_backend_priority(void) ); git_odb__backend_loose(&loose, "./testrepo.git/objects", NULL); - cl_git_pass(git_odb__open(&new_odb, cl_fixture("testrepo.git/objects"), NULL)); + cl_git_pass(git_odb_open(&new_odb, cl_fixture("testrepo.git/objects"))); cl_assert_equal_sz(2, git_odb_num_backends(new_odb)); cl_git_pass(git_odb_get_backend(&backend, new_odb, 0)); diff --git a/tests/libgit2/refs/iterator.c b/tests/libgit2/refs/iterator.c index a46db629085..d79d968a588 100644 --- a/tests/libgit2/refs/iterator.c +++ b/tests/libgit2/refs/iterator.c @@ -128,7 +128,7 @@ void test_refs_iterator__empty(void) git_reference *ref; git_repository *empty; - cl_git_pass(git_odb__new(&odb, NULL)); + cl_git_pass(git_odb_new(&odb)); cl_git_pass(git_repository_wrap_odb(&empty, odb)); cl_git_pass(git_reference_iterator_new(&iter, empty)); diff --git a/tests/libgit2/repo/new.c b/tests/libgit2/repo/new.c index 5136e60b09d..92a5a8cfa50 100644 --- a/tests/libgit2/repo/new.c +++ b/tests/libgit2/repo/new.c @@ -1,19 +1,15 @@ #include "clar_libgit2.h" #include "git2/sys/repository.h" +#include "repository.h" void test_repo_new__has_nothing(void) { git_repository *repo; - -#ifdef GIT_EXPERIMENTAL_SHA256 git_repository_new_options repo_opts = GIT_REPOSITORY_NEW_OPTIONS_INIT; repo_opts.oid_type = GIT_OID_SHA1; - cl_git_pass(git_repository_new(&repo, &repo_opts)); -#else - cl_git_pass(git_repository_new(&repo)); -#endif + cl_git_pass(git_repository_new_ext(&repo, &repo_opts)); cl_assert_equal_b(true, git_repository_is_bare(repo)); cl_assert_equal_p(NULL, git_repository_path(repo)); cl_assert_equal_p(NULL, git_repository_workdir(repo)); @@ -24,15 +20,11 @@ void test_repo_new__is_bare_until_workdir_set(void) { git_repository *repo; -#ifdef GIT_EXPERIMENTAL_SHA256 git_repository_new_options repo_opts = GIT_REPOSITORY_NEW_OPTIONS_INIT; repo_opts.oid_type = GIT_OID_SHA1; - cl_git_pass(git_repository_new(&repo, &repo_opts)); -#else - cl_git_pass(git_repository_new(&repo)); -#endif + cl_git_pass(git_repository_new_ext(&repo, &repo_opts)); cl_assert_equal_b(true, git_repository_is_bare(repo)); cl_git_pass(git_repository_set_workdir(repo, clar_sandbox_path(), 0)); @@ -44,16 +36,11 @@ void test_repo_new__is_bare_until_workdir_set(void) void test_repo_new__sha1(void) { git_repository *repo; - -#ifdef GIT_EXPERIMENTAL_SHA256 git_repository_new_options repo_opts = GIT_REPOSITORY_NEW_OPTIONS_INIT; repo_opts.oid_type = GIT_OID_SHA1; - cl_git_pass(git_repository_new(&repo, &repo_opts)); -#else - cl_git_pass(git_repository_new(&repo)); -#endif + cl_git_pass(git_repository_new_ext(&repo, &repo_opts)); cl_assert_equal_i(GIT_OID_SHA1, git_repository_oid_type(repo)); git_repository_free(repo); @@ -69,7 +56,7 @@ void test_repo_new__sha256(void) repo_opts.oid_type = GIT_OID_SHA256; - cl_git_pass(git_repository_new(&repo, &repo_opts)); + cl_git_pass(git_repository_new_ext(&repo, &repo_opts)); cl_assert_equal_i(GIT_OID_SHA256, git_repository_oid_type(repo)); git_repository_free(repo); diff --git a/tests/libgit2/repo/setters.c b/tests/libgit2/repo/setters.c index 1ad38bb8b80..8e2946d4d58 100644 --- a/tests/libgit2/repo/setters.c +++ b/tests/libgit2/repo/setters.c @@ -70,8 +70,11 @@ void test_repo_setters__setting_a_workdir_creates_a_gitlink(void) void test_repo_setters__setting_a_new_index_on_a_repo_which_has_already_loaded_one_properly_honors_the_refcount(void) { git_index *new_index; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; - cl_git_pass(git_index__open(&new_index, "./my-index", GIT_OID_SHA1)); + index_opts.oid_type = GIT_OID_SHA1; + + cl_git_pass(git_index_open_ext(&new_index, "./my-index", &index_opts)); cl_assert(((git_refcount *)new_index)->refcount.val == 1); git_repository_set_index(repo, new_index); @@ -92,7 +95,7 @@ void test_repo_setters__setting_a_new_odb_on_a_repo_which_already_loaded_one_pro { git_odb *new_odb; - cl_git_pass(git_odb__open(&new_odb, "./testrepo.git/objects", NULL)); + cl_git_pass(git_odb_open(&new_odb, "./testrepo.git/objects")); cl_assert(((git_refcount *)new_odb)->refcount.val == 1); git_repository_set_odb(repo, new_odb); diff --git a/tests/libgit2/reset/hard.c b/tests/libgit2/reset/hard.c index 06a8a049afc..fa7c0b3e633 100644 --- a/tests/libgit2/reset/hard.c +++ b/tests/libgit2/reset/hard.c @@ -247,13 +247,14 @@ void test_reset_hard__switch_file_to_dir(void) git_signature *sig; git_oid src_tree_id, tgt_tree_id; git_oid src_id, tgt_id; + git_index_options index_opts = GIT_INDEX_OPTIONS_INIT; cl_git_pass(git_repository_odb(&odb, repo)); cl_git_pass(git_odb_write(&entry.id, odb, "", 0, GIT_OBJECT_BLOB)); git_odb_free(odb); entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&idx, &index_opts)); cl_git_pass(git_signature_now(&sig, "foo", "bar")); /* Create the old tree */ diff --git a/tests/libgit2/status/worktree_init.c b/tests/libgit2/status/worktree_init.c index db6e71f1234..532b4bba084 100644 --- a/tests/libgit2/status/worktree_init.c +++ b/tests/libgit2/status/worktree_init.c @@ -66,7 +66,7 @@ void test_status_worktree_init__status_file_without_index_or_workdir(void) cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git"))); cl_git_pass(git_repository_set_workdir(repo, "wd", false)); - cl_git_pass(git_index__open(&index, "empty-index", GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, "empty-index")); cl_assert_equal_i(0, (int)git_index_entrycount(index)); git_repository_set_index(repo, index); @@ -107,7 +107,7 @@ void test_status_worktree_init__status_file_with_clean_index_and_empty_workdir(v cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git"))); cl_git_pass(git_repository_set_workdir(repo, "wd", false)); - cl_git_pass(git_index__open(&index, "my-index", GIT_OID_SHA1)); + cl_git_pass(git_index_open(&index, "my-index")); fill_index_wth_head_entries(repo, index); git_repository_set_index(repo, index); diff --git a/tests/libgit2/submodule/lookup.c b/tests/libgit2/submodule/lookup.c index 14a624badef..2c5c6081f41 100644 --- a/tests/libgit2/submodule/lookup.c +++ b/tests/libgit2/submodule/lookup.c @@ -211,7 +211,7 @@ void test_submodule_lookup__lookup_even_with_missing_index(void) git_index *idx; /* give the repo an empty index */ - cl_git_pass(git_index__new(&idx, GIT_OID_SHA1)); + cl_git_pass(git_index_new_ext(&idx, NULL)); git_repository_set_index(g_repo, idx); git_index_free(idx); From c26d8a8b54fcb776f876f5ead2e69739271d4a66 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Wed, 1 Jan 2025 15:47:43 +0000 Subject: [PATCH 23/58] sha256: further API simplifications for OID parsing Introduce `git_oid_from_string`, `git_oid_from_prefix`, and `git_oid_from_raw`, all of which take a `git_oid_t` that indicates what type of OID should be parsed (SHA1 or SHA256). This allows users to continue to use `git_oid_fromstr` without any code changes, while remaining in a SHA1 world. Note that these are not perfect analogs to the `fromstr` APIs. * `git_oid_from_string` now takes a NUL terminated string, instead of allowing for non-NUL terminated strings. Adding a NUL check feels like an important safety consideration for C strings. * `git_oid_from_prefix` should be used for an OID substring and length. Previous usages of `git_oid_fromstr` with non-NUL terminated strings should move to `git_oid_from_prefix` with the hexsize for the given OID type. --- examples/general.c | 16 +-- examples/rev-list.c | 2 +- include/git2/oid.h | 62 ++++++++-- src/libgit2/commit_graph.c | 4 +- src/libgit2/fetch.c | 2 +- src/libgit2/fetchhead.c | 2 +- src/libgit2/index.c | 6 +- src/libgit2/indexer.c | 2 +- src/libgit2/merge.c | 2 +- src/libgit2/midx.c | 4 +- src/libgit2/notes.c | 2 +- src/libgit2/object.c | 2 +- src/libgit2/odb_loose.c | 5 +- src/libgit2/oid.c | 86 +++++--------- src/libgit2/oid.h | 16 +-- src/libgit2/pack.c | 10 +- src/libgit2/parse.c | 2 +- src/libgit2/patch_parse.c | 2 +- src/libgit2/rebase.c | 6 +- src/libgit2/refdb_fs.c | 10 +- src/libgit2/remote.c | 2 +- src/libgit2/revparse.c | 2 +- src/libgit2/transports/smart_pkt.c | 8 +- src/libgit2/tree-cache.c | 2 +- src/libgit2/tree.c | 2 +- tests/clar/clar_libgit2.h | 3 +- tests/libgit2/apply/apply_helpers.c | 2 +- tests/libgit2/apply/both.c | 12 +- tests/libgit2/apply/callbacks.c | 2 +- tests/libgit2/apply/check.c | 6 +- tests/libgit2/apply/index.c | 10 +- tests/libgit2/apply/tree.c | 6 +- tests/libgit2/apply/workdir.c | 8 +- tests/libgit2/checkout/binaryunicode.c | 4 +- tests/libgit2/checkout/conflict.c | 4 +- tests/libgit2/checkout/index.c | 6 +- tests/libgit2/checkout/tree.c | 36 +++--- tests/libgit2/checkout/typechange.c | 2 +- tests/libgit2/cherrypick/bare.c | 12 +- tests/libgit2/cherrypick/workdir.c | 36 +++--- tests/libgit2/commit/commit.c | 12 +- tests/libgit2/commit/parent.c | 2 +- tests/libgit2/commit/parse.c | 4 +- tests/libgit2/commit/write.c | 50 ++++---- tests/libgit2/core/oid.c | 12 +- tests/libgit2/core/oidarray.c | 8 +- tests/libgit2/core/pool.c | 2 +- tests/libgit2/diff/binary.c | 10 +- tests/libgit2/diff/blob.c | 36 +++--- tests/libgit2/diff/diff_helpers.c | 2 +- tests/libgit2/diff/format_email.c | 8 +- tests/libgit2/diff/index.c | 8 +- tests/libgit2/diff/patchid.c | 2 +- tests/libgit2/diff/rename.c | 2 +- tests/libgit2/diff/stats.c | 2 +- tests/libgit2/diff/workdir.c | 10 +- tests/libgit2/email/create.c | 4 +- tests/libgit2/fetch/local.c | 4 +- tests/libgit2/fetchhead/nonetwork.c | 22 ++-- tests/libgit2/filter/bare.c | 4 +- tests/libgit2/grafts/basic.c | 10 +- tests/libgit2/grafts/parse.c | 4 +- tests/libgit2/grafts/shallow.c | 4 +- tests/libgit2/graph/ahead_behind.c | 6 +- tests/libgit2/graph/commitgraph.c | 20 ++-- tests/libgit2/graph/descendant_of.c | 4 +- tests/libgit2/graph/reachable_from_any.c | 2 +- tests/libgit2/index/add.c | 6 +- tests/libgit2/index/bypath.c | 6 +- tests/libgit2/index/cache.c | 16 +-- tests/libgit2/index/conflicts.c | 74 ++++++------ tests/libgit2/index/crlf.c | 16 +-- tests/libgit2/index/names.c | 6 +- tests/libgit2/index/read_index.c | 14 +-- tests/libgit2/index/rename.c | 2 +- tests/libgit2/index/reuc.c | 70 +++++------ tests/libgit2/index/tests.c | 16 +-- tests/libgit2/index/tests256.c | 14 +-- tests/libgit2/iterator/index.c | 10 +- tests/libgit2/iterator/tree.c | 6 +- tests/libgit2/iterator/workdir.c | 2 +- tests/libgit2/merge/driver.c | 6 +- tests/libgit2/merge/files.c | 6 +- tests/libgit2/merge/merge_helpers.c | 10 +- tests/libgit2/merge/trees/renames.c | 2 +- tests/libgit2/merge/trees/treediff.c | 6 +- tests/libgit2/merge/trees/trivial.c | 4 +- tests/libgit2/merge/workdir/dirty.c | 2 +- tests/libgit2/merge/workdir/setup.c | 110 +++++++++--------- tests/libgit2/merge/workdir/simple.c | 18 +-- tests/libgit2/merge/workdir/trivial.c | 4 +- tests/libgit2/network/remote/rename.c | 2 +- tests/libgit2/notes/notes.c | 48 ++++---- tests/libgit2/notes/notesref.c | 2 +- tests/libgit2/object/blob/fromstream.c | 4 +- tests/libgit2/object/cache.c | 14 +-- .../libgit2/object/commit/commitstagedfile.c | 6 +- tests/libgit2/object/commit/parse.c | 2 +- tests/libgit2/object/lookup.c | 12 +- tests/libgit2/object/lookup256.c | 12 +- tests/libgit2/object/peel.c | 6 +- tests/libgit2/object/raw/chars.c | 6 +- tests/libgit2/object/raw/compare.c | 20 ++-- tests/libgit2/object/raw/convert.c | 6 +- tests/libgit2/object/raw/fromstr.c | 10 +- tests/libgit2/object/raw/hash.c | 32 ++--- tests/libgit2/object/raw/short.c | 2 +- tests/libgit2/object/raw/write.c | 2 +- tests/libgit2/object/shortid.c | 10 +- tests/libgit2/object/tag/parse.c | 2 +- tests/libgit2/object/tag/peel.c | 2 +- tests/libgit2/object/tag/read.c | 16 +-- tests/libgit2/object/tag/write.c | 18 +-- tests/libgit2/object/tree/attributes.c | 10 +- tests/libgit2/object/tree/duplicateentries.c | 16 +-- tests/libgit2/object/tree/frompath.c | 2 +- tests/libgit2/object/tree/parse.c | 2 +- tests/libgit2/object/tree/read.c | 4 +- tests/libgit2/object/tree/update.c | 30 ++--- tests/libgit2/object/tree/walk.c | 6 +- tests/libgit2/object/tree/write.c | 36 +++--- tests/libgit2/odb/alternates.c | 4 +- tests/libgit2/odb/backend/backend_helpers.c | 6 +- tests/libgit2/odb/backend/loose.c | 8 +- tests/libgit2/odb/backend/mempack.c | 4 +- tests/libgit2/odb/backend/multiple.c | 2 +- tests/libgit2/odb/backend/nonrefreshing.c | 4 +- tests/libgit2/odb/backend/refreshing.c | 4 +- tests/libgit2/odb/backend/simple.c | 26 ++--- tests/libgit2/odb/emptyobjects.c | 6 +- tests/libgit2/odb/freshen.c | 12 +- tests/libgit2/odb/largefiles.c | 4 +- tests/libgit2/odb/loose.c | 22 ++-- tests/libgit2/odb/mixed.c | 26 ++--- tests/libgit2/odb/open.c | 4 +- tests/libgit2/odb/packed.c | 6 +- tests/libgit2/odb/packed256.c | 6 +- tests/libgit2/odb/packedone.c | 4 +- tests/libgit2/odb/packedone256.c | 4 +- tests/libgit2/online/clone.c | 2 +- tests/libgit2/online/fetch.c | 4 +- tests/libgit2/online/push.c | 28 ++--- tests/libgit2/online/shallow.c | 6 +- tests/libgit2/pack/indexer.c | 4 +- tests/libgit2/pack/midx.c | 4 +- tests/libgit2/pack/sharing.c | 2 +- tests/libgit2/perf/helper__perf__do_merge.c | 4 +- tests/libgit2/rebase/abort.c | 12 +- tests/libgit2/rebase/inmemory.c | 10 +- tests/libgit2/rebase/iterator.c | 20 ++-- tests/libgit2/rebase/merge.c | 30 ++--- tests/libgit2/rebase/setup.c | 30 ++--- tests/libgit2/rebase/sign.c | 10 +- tests/libgit2/refs/basic.c | 2 +- tests/libgit2/refs/branches/delete.c | 4 +- tests/libgit2/refs/branches/iterator.c | 2 +- tests/libgit2/refs/create.c | 22 ++-- tests/libgit2/refs/delete.c | 2 +- tests/libgit2/refs/foreachglob.c | 2 +- tests/libgit2/refs/lookup.c | 2 +- tests/libgit2/refs/peel.c | 2 +- tests/libgit2/refs/races.c | 24 ++-- tests/libgit2/refs/read.c | 4 +- tests/libgit2/refs/reflog/messages.c | 6 +- tests/libgit2/refs/reflog/reflog.c | 22 ++-- tests/libgit2/refs/reflog/reflog_helpers.c | 4 +- tests/libgit2/refs/transactions.c | 10 +- tests/libgit2/repo/env.c | 6 +- tests/libgit2/repo/getters.c | 10 +- tests/libgit2/repo/head.c | 2 +- tests/libgit2/reset/hard.c | 6 +- tests/libgit2/revert/bare.c | 10 +- tests/libgit2/revert/rename.c | 2 +- tests/libgit2/revert/workdir.c | 40 +++---- tests/libgit2/revwalk/basic.c | 28 ++--- tests/libgit2/revwalk/hidecb.c | 4 +- tests/libgit2/revwalk/mergebase.c | 66 +++++------ tests/libgit2/revwalk/simplify.c | 4 +- tests/libgit2/status/single.c | 4 +- tests/libgit2/status/submodules.c | 2 +- tests/libgit2/status/worktree.c | 14 +-- tests/libgit2/submodule/add.c | 2 +- tests/libgit2/transports/smart/packet.c | 4 +- tests/libgit2/win32/forbidden.c | 4 +- 184 files changed, 1041 insertions(+), 1021 deletions(-) diff --git a/examples/general.c b/examples/general.c index 0275f84a24e..7b8fa2ac5a7 100644 --- a/examples/general.c +++ b/examples/general.c @@ -143,7 +143,7 @@ static void oid_parsing(git_oid *oid) * key we're working with. */ #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(oid, hex, GIT_OID_SHA1); + git_oid_from_string(oid, hex, GIT_OID_SHA1); #else git_oid_fromstr(oid, hex); #endif @@ -292,8 +292,8 @@ static void commit_writing(git_repository *repo) * but you can also use */ #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(&tree_id, "f60079018b664e4e79329a7ef9559c8d9e0378d1", GIT_OID_SHA1); - git_oid_fromstr(&parent_id, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); + git_oid_from_string(&tree_id, "f60079018b664e4e79329a7ef9559c8d9e0378d1", GIT_OID_SHA1); + git_oid_from_string(&parent_id, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); #else git_oid_fromstr(&tree_id, "f60079018b664e4e79329a7ef9559c8d9e0378d1"); git_oid_fromstr(&parent_id, "5b5b025afb0b4c913b4c338a42934a3863bf3644"); @@ -363,7 +363,7 @@ static void commit_parsing(git_repository *repo) printf("\n*Commit Parsing*\n"); #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(&oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1); + git_oid_from_string(&oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1); #else git_oid_fromstr(&oid, "8496071c1b46c854b31185ea97743be6a8774479"); #endif @@ -436,7 +436,7 @@ static void tag_parsing(git_repository *repo) * the same way that we would a commit (or any other object). */ #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(&oid, "b25fa35b38051e4ae45d4222e795f9df2e43f1d1", GIT_OID_SHA1); + git_oid_from_string(&oid, "b25fa35b38051e4ae45d4222e795f9df2e43f1d1", GIT_OID_SHA1); #else git_oid_fromstr(&oid, "b25fa35b38051e4ae45d4222e795f9df2e43f1d1"); #endif @@ -488,7 +488,7 @@ static void tree_parsing(git_repository *repo) * Create the oid and lookup the tree object just like the other objects. */ #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(&oid, "f60079018b664e4e79329a7ef9559c8d9e0378d1", GIT_OID_SHA1); + git_oid_from_string(&oid, "f60079018b664e4e79329a7ef9559c8d9e0378d1", GIT_OID_SHA1); #else git_oid_fromstr(&oid, "f60079018b664e4e79329a7ef9559c8d9e0378d1"); #endif @@ -546,7 +546,7 @@ static void blob_parsing(git_repository *repo) printf("\n*Blob Parsing*\n"); #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1); + git_oid_from_string(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1); #else git_oid_fromstr(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08"); #endif @@ -592,7 +592,7 @@ static void revwalking(git_repository *repo) printf("\n*Revwalking*\n"); #ifdef GIT_EXPERIMENTAL_SHA256 - git_oid_fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); + git_oid_from_string(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); #else git_oid_fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644"); #endif diff --git a/examples/rev-list.c b/examples/rev-list.c index cf8ac30c625..a7598b8247d 100644 --- a/examples/rev-list.c +++ b/examples/rev-list.c @@ -141,7 +141,7 @@ static int revwalk_parse_revs(git_repository *repo, git_revwalk *walk, struct ar continue; #ifdef GIT_EXPERIMENTAL_SHA256 - if ((error = git_oid_fromstr(&oid, curr, GIT_OID_SHA1))) + if ((error = git_oid_from_string(&oid, curr, GIT_OID_SHA1))) return error; #else if ((error = git_oid_fromstr(&oid, curr))) diff --git a/include/git2/oid.h b/include/git2/oid.h index 0af9737a04d..b9e02cee6a2 100644 --- a/include/git2/oid.h +++ b/include/git2/oid.h @@ -114,12 +114,62 @@ typedef struct git_oid { #ifdef GIT_EXPERIMENTAL_SHA256 -GIT_EXTERN(int) git_oid_fromstr(git_oid *out, const char *str, git_oid_t type); -GIT_EXTERN(int) git_oid_fromstrp(git_oid *out, const char *str, git_oid_t type); -GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length, git_oid_t type); -GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw, git_oid_t type); +/** + * Parse a NUL terminated hex formatted object id string into a `git_oid`. + * + * The given string must be NUL terminated, and must be the hex size of + * the given object ID type - 40 characters for SHA1, 64 characters for + * SHA256. + * + * To parse an incomplete object ID (an object ID prefix), or a sequence + * of characters that is not NUL terminated, use `git_oid_from_prefix`. + * + * @param out oid structure the result is written into. + * @param str input hex string + * @param type object id type + * @return 0 or an error code + */ +GIT_EXTERN(int) git_oid_from_string( + git_oid *out, + const char *str, + git_oid_t type); -#else +/** + * Parse the given number of characters out of a hex formatted object id + * string into a `git_oid`. + * + * The given length can be between 0 and the hex size for the given object ID + * type - 40 characters for SHA1, 64 characters for SHA256. The remainder of + * the `git_oid` will be set to zeros. + * + * @param out oid structure the result is written into. + * @param str input hex prefix + * @param type object id type + * @return 0 or an error code + */ +GIT_EXTERN(int) git_oid_from_prefix( + git_oid *out, + const char *str, + size_t len, + git_oid_t type); + +/** + * Parse a raw object id into a `git_oid`. + * + * The appropriate number of bytes for the given object ID type will + * be read from the byte array - 20 bytes for SHA1, 32 bytes for SHA256. + * + * @param out oid structure the result is written into. + * @param raw raw object ID bytes + * @param type object id type + * @return 0 or an error code + */ +GIT_EXTERN(int) git_oid_from_raw( + git_oid *out, + const unsigned char *raw, + git_oid_t type); + +#endif /** * Parse a hex formatted object id into a git_oid. @@ -168,8 +218,6 @@ GIT_EXTERN(int) git_oid_fromstrn(git_oid *out, const char *str, size_t length); */ GIT_EXTERN(int) git_oid_fromraw(git_oid *out, const unsigned char *raw); -#endif - /** * Format a git_oid into a hex string. * diff --git a/src/libgit2/commit_graph.c b/src/libgit2/commit_graph.c index 92785049e4e..f62b873cc01 100644 --- a/src/libgit2/commit_graph.c +++ b/src/libgit2/commit_graph.c @@ -502,7 +502,7 @@ static int git_commit_graph_entry_get_byindex( } commit_data = file->commit_data + pos * (oid_size + 4 * sizeof(uint32_t)); - git_oid__fromraw(&e->tree_oid, commit_data, file->oid_type); + git_oid_from_raw(&e->tree_oid, commit_data, file->oid_type); e->parent_indices[0] = ntohl(*((uint32_t *)(commit_data + oid_size))); e->parent_indices[1] = ntohl( *((uint32_t *)(commit_data + oid_size + sizeof(uint32_t)))); @@ -536,7 +536,7 @@ static int git_commit_graph_entry_get_byindex( } } - git_oid__fromraw(&e->sha1, &file->oid_lookup[pos * oid_size], file->oid_type); + git_oid_from_raw(&e->sha1, &file->oid_lookup[pos * oid_size], file->oid_type); return 0; } diff --git a/src/libgit2/fetch.c b/src/libgit2/fetch.c index 8e2660f2172..3769f951176 100644 --- a/src/libgit2/fetch.c +++ b/src/libgit2/fetch.c @@ -80,7 +80,7 @@ static int maybe_want_oid(git_remote *remote, git_refspec *spec) oid_head = git__calloc(1, sizeof(git_remote_head)); GIT_ERROR_CHECK_ALLOC(oid_head); - git_oid__fromstr(&oid_head->oid, spec->src, remote->repo->oid_type); + git_oid_from_string(&oid_head->oid, spec->src, remote->repo->oid_type); if (spec->dst) { oid_head->name = git__strdup(spec->dst); diff --git a/src/libgit2/fetchhead.c b/src/libgit2/fetchhead.c index 2f276e5265e..08be282a521 100644 --- a/src/libgit2/fetchhead.c +++ b/src/libgit2/fetchhead.c @@ -202,7 +202,7 @@ static int fetchhead_ref_parse( return -1; } - if (git_oid__fromstr(oid, oid_str, oid_type) < 0) { + if (git_oid_from_string(oid, oid_str, oid_type) < 0) { const git_error *oid_err = git_error_last(); const char *err_msg = oid_err ? oid_err->message : "invalid object ID"; diff --git a/src/libgit2/index.c b/src/libgit2/index.c index 7610781fc16..45ebaedac91 100644 --- a/src/libgit2/index.c +++ b/src/libgit2/index.c @@ -2364,7 +2364,7 @@ static int read_reuc(git_index *index, const char *buffer, size_t size) return index_error_invalid("reading reuc entry oid"); } - if (git_oid__fromraw(&lost->oid[i], (const unsigned char *) buffer, index->oid_type) < 0) + if (git_oid_from_raw(&lost->oid[i], (const unsigned char *) buffer, index->oid_type) < 0) return -1; size -= oid_size; @@ -2553,14 +2553,14 @@ static int read_entry( switch (index->oid_type) { case GIT_OID_SHA1: - if (git_oid__fromraw(&entry.id, source_sha1.oid, + if (git_oid_from_raw(&entry.id, source_sha1.oid, GIT_OID_SHA1) < 0) return -1; entry.flags = ntohs(source_sha1.flags); break; #ifdef GIT_EXPERIMENTAL_SHA256 case GIT_OID_SHA256: - if (git_oid__fromraw(&entry.id, source_sha256.oid, + if (git_oid_from_raw(&entry.id, source_sha256.oid, GIT_OID_SHA256) < 0) return -1; entry.flags = ntohs(source_sha256.flags); diff --git a/src/libgit2/indexer.c b/src/libgit2/indexer.c index e62daacfa51..f1c85cb88bf 100644 --- a/src/libgit2/indexer.c +++ b/src/libgit2/indexer.c @@ -1112,7 +1112,7 @@ static int fix_thin_pack(git_indexer *idx, git_indexer_progress *stats) return -1; } - git_oid__fromraw(&base, base_info, idx->oid_type); + git_oid_from_raw(&base, base_info, idx->oid_type); git_mwindow_close(&w); if (has_entry(idx, &base)) diff --git a/src/libgit2/merge.c b/src/libgit2/merge.c index 0c5bc0f82d0..eabb4bfa32c 100644 --- a/src/libgit2/merge.c +++ b/src/libgit2/merge.c @@ -616,7 +616,7 @@ int git_repository_mergehead_foreach( goto cleanup; } - if ((error = git_oid__fromstr(&oid, line, repo->oid_type)) < 0) + if ((error = git_oid_from_string(&oid, line, repo->oid_type)) < 0) goto cleanup; if ((error = cb(&oid, payload)) != 0) { diff --git a/src/libgit2/midx.c b/src/libgit2/midx.c index 1336ed85f88..a3f84984ca8 100644 --- a/src/libgit2/midx.c +++ b/src/libgit2/midx.c @@ -449,7 +449,7 @@ int git_midx_entry_find( return midx_error("invalid index into the packfile names table"); e->pack_index = pack_index; e->offset = offset; - git_oid__fromraw(&e->sha1, current, idx->oid_type); + git_oid_from_raw(&e->sha1, current, idx->oid_type); return 0; } @@ -467,7 +467,7 @@ int git_midx_foreach_entry( oid_size = git_oid_size(idx->oid_type); for (i = 0; i < idx->num_objects; ++i) { - if ((error = git_oid__fromraw(&oid, &idx->oid_lookup[i * oid_size], idx->oid_type)) < 0) + if ((error = git_oid_from_raw(&oid, &idx->oid_lookup[i * oid_size], idx->oid_type)) < 0) return error; if ((error = cb(&oid, data)) != 0) diff --git a/src/libgit2/notes.c b/src/libgit2/notes.c index 13ca3824bf1..393c1363a39 100644 --- a/src/libgit2/notes.c +++ b/src/libgit2/notes.c @@ -704,7 +704,7 @@ static int process_entry_path( goto cleanup; } - error = git_oid__fromstr(annotated_object_id, buf.ptr, it->repo->oid_type); + error = git_oid_from_string(annotated_object_id, buf.ptr, it->repo->oid_type); cleanup: git_str_dispose(&buf); diff --git a/src/libgit2/object.c b/src/libgit2/object.c index 36665c67630..1fff9de2917 100644 --- a/src/libgit2/object.c +++ b/src/libgit2/object.c @@ -662,7 +662,7 @@ int git_object__parse_oid_header( if (buffer[header_len + sha_len] != '\n') return -1; - if (git_oid__fromstr(oid, buffer + header_len, oid_type) < 0) + if (git_oid_from_prefix(oid, buffer + header_len, sha_len, oid_type) < 0) return -1; *buffer_out = buffer + (header_len + sha_len + 1); diff --git a/src/libgit2/odb_loose.c b/src/libgit2/odb_loose.c index 51195d35778..c772511a6ea 100644 --- a/src/libgit2/odb_loose.c +++ b/src/libgit2/odb_loose.c @@ -552,7 +552,10 @@ static int locate_object_short_oid( return git_odb__error_ambiguous("multiple matches in loose objects"); /* Convert obtained hex formatted oid to raw */ - error = git_oid__fromstr(res_oid, (char *)state.res_oid, backend->options.oid_type); + error = git_oid_from_prefix(res_oid, (char *)state.res_oid, + git_oid_hexsize(backend->options.oid_type), + backend->options.oid_type); + if (error) return error; diff --git a/src/libgit2/oid.c b/src/libgit2/oid.c index 2bb7a6f6bc4..a550c4f693a 100644 --- a/src/libgit2/oid.c +++ b/src/libgit2/oid.c @@ -28,11 +28,7 @@ static int oid_error_invalid(const char *msg) return -1; } -int git_oid__fromstrn( - git_oid *out, - const char *str, - size_t length, - git_oid_t type) +int git_oid_from_prefix(git_oid *out, const char *str, size_t len, git_oid_t type) { size_t size, p; int v; @@ -43,10 +39,10 @@ int git_oid__fromstrn( if (!(size = git_oid_size(type))) return oid_error_invalid("unknown type"); - if (!length) + if (!len) return oid_error_invalid("too short"); - if (length > git_oid_hexsize(type)) + if (len > git_oid_hexsize(type)) return oid_error_invalid("too long"); #ifdef GIT_EXPERIMENTAL_SHA256 @@ -54,7 +50,7 @@ int git_oid__fromstrn( #endif memset(out->id, 0, size); - for (p = 0; p < length; p++) { + for (p = 0; p < len; p++) { v = git__fromhex(str[p]); if (v < 0) return oid_error_invalid("contains invalid characters"); @@ -65,54 +61,53 @@ int git_oid__fromstrn( return 0; } -int git_oid__fromstrp(git_oid *out, const char *str, git_oid_t type) +int git_oid_from_string(git_oid *out, const char *str, git_oid_t type) { - return git_oid__fromstrn(out, str, strlen(str), type); -} + size_t hexsize; -int git_oid__fromstr(git_oid *out, const char *str, git_oid_t type) -{ - return git_oid__fromstrn(out, str, git_oid_hexsize(type), type); -} + if (!(hexsize = git_oid_hexsize(type))) + return oid_error_invalid("unknown type"); -#ifdef GIT_EXPERIMENTAL_SHA256 -int git_oid_fromstrn( - git_oid *out, - const char *str, - size_t length, - git_oid_t type) -{ - return git_oid__fromstrn(out, str, length, type); -} + if (git_oid_from_prefix(out, str, hexsize, type) < 0) + return -1; -int git_oid_fromstrp(git_oid *out, const char *str, git_oid_t type) -{ - return git_oid_fromstrn(out, str, strlen(str), type); + if (str[hexsize] != '\0') + return oid_error_invalid("too long"); + + return 0; } -int git_oid_fromstr(git_oid *out, const char *str, git_oid_t type) +int git_oid_from_raw(git_oid *out, const unsigned char *raw, git_oid_t type) { - return git_oid_fromstrn(out, str, git_oid_hexsize(type), type); + size_t size; + + if (!(size = git_oid_size(type))) + return oid_error_invalid("unknown type"); + +#ifdef GIT_EXPERIMENTAL_SHA256 + out->type = type; +#endif + memcpy(out->id, raw, size); + return 0; } -#else + int git_oid_fromstrn( git_oid *out, const char *str, size_t length) { - return git_oid__fromstrn(out, str, length, GIT_OID_SHA1); + return git_oid_from_prefix(out, str, length, GIT_OID_SHA1); } int git_oid_fromstrp(git_oid *out, const char *str) { - return git_oid__fromstrn(out, str, strlen(str), GIT_OID_SHA1); + return git_oid_from_prefix(out, str, strlen(str), GIT_OID_SHA1); } int git_oid_fromstr(git_oid *out, const char *str) { - return git_oid__fromstrn(out, str, GIT_OID_SHA1_HEXSIZE, GIT_OID_SHA1); + return git_oid_from_prefix(out, str, GIT_OID_SHA1_HEXSIZE, GIT_OID_SHA1); } -#endif int git_oid_nfmt(char *str, size_t n, const git_oid *oid) { @@ -227,31 +222,10 @@ char *git_oid_tostr(char *out, size_t n, const git_oid *oid) return out; } -int git_oid__fromraw(git_oid *out, const unsigned char *raw, git_oid_t type) -{ - size_t size; - - if (!(size = git_oid_size(type))) - return oid_error_invalid("unknown type"); - -#ifdef GIT_EXPERIMENTAL_SHA256 - out->type = type; -#endif - memcpy(out->id, raw, size); - return 0; -} - -#ifdef GIT_EXPERIMENTAL_SHA256 -int git_oid_fromraw(git_oid *out, const unsigned char *raw, git_oid_t type) -{ - return git_oid__fromraw(out, raw, type); -} -#else int git_oid_fromraw(git_oid *out, const unsigned char *raw) { - return git_oid__fromraw(out, raw, GIT_OID_SHA1); + return git_oid_from_raw(out, raw, GIT_OID_SHA1); } -#endif int git_oid_cpy(git_oid *out, const git_oid *src) { diff --git a/src/libgit2/oid.h b/src/libgit2/oid.h index 9415915fcb2..cfcabce7111 100644 --- a/src/libgit2/oid.h +++ b/src/libgit2/oid.h @@ -267,17 +267,11 @@ GIT_INLINE(void) git_oid_clear(git_oid *out, git_oid_t type) /* SHA256 support */ -int git_oid__fromstr(git_oid *out, const char *str, git_oid_t type); - -int git_oid__fromstrp(git_oid *out, const char *str, git_oid_t type); - -int git_oid__fromstrn( - git_oid *out, - const char *str, - size_t length, - git_oid_t type); - -int git_oid__fromraw(git_oid *out, const unsigned char *raw, git_oid_t type); +#ifndef GIT_EXPERIMENTAL_SHA256 +int git_oid_from_string(git_oid *out, const char *str, git_oid_t type); +int git_oid_from_prefix(git_oid *out, const char *str, size_t len, git_oid_t type); +int git_oid_from_raw(git_oid *out, const unsigned char *data, git_oid_t type); +#endif int git_oid_global_init(void); diff --git a/src/libgit2/pack.c b/src/libgit2/pack.c index 8bdaac3a8d3..cf63b204e31 100644 --- a/src/libgit2/pack.c +++ b/src/libgit2/pack.c @@ -1002,7 +1002,7 @@ int get_delta_base( *curpos += used; } else if (type == GIT_OBJECT_REF_DELTA) { git_oid base_oid; - git_oid__fromraw(&base_oid, base_info, p->oid_type); + git_oid_from_raw(&base_oid, base_info, p->oid_type); /* If we have the cooperative cache, search in it first */ if (p->has_cache) { @@ -1372,7 +1372,7 @@ int git_pack_foreach_entry( git_array_clear(oids); GIT_ERROR_CHECK_ALLOC(oid); } - git_oid__fromraw(oid, p->ids[i], p->oid_type); + git_oid_from_raw(oid, p->ids[i], p->oid_type); } git_mutex_unlock(&p->lock); @@ -1441,7 +1441,7 @@ int git_pack_foreach_entry_offset( ntohl(*((uint32_t *)(large_offset_ptr + 4))); } - git_oid__fromraw(¤t_oid, (index + p->oid_size * i), p->oid_type); + git_oid_from_raw(¤t_oid, (index + p->oid_size * i), p->oid_type); if ((error = cb(¤t_oid, current_offset, data)) != 0) { error = git_error_set_after_callback(error); goto cleanup; @@ -1450,7 +1450,7 @@ int git_pack_foreach_entry_offset( } else { for (i = 0; i < p->num_objects; i++) { current_offset = ntohl(*(const uint32_t *)(index + (p->oid_size + 4) * i)); - git_oid__fromraw(¤t_oid, (index + (p->oid_size + 4) * i + 4), p->oid_type); + git_oid_from_raw(¤t_oid, (index + (p->oid_size + 4) * i + 4), p->oid_type); if ((error = cb(¤t_oid, current_offset, data)) != 0) { error = git_error_set_after_callback(error); goto cleanup; @@ -1595,7 +1595,7 @@ static int pack_entry_find_offset( } *offset_out = offset; - git_oid__fromraw(found_oid, current, p->oid_type); + git_oid_from_raw(found_oid, current, p->oid_type); #ifdef INDEX_DEBUG_LOOKUP { diff --git a/src/libgit2/parse.c b/src/libgit2/parse.c index 9eb86a3f584..ea693462144 100644 --- a/src/libgit2/parse.c +++ b/src/libgit2/parse.c @@ -109,7 +109,7 @@ int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx, git_oid_t oid_type) if (ctx->line_len < oid_hexsize) return -1; - if ((git_oid__fromstrn(out, ctx->line, oid_hexsize, oid_type)) < 0) + if ((git_oid_from_prefix(out, ctx->line, oid_hexsize, oid_type)) < 0) return -1; git_parse_advance_chars(ctx, oid_hexsize); return 0; diff --git a/src/libgit2/patch_parse.c b/src/libgit2/patch_parse.c index 04f2a582ab1..0a157178074 100644 --- a/src/libgit2/patch_parse.c +++ b/src/libgit2/patch_parse.c @@ -178,7 +178,7 @@ static int parse_header_oid( } if (len < GIT_OID_MINPREFIXLEN || len > hexsize || - git_oid__fromstrn(oid, ctx->parse_ctx.line, len, ctx->opts.oid_type) < 0) + git_oid_from_prefix(oid, ctx->parse_ctx.line, len, ctx->opts.oid_type) < 0) return git_parse_err("invalid hex formatted object id at line %"PRIuZ, ctx->parse_ctx.line_num); diff --git a/src/libgit2/rebase.c b/src/libgit2/rebase.c index 77e442e981d..eb8a728357c 100644 --- a/src/libgit2/rebase.c +++ b/src/libgit2/rebase.c @@ -197,7 +197,7 @@ GIT_INLINE(int) rebase_readoid( return error; if (str_out->size != git_oid_hexsize(rebase->repo->oid_type) || - git_oid__fromstr(out, str_out->ptr, rebase->repo->oid_type) < 0) { + git_oid_from_string(out, str_out->ptr, rebase->repo->oid_type) < 0) { git_error_set(GIT_ERROR_REBASE, "the file '%s' contains an invalid object ID", filename); return -1; } @@ -1333,8 +1333,8 @@ static int rebase_copy_notes( if (strlen(fromstr) != git_oid_hexsize(rebase->repo->oid_type) || strlen(tostr) != git_oid_hexsize(rebase->repo->oid_type) || - git_oid__fromstr(&from, fromstr, rebase->repo->oid_type) < 0 || - git_oid__fromstr(&to, tostr, rebase->repo->oid_type) < 0) + git_oid_from_string(&from, fromstr, rebase->repo->oid_type) < 0 || + git_oid_from_string(&to, tostr, rebase->repo->oid_type) < 0) goto on_error; if ((error = rebase_copy_note(rebase, notes_ref.ptr, &from, &to, committer)) < 0) diff --git a/src/libgit2/refdb_fs.c b/src/libgit2/refdb_fs.c index aa42782998b..1138ebe74d3 100644 --- a/src/libgit2/refdb_fs.c +++ b/src/libgit2/refdb_fs.c @@ -160,7 +160,7 @@ static int packed_reload(refdb_fs_backend *backend) /* parse " \n" */ - if (git_oid__fromstr(&oid, scan, backend->oid_type) < 0) + if (git_oid_from_prefix(&oid, scan, oid_hexsize, backend->oid_type) < 0) goto parse_failed; scan += oid_hexsize; @@ -181,7 +181,7 @@ static int packed_reload(refdb_fs_backend *backend) /* look for optional "^\n" */ if (*scan == '^') { - if (git_oid__fromstr(&oid, scan + 1, backend->oid_type) < 0) + if (git_oid_from_prefix(&oid, scan + 1, oid_hexsize, backend->oid_type) < 0) goto parse_failed; scan += oid_hexsize + 1; @@ -228,7 +228,7 @@ static int loose_parse_oid( goto corrupted; /* we need to get 40 OID characters from the file */ - if (git_oid__fromstr(oid, str, oid_type) < 0) + if (git_oid_from_prefix(oid, str, oid_hexsize, oid_type) < 0) goto corrupted; /* If the file is longer than 40 chars, the 41st must be a space */ @@ -723,7 +723,7 @@ static int packed_lookup( git_oid oid, peel, *peel_ptr = NULL; if (data_end - rec < (long)oid_hexsize || - git_oid__fromstr(&oid, rec, backend->oid_type) < 0) { + git_oid_from_prefix(&oid, rec, oid_hexsize, backend->oid_type) < 0) { goto parse_failed; } rec += oid_hexsize + 1; @@ -739,7 +739,7 @@ static int packed_lookup( if (*rec == '^') { rec++; if (data_end - rec < (long)oid_hexsize || - git_oid__fromstr(&peel, rec, backend->oid_type) < 0) { + git_oid_from_prefix(&peel, rec, oid_hexsize, backend->oid_type) < 0) { goto parse_failed; } peel_ptr = &peel; diff --git a/src/libgit2/remote.c b/src/libgit2/remote.c index 92c5043b811..0b674c5ef2c 100644 --- a/src/libgit2/remote.c +++ b/src/libgit2/remote.c @@ -1959,7 +1959,7 @@ static int update_tips_for_spec( if (git_oid__is_hexstr(spec->src, remote->repo->oid_type)) { git_oid id; - if ((error = git_oid__fromstr(&id, spec->src, remote->repo->oid_type)) < 0) + if ((error = git_oid_from_string(&id, spec->src, remote->repo->oid_type)) < 0) goto on_error; if (spec->dst && diff --git a/src/libgit2/revparse.c b/src/libgit2/revparse.c index 9083e7a3cdc..2238ba5269c 100644 --- a/src/libgit2/revparse.c +++ b/src/libgit2/revparse.c @@ -23,7 +23,7 @@ static int maybe_sha_or_abbrev( { git_oid oid; - if (git_oid__fromstrn(&oid, spec, speclen, repo->oid_type) < 0) + if (git_oid_from_prefix(&oid, spec, speclen, repo->oid_type) < 0) return GIT_ENOTFOUND; return git_object_lookup_prefix(out, repo, &oid, speclen, GIT_OBJECT_ANY); diff --git a/src/libgit2/transports/smart_pkt.c b/src/libgit2/transports/smart_pkt.c index 7ea8676e966..29ccb83ac72 100644 --- a/src/libgit2/transports/smart_pkt.c +++ b/src/libgit2/transports/smart_pkt.c @@ -64,7 +64,7 @@ static int ack_pkt( len -= 4; if (len < oid_hexsize || - git_oid__fromstr(&pkt->oid, line, data->oid_type) < 0) + git_oid_from_prefix(&pkt->oid, line, oid_hexsize, data->oid_type) < 0) goto out_err; line += oid_hexsize; len -= oid_hexsize; @@ -295,7 +295,7 @@ static int ref_pkt( oid_hexsize = git_oid_hexsize(data->oid_type); if (len < oid_hexsize || - git_oid__fromstr(&pkt->head.oid, line, data->oid_type) < 0) + git_oid_from_prefix(&pkt->head.oid, line, oid_hexsize, data->oid_type) < 0) goto out_err; line += oid_hexsize; len -= oid_hexsize; @@ -468,7 +468,7 @@ static int shallow_pkt( if (len != oid_hexsize) goto out_err; - git_oid__fromstr(&pkt->oid, line, data->oid_type); + git_oid_from_prefix(&pkt->oid, line, oid_hexsize, data->oid_type); line += oid_hexsize + 1; len -= oid_hexsize + 1; @@ -507,7 +507,7 @@ static int unshallow_pkt( if (len != oid_hexsize) goto out_err; - git_oid__fromstr(&pkt->oid, line, data->oid_type); + git_oid_from_prefix(&pkt->oid, line, oid_hexsize, data->oid_type); line += oid_hexsize + 1; len -= oid_hexsize + 1; diff --git a/src/libgit2/tree-cache.c b/src/libgit2/tree-cache.c index 95d879860f1..f3c895f4cf8 100644 --- a/src/libgit2/tree-cache.c +++ b/src/libgit2/tree-cache.c @@ -118,7 +118,7 @@ static int read_tree_internal( if (buffer + oid_size > buffer_end) goto corrupted; - git_oid__fromraw(&tree->oid, (const unsigned char *)buffer, oid_type); + git_oid_from_raw(&tree->oid, (const unsigned char *)buffer, oid_type); buffer += oid_size; } diff --git a/src/libgit2/tree.c b/src/libgit2/tree.c index ad9d8af28f5..2c89d516e74 100644 --- a/src/libgit2/tree.c +++ b/src/libgit2/tree.c @@ -435,7 +435,7 @@ int git_tree__parse_raw(void *_tree, const char *data, size_t size, git_oid_t oi entry->filename = buffer; buffer += filename_len + 1; - git_oid__fromraw(&entry->oid, (unsigned char *)buffer, oid_type); + git_oid_from_raw(&entry->oid, (unsigned char *)buffer, oid_type); buffer += oid_size; } diff --git a/tests/clar/clar_libgit2.h b/tests/clar/clar_libgit2.h index d8105c841b4..c6cad6835f7 100644 --- a/tests/clar/clar_libgit2.h +++ b/tests/clar/clar_libgit2.h @@ -171,8 +171,9 @@ GIT_INLINE(void) clar__assert_equal_oidstr( const char *one_str, const git_oid *two) { git_oid one; + git_oid_t oid_type = git_oid_type(two); - if (git_oid__fromstr(&one, one_str, git_oid_type(two)) < 0) { + if (git_oid_from_prefix(&one, one_str, git_oid_hexsize(oid_type), oid_type) < 0) { clar__fail(file, func, line, desc, "could not parse oid string", 1); } else { clar__assert_equal_oid(file, func, line, desc, &one, two); diff --git a/tests/libgit2/apply/apply_helpers.c b/tests/libgit2/apply/apply_helpers.c index e78b8ffcb09..384038722f8 100644 --- a/tests/libgit2/apply/apply_helpers.c +++ b/tests/libgit2/apply/apply_helpers.c @@ -14,7 +14,7 @@ static int iterator_compare(const git_index_entry *entry, void *_data) struct iterator_compare_data *data = (struct iterator_compare_data *)_data; cl_assert_equal_i(GIT_INDEX_ENTRY_STAGE(entry), data->expected[data->idx].stage); - cl_git_pass(git_oid__fromstr(&expected_id, data->expected[data->idx].oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, data->expected[data->idx].oid_str, GIT_OID_SHA1)); cl_assert_equal_oid(&entry->id, &expected_id); cl_assert_equal_i(entry->mode, data->expected[data->idx].mode); cl_assert_equal_s(entry->path, data->expected[data->idx].path); diff --git a/tests/libgit2/apply/both.c b/tests/libgit2/apply/both.c index 44c5b19371f..d3d040c985c 100644 --- a/tests/libgit2/apply/both.c +++ b/tests/libgit2/apply/both.c @@ -12,7 +12,7 @@ void test_apply_both__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); @@ -42,8 +42,8 @@ void test_apply_both__generated_diff(void) size_t both_expected_cnt = sizeof(both_expected) / sizeof(struct merge_index_entry); - git_oid__fromstr(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); - git_oid__fromstr(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); + git_oid_from_string(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); cl_git_pass(git_commit_lookup(&b_commit, repo, &b_oid)); @@ -192,7 +192,7 @@ void test_apply_both__index_must_match_workdir(void) memset(&idx_entry, 0, sizeof(git_index_entry)); idx_entry.mode = 0100644; idx_entry.path = "asparagus.txt"; - cl_git_pass(git_oid__fromstr(&idx_entry.id, "06d3fefb8726ab1099acc76e02dfb85e034b2538", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&idx_entry.id, "06d3fefb8726ab1099acc76e02dfb85e034b2538", GIT_OID_SHA1)); cl_git_pass(git_index_add(index, &idx_entry)); cl_git_pass(git_index_write(index)); @@ -290,7 +290,7 @@ void test_apply_both__keeps_nonconflicting_changes(void) memset(&idx_entry, 0, sizeof(git_index_entry)); idx_entry.mode = 0100644; idx_entry.path = "beef.txt"; - cl_git_pass(git_oid__fromstr(&idx_entry.id, "898d12687fb35be271c27c795a6b32c8b51da79e", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&idx_entry.id, "898d12687fb35be271c27c795a6b32c8b51da79e", GIT_OID_SHA1)); cl_git_pass(git_index_add(index, &idx_entry)); cl_git_pass(git_index_remove(index, "bouilli.txt", 0)); @@ -386,7 +386,7 @@ void test_apply_both__honors_crlf_attributes(void) cl_git_rmfile("merge-recursive/asparagus.txt"); cl_git_rmfile("merge-recursive/veal.txt"); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); diff --git a/tests/libgit2/apply/callbacks.c b/tests/libgit2/apply/callbacks.c index f076ca48622..cda06e6c6b3 100644 --- a/tests/libgit2/apply/callbacks.c +++ b/tests/libgit2/apply/callbacks.c @@ -12,7 +12,7 @@ void test_apply_callbacks__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); diff --git a/tests/libgit2/apply/check.c b/tests/libgit2/apply/check.c index 0c1f86dc531..8f37e00b1f9 100644 --- a/tests/libgit2/apply/check.c +++ b/tests/libgit2/apply/check.c @@ -12,7 +12,7 @@ void test_apply_check__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); @@ -32,8 +32,8 @@ void test_apply_check__generate_diff(void) git_diff_options diff_opts = GIT_DIFF_OPTIONS_INIT; git_apply_options opts = GIT_APPLY_OPTIONS_INIT; - cl_git_pass(git_oid__fromstr(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); cl_git_pass(git_commit_lookup(&b_commit, repo, &b_oid)); diff --git a/tests/libgit2/apply/index.c b/tests/libgit2/apply/index.c index 564d55c8c1c..e0fb7f2a455 100644 --- a/tests/libgit2/apply/index.c +++ b/tests/libgit2/apply/index.c @@ -12,7 +12,7 @@ void test_apply_index__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); @@ -42,8 +42,8 @@ void test_apply_index__generate_diff(void) size_t index_expected_cnt = sizeof(index_expected) / sizeof(struct merge_index_entry); - git_oid__fromstr(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); - git_oid__fromstr(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); + git_oid_from_string(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); cl_git_pass(git_commit_lookup(&b_commit, repo, &b_oid)); @@ -233,7 +233,7 @@ void test_apply_index__keeps_nonconflicting_changes(void) memset(&idx_entry, 0, sizeof(git_index_entry)); idx_entry.mode = 0100644; idx_entry.path = "beef.txt"; - cl_git_pass(git_oid__fromstr(&idx_entry.id, "898d12687fb35be271c27c795a6b32c8b51da79e", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&idx_entry.id, "898d12687fb35be271c27c795a6b32c8b51da79e", GIT_OID_SHA1)); cl_git_pass(git_index_add(index, &idx_entry)); cl_git_pass(git_index_remove(index, "bouilli.txt", 0)); @@ -279,7 +279,7 @@ void test_apply_index__can_apply_nonconflicting_file_changes(void) memset(&idx_entry, 0, sizeof(git_index_entry)); idx_entry.mode = 0100644; idx_entry.path = "asparagus.txt"; - cl_git_pass(git_oid__fromstr(&idx_entry.id, "06d3fefb8726ab1099acc76e02dfb85e034b2538", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&idx_entry.id, "06d3fefb8726ab1099acc76e02dfb85e034b2538", GIT_OID_SHA1)); cl_git_pass(git_index_add(index, &idx_entry)); cl_git_pass(git_index_write(index)); diff --git a/tests/libgit2/apply/tree.c b/tests/libgit2/apply/tree.c index b97fe8d352b..0e5b65fd7c1 100644 --- a/tests/libgit2/apply/tree.c +++ b/tests/libgit2/apply/tree.c @@ -35,8 +35,8 @@ void test_apply_tree__one(void) { 0100644, "a7b066537e6be7109abfe4ff97b675d4e077da20", 0, "veal.txt" }, }; - git_oid__fromstr(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); - git_oid__fromstr(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); + git_oid_from_string(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); cl_git_pass(git_commit_lookup(&b_commit, repo, &b_oid)); @@ -75,7 +75,7 @@ void test_apply_tree__adds_file(void) { 0100644, "94d2c01087f48213bd157222d54edfefd77c9bba", 0, "veal.txt" }, }; - git_oid__fromstr(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); diff --git a/tests/libgit2/apply/workdir.c b/tests/libgit2/apply/workdir.c index 5ae56847a80..6b95ec04bce 100644 --- a/tests/libgit2/apply/workdir.c +++ b/tests/libgit2/apply/workdir.c @@ -12,7 +12,7 @@ void test_apply_workdir__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); @@ -42,8 +42,8 @@ void test_apply_workdir__generated_diff(void) size_t workdir_expected_cnt = sizeof(workdir_expected) / sizeof(struct merge_index_entry); - git_oid__fromstr(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); - git_oid__fromstr(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); + git_oid_from_string(&a_oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&b_oid, "7c7bf85e978f1d18c0566f702d2cb7766b9c8d4f", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&a_commit, repo, &a_oid)); cl_git_pass(git_commit_lookup(&b_commit, repo, &b_oid)); cl_git_pass(git_commit_tree(&a_tree, a_commit)); @@ -171,7 +171,7 @@ void test_apply_workdir__modified_index_with_unmodified_workdir_is_ok(void) idx_entry.mode = 0100644; idx_entry.path = "veal.txt"; - cl_git_pass(git_oid__fromstr(&idx_entry.id, "ffb36e513f5fdf8a6ba850a20142676a2ac4807d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&idx_entry.id, "ffb36e513f5fdf8a6ba850a20142676a2ac4807d", GIT_OID_SHA1)); cl_git_pass(git_index_add(index, &idx_entry)); cl_git_pass(git_index_remove(index, "asparagus.txt", 0)); diff --git a/tests/libgit2/checkout/binaryunicode.c b/tests/libgit2/checkout/binaryunicode.c index e4cab66a350..5cefa77e2ee 100644 --- a/tests/libgit2/checkout/binaryunicode.c +++ b/tests/libgit2/checkout/binaryunicode.c @@ -34,12 +34,12 @@ static void execute_test(void) git_commit_free(commit); /* Verify that the lenna.jpg file was checked out correctly */ - cl_git_pass(git_oid__fromstr(&check, "8ab005d890fe53f65eda14b23672f60d9f4ec5a1", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&check, "8ab005d890fe53f65eda14b23672f60d9f4ec5a1", GIT_OID_SHA1)); cl_git_pass(git_odb__hashfile(&oid, "binaryunicode/lenna.jpg", GIT_OBJECT_BLOB, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &check); /* Verify that the text file was checked out correctly */ - cl_git_pass(git_oid__fromstr(&check, "965b223880dd4249e2c66a0cc0b4cffe1dc40f5a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&check, "965b223880dd4249e2c66a0cc0b4cffe1dc40f5a", GIT_OID_SHA1)); cl_git_pass(git_odb__hashfile(&oid, "binaryunicode/utf16_withbom_noeol_crlf.txt", GIT_OBJECT_BLOB, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &check); } diff --git a/tests/libgit2/checkout/conflict.c b/tests/libgit2/checkout/conflict.c index ab4d0aba4d4..29134a077aa 100644 --- a/tests/libgit2/checkout/conflict.c +++ b/tests/libgit2/checkout/conflict.c @@ -104,7 +104,7 @@ static void create_index(struct checkout_index_entry *entries, size_t entries_le entry.mode = entries[i].mode; GIT_INDEX_ENTRY_STAGE_SET(&entry, entries[i].stage); - git_oid__fromstr(&entry.id, entries[i].oid_str, GIT_OID_SHA1); + git_oid_from_string(&entry.id, entries[i].oid_str, GIT_OID_SHA1); entry.path = entries[i].path; cl_git_pass(git_index_add(g_index, &entry)); @@ -155,7 +155,7 @@ static void ensure_workdir_oid(const char *path, const char *oid_str) { git_oid expected, actual; - cl_git_pass(git_oid__fromstr(&expected, oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, oid_str, GIT_OID_SHA1)); cl_git_pass(git_repository_hashfile(&actual, g_repo, path, GIT_OBJECT_BLOB, NULL)); cl_assert_equal_oid(&expected, &actual); } diff --git a/tests/libgit2/checkout/index.c b/tests/libgit2/checkout/index.c index aa85e24a616..8ca72e426e6 100644 --- a/tests/libgit2/checkout/index.c +++ b/tests/libgit2/checkout/index.c @@ -788,15 +788,15 @@ static void add_conflict(git_index *index, const char *path) entry.mode = 0100644; entry.path = path; - git_oid__fromstr(&entry.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); GIT_INDEX_ENTRY_STAGE_SET(&entry, 1); cl_git_pass(git_index_add(index, &entry)); - git_oid__fromstr(&entry.id, "4e886e602529caa9ab11d71f86634bd1b6e0de10", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "4e886e602529caa9ab11d71f86634bd1b6e0de10", GIT_OID_SHA1); GIT_INDEX_ENTRY_STAGE_SET(&entry, 2); cl_git_pass(git_index_add(index, &entry)); - git_oid__fromstr(&entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); GIT_INDEX_ENTRY_STAGE_SET(&entry, 3); cl_git_pass(git_index_add(index, &entry)); } diff --git a/tests/libgit2/checkout/tree.c b/tests/libgit2/checkout/tree.c index b9f51f7b977..ae4c31dce83 100644 --- a/tests/libgit2/checkout/tree.c +++ b/tests/libgit2/checkout/tree.c @@ -139,8 +139,8 @@ void test_checkout_tree__doesnt_write_unrequested_files_to_worktree(void) git_commit* p_chomped_commit; git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT; - git_oid__fromstr(&master_oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); - git_oid__fromstr(&chomped_oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); + git_oid_from_string(&master_oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&chomped_oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&p_master_commit, g_repo, &master_oid)); cl_git_pass(git_commit_lookup(&p_chomped_commit, g_repo, &chomped_oid)); @@ -609,7 +609,7 @@ void test_checkout_tree__donot_update_deleted_file_by_default(void) cl_git_pass(git_repository_index(&index, g_repo)); - cl_git_pass(git_oid__fromstr(&old_id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&old_id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&old_commit, g_repo, &old_id)); cl_git_pass(git_reset(g_repo, (git_object *)old_commit, GIT_RESET_HARD, NULL)); @@ -619,7 +619,7 @@ void test_checkout_tree__donot_update_deleted_file_by_default(void) cl_assert(!git_fs_path_exists("testrepo/branch_file.txt")); - cl_git_pass(git_oid__fromstr(&new_id, "099fabac3a9ea935598528c27f866e34089c2eff", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&new_id, "099fabac3a9ea935598528c27f866e34089c2eff", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&new_commit, g_repo, &new_id)); @@ -934,16 +934,16 @@ static void create_conflict(const char *path) memset(&entry, 0x0, sizeof(git_index_entry)); entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&entry, 1); - git_oid__fromstr(&entry.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); entry.path = path; cl_git_pass(git_index_add(index, &entry)); GIT_INDEX_ENTRY_STAGE_SET(&entry, 2); - git_oid__fromstr(&entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); GIT_INDEX_ENTRY_STAGE_SET(&entry, 3); - git_oid__fromstr(&entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); cl_git_pass(git_index_write(index)); @@ -979,7 +979,7 @@ void test_checkout_tree__filemode_preserved_in_index(void) cl_git_pass(git_repository_index(&index, g_repo)); /* test a freshly added executable */ - cl_git_pass(git_oid__fromstr(&executable_oid, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -990,7 +990,7 @@ void test_checkout_tree__filemode_preserved_in_index(void) /* Now start with a commit which has a text file */ - cl_git_pass(git_oid__fromstr(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1001,7 +1001,7 @@ void test_checkout_tree__filemode_preserved_in_index(void) /* And then check out to a commit which converts the text file to an executable */ - cl_git_pass(git_oid__fromstr(&executable_oid, "144344043ba4d4a405da03de3844aa829ae8be0e", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "144344043ba4d4a405da03de3844aa829ae8be0e", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1012,7 +1012,7 @@ void test_checkout_tree__filemode_preserved_in_index(void) /* Finally, check out the text file again and check that the exec bit is cleared */ - cl_git_pass(git_oid__fromstr(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1054,7 +1054,7 @@ void test_checkout_tree__filemode_preserved_in_workdir(void) opts.checkout_strategy = GIT_CHECKOUT_FORCE; /* test a freshly added executable */ - cl_git_pass(git_oid__fromstr(&executable_oid, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1064,7 +1064,7 @@ void test_checkout_tree__filemode_preserved_in_workdir(void) /* Now start with a commit which has a text file */ - cl_git_pass(git_oid__fromstr(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1074,7 +1074,7 @@ void test_checkout_tree__filemode_preserved_in_workdir(void) /* And then check out to a commit which converts the text file to an executable */ - cl_git_pass(git_oid__fromstr(&executable_oid, "144344043ba4d4a405da03de3844aa829ae8be0e", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "144344043ba4d4a405da03de3844aa829ae8be0e", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1084,7 +1084,7 @@ void test_checkout_tree__filemode_preserved_in_workdir(void) /* Finally, check out the text file again and check that the exec bit is cleared */ - cl_git_pass(git_oid__fromstr(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&executable_oid, "cf80f8de9f1185bf3a05f993f6121880dd0cfbc9", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &executable_oid)); cl_git_pass(git_checkout_tree(g_repo, (const git_object *)commit, &opts)); @@ -1103,7 +1103,7 @@ void test_checkout_tree__removes_conflicts(void) git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT; git_index *index; - cl_git_pass(git_oid__fromstr(&commit_id, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&commit_id, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &commit_id)); opts.checkout_strategy = GIT_CHECKOUT_FORCE; @@ -1146,7 +1146,7 @@ void test_checkout_tree__removes_conflicts_only_by_pathscope(void) git_index *index; const char *path = "executable.txt"; - cl_git_pass(git_oid__fromstr(&commit_id, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&commit_id, "afe4393b2b2a965f06acf2ca9658eaa01e0cd6b6", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &commit_id)); opts.checkout_strategy = GIT_CHECKOUT_FORCE; @@ -1574,7 +1574,7 @@ static void modify_index_ondisk(void) cl_git_pass(git_repository_open(&other_repo, git_repository_workdir(g_repo))); cl_git_pass(git_repository_index(&other_index, other_repo)); - cl_git_pass(git_oid__fromstr(&entry.id, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); entry.mode = 0100644; entry.path = "README"; diff --git a/tests/libgit2/checkout/typechange.c b/tests/libgit2/checkout/typechange.c index 1fa2d3095b4..dfdb77e9222 100644 --- a/tests/libgit2/checkout/typechange.c +++ b/tests/libgit2/checkout/typechange.c @@ -319,7 +319,7 @@ void test_checkout_typechange__status_char(void) git_diff_options diffopts = GIT_DIFF_OPTIONS_INIT; char expected[8] = {'M', 'M', 'R', 'T', 'D', 'R', 'A', 'R'}; - git_oid__fromstr(&oid, "9b19edf33a03a0c59cdfc113bfa5c06179bf9b1a", GIT_OID_SHA1); + git_oid_from_string(&oid, "9b19edf33a03a0c59cdfc113bfa5c06179bf9b1a", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, g_repo, &oid)); diffopts.flags |= GIT_DIFF_INCLUDE_TYPECHANGE; cl_git_pass(git_diff__commit(&diff, g_repo, commit, &diffopts)); diff --git a/tests/libgit2/cherrypick/bare.c b/tests/libgit2/cherrypick/bare.c index 66446889940..6c24a446561 100644 --- a/tests/libgit2/cherrypick/bare.c +++ b/tests/libgit2/cherrypick/bare.c @@ -32,10 +32,10 @@ void test_cherrypick_bare__automerge(void) { 0100644, "df6b290e0bd6a89b01d69f66687e8abf385283ca", 0, "file3.txt" }, }; - git_oid__fromstr(&head_oid, "d3d77487660ee3c0194ee01dc5eaf478782b1c7e", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "d3d77487660ee3c0194ee01dc5eaf478782b1c7e", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); - git_oid__fromstr(&cherry_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick_commit(&index, repo, commit, head, 0, NULL)); @@ -62,10 +62,10 @@ void test_cherrypick_bare__conflicts(void) { 0100644, "e233b9ed408a95e9d4b65fec7fc34943a556deb2", 3, "file3.txt" }, }; - git_oid__fromstr(&head_oid, "bafbf6912c09505ac60575cd43d3f2aba3bd84d8", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "bafbf6912c09505ac60575cd43d3f2aba3bd84d8", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); - git_oid__fromstr(&cherry_oid, "e9b63f3655b2ad80c0ff587389b5a9589a3a7110", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "e9b63f3655b2ad80c0ff587389b5a9589a3a7110", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick_commit(&index, repo, commit, head, 0, NULL)); @@ -89,10 +89,10 @@ void test_cherrypick_bare__orphan(void) { 0100644, "9ccb9bf50c011fd58dcbaa65df917bf79539717f", 0, "orphan.txt" }, }; - git_oid__fromstr(&head_oid, "d3d77487660ee3c0194ee01dc5eaf478782b1c7e", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "d3d77487660ee3c0194ee01dc5eaf478782b1c7e", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); - git_oid__fromstr(&cherry_oid, "74f06b5bfec6d33d7264f73606b57a7c0b963819", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "74f06b5bfec6d33d7264f73606b57a7c0b963819", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick_commit(&index, repo, commit, head, 0, NULL)); diff --git a/tests/libgit2/cherrypick/workdir.c b/tests/libgit2/cherrypick/workdir.c index 21e0b1447ee..45b8349e1ed 100644 --- a/tests/libgit2/cherrypick/workdir.c +++ b/tests/libgit2/cherrypick/workdir.c @@ -57,7 +57,7 @@ void test_cherrypick_workdir__automerge(void) cl_git_pass(git_signature_new(&signature, "Picker", "picker@example.org", time(NULL), 0)); - git_oid__fromstr(&head_oid, "d3d77487660ee3c0194ee01dc5eaf478782b1c7e", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "d3d77487660ee3c0194ee01dc5eaf478782b1c7e", GIT_OID_SHA1); for (i = 0; i < 3; ++i) { git_commit *head = NULL, *commit = NULL; @@ -67,7 +67,7 @@ void test_cherrypick_workdir__automerge(void) cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, cherrypick_oids[i], GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, cherrypick_oids[i], GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, NULL)); @@ -110,7 +110,7 @@ void test_cherrypick_workdir__empty_result(void) cl_git_pass(git_signature_new(&signature, "Picker", "picker@example.org", time(NULL), 0)); - git_oid__fromstr(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); /* Create an untracked file that should not conflict */ cl_git_mkfile(TEST_REPO_PATH "/file4.txt", ""); @@ -119,7 +119,7 @@ void test_cherrypick_workdir__empty_result(void) cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, cherrypick_oid, GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, cherrypick_oid, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, NULL)); @@ -151,12 +151,12 @@ void test_cherrypick_workdir__conflicts(void) { 0100644, "e233b9ed408a95e9d4b65fec7fc34943a556deb2", 3, "file3.txt" }, }; - git_oid__fromstr(&head_oid, "bafbf6912c09505ac60575cd43d3f2aba3bd84d8", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "bafbf6912c09505ac60575cd43d3f2aba3bd84d8", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "e9b63f3655b2ad80c0ff587389b5a9589a3a7110", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "e9b63f3655b2ad80c0ff587389b5a9589a3a7110", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, NULL)); @@ -259,12 +259,12 @@ void test_cherrypick_workdir__conflict_use_ours(void) /* leave the index in a conflicted state, but checkout "ours" to the workdir */ opts.checkout_opts.checkout_strategy = GIT_CHECKOUT_USE_OURS; - git_oid__fromstr(&head_oid, "bafbf6912c09505ac60575cd43d3f2aba3bd84d8", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "bafbf6912c09505ac60575cd43d3f2aba3bd84d8", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "e9b63f3655b2ad80c0ff587389b5a9589a3a7110", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "e9b63f3655b2ad80c0ff587389b5a9589a3a7110", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, &opts)); @@ -302,11 +302,11 @@ void test_cherrypick_workdir__rename(void) opts.merge_opts.flags |= GIT_MERGE_FIND_RENAMES; opts.merge_opts.rename_threshold = 50; - git_oid__fromstr(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "2a26c7e88b285613b302ba76712bc998863f3cbc", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "2a26c7e88b285613b302ba76712bc998863f3cbc", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, &opts)); @@ -337,11 +337,11 @@ void test_cherrypick_workdir__both_renamed(void) opts.merge_opts.flags |= GIT_MERGE_FIND_RENAMES; opts.merge_opts.rename_threshold = 50; - git_oid__fromstr(&head_oid, "44cd2ed2052c9c68f9a439d208e9614dc2a55c70", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "44cd2ed2052c9c68f9a439d208e9614dc2a55c70", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "2a26c7e88b285613b302ba76712bc998863f3cbc", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "2a26c7e88b285613b302ba76712bc998863f3cbc", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, &opts)); @@ -388,11 +388,11 @@ void test_cherrypick_workdir__merge_fails_without_mainline_specified(void) git_commit *head, *commit; git_oid head_oid, cherry_oid; - git_oid__fromstr(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "abe4603bc7cd5b8167a267e0e2418fd2348f8cff", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "abe4603bc7cd5b8167a267e0e2418fd2348f8cff", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_must_fail(git_cherrypick(repo, commit, NULL)); @@ -420,11 +420,11 @@ void test_cherrypick_workdir__merge_first_parent(void) opts.mainline = 1; - git_oid__fromstr(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "abe4603bc7cd5b8167a267e0e2418fd2348f8cff", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "abe4603bc7cd5b8167a267e0e2418fd2348f8cff", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, &opts)); @@ -452,11 +452,11 @@ void test_cherrypick_workdir__merge_second_parent(void) opts.mainline = 2; - git_oid__fromstr(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "cfc4f0999a8367568e049af4f72e452d40828a15", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&cherry_oid, "abe4603bc7cd5b8167a267e0e2418fd2348f8cff", GIT_OID_SHA1); + git_oid_from_string(&cherry_oid, "abe4603bc7cd5b8167a267e0e2418fd2348f8cff", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &cherry_oid)); cl_git_pass(git_cherrypick(repo, commit, &opts)); diff --git a/tests/libgit2/commit/commit.c b/tests/libgit2/commit/commit.c index 140f87d0c72..bdd08b9f7df 100644 --- a/tests/libgit2/commit/commit.c +++ b/tests/libgit2/commit/commit.c @@ -26,10 +26,10 @@ void test_commit_commit__create_unexisting_update_ref(void) git_signature *s; git_reference *ref; - git_oid__fromstr(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); - git_oid__fromstr(&oid, "944c0f6e4dfa41595e6eb3ceecdb14f50fe18162", GIT_OID_SHA1); + git_oid_from_string(&oid, "944c0f6e4dfa41595e6eb3ceecdb14f50fe18162", GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, _repo, &oid)); cl_git_pass(git_signature_now(&s, "alice", "alice@example.com")); @@ -59,10 +59,10 @@ void test_commit_commit__create_initial_commit(void) git_signature *s; git_reference *ref; - git_oid__fromstr(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); - git_oid__fromstr(&oid, "944c0f6e4dfa41595e6eb3ceecdb14f50fe18162", GIT_OID_SHA1); + git_oid_from_string(&oid, "944c0f6e4dfa41595e6eb3ceecdb14f50fe18162", GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, _repo, &oid)); cl_git_pass(git_signature_now(&s, "alice", "alice@example.com")); @@ -89,10 +89,10 @@ void test_commit_commit__create_initial_commit_parent_not_current(void) git_commit *commit; git_signature *s; - git_oid__fromstr(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); - git_oid__fromstr(&oid, "944c0f6e4dfa41595e6eb3ceecdb14f50fe18162", GIT_OID_SHA1); + git_oid_from_string(&oid, "944c0f6e4dfa41595e6eb3ceecdb14f50fe18162", GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, _repo, &oid)); cl_git_pass(git_signature_now(&s, "alice", "alice@example.com")); diff --git a/tests/libgit2/commit/parent.c b/tests/libgit2/commit/parent.c index 1ec96babb1e..ddbb8a44d61 100644 --- a/tests/libgit2/commit/parent.c +++ b/tests/libgit2/commit/parent.c @@ -9,7 +9,7 @@ void test_commit_parent__initialize(void) cl_git_pass(git_repository_open(&_repo, cl_fixture("testrepo.git"))); - git_oid__fromstr(&oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); } diff --git a/tests/libgit2/commit/parse.c b/tests/libgit2/commit/parse.c index 3a1fc3d26bd..6dda8a7e5a0 100644 --- a/tests/libgit2/commit/parse.c +++ b/tests/libgit2/commit/parse.c @@ -343,7 +343,7 @@ void test_commit_parse__details0(void) { unsigned int parents, p; git_commit *parent = NULL, *old_parent = NULL; - git_oid__fromstr(&id, commit_ids[i], GIT_OID_SHA1); + git_oid_from_string(&id, commit_ids[i], GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, g_repo, &id)); @@ -533,7 +533,7 @@ corrupt signature\n"; git_buf_dispose(&signed_data); /* Try to parse a tree */ - cl_git_pass(git_oid__fromstr(&commit_id, "45dd856fdd4d89b884c340ba0e047752d9b085d6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&commit_id, "45dd856fdd4d89b884c340ba0e047752d9b085d6", GIT_OID_SHA1)); cl_git_fail_with(GIT_ENOTFOUND, git_commit_extract_signature(&signature, &signed_data, g_repo, &commit_id, NULL)); cl_assert_equal_i(GIT_ERROR_INVALID, git_error_last()->klass); diff --git a/tests/libgit2/commit/write.c b/tests/libgit2/commit/write.c index 890f7384b1a..0fd228bc883 100644 --- a/tests/libgit2/commit/write.c +++ b/tests/libgit2/commit/write.c @@ -51,10 +51,10 @@ void test_commit_write__from_memory(void) git_commit *parent; git_tree *tree; - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &tree_id)); - git_oid__fromstr(&parent_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, parent_id_str, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&parent, g_repo, &parent_id)); /* create signatures */ @@ -107,14 +107,14 @@ void test_commit_write__into_buf(void) git_oid parent_id; git_buf commit = GIT_BUF_INIT; - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &tree_id)); /* create signatures */ cl_git_pass(git_signature_new(&committer, committer_name, committer_email, 123456789, 60)); cl_git_pass(git_signature_new(&author, committer_name, committer_email, 987654321, 90)); - git_oid__fromstr(&parent_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, parent_id_str, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&parent, g_repo, &parent_id)); cl_git_pass(git_commit_create_buffer(&commit, g_repo, author, committer, @@ -148,7 +148,7 @@ void test_commit_write__root(void) git_reflog *log; const git_reflog_entry *entry; - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &tree_id)); /* create signatures */ @@ -242,34 +242,34 @@ void test_commit_write__can_write_invalid_objects(void) cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, 0)); /* this is a valid tree and parent */ - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); - git_oid__fromstr(&parent_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, parent_id_str, GIT_OID_SHA1); - git_oid__fromstr(&expected_id, "c8571bbec3a72c4bcad31648902e5a453f1adece", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "c8571bbec3a72c4bcad31648902e5a453f1adece", GIT_OID_SHA1); cl_git_pass(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); cl_assert_equal_oid(&expected_id, &commit_id); /* this is a wholly invented tree id */ - git_oid__fromstr(&tree_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); - git_oid__fromstr(&parent_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); + git_oid_from_string(&parent_id, parent_id_str, GIT_OID_SHA1); - git_oid__fromstr(&expected_id, "996008340b8e68d69bf3c28d7c57fb7ec3c8e202", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "996008340b8e68d69bf3c28d7c57fb7ec3c8e202", GIT_OID_SHA1); cl_git_pass(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); cl_assert_equal_oid(&expected_id, &commit_id); /* this is a wholly invented parent id */ - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); - git_oid__fromstr(&parent_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); - git_oid__fromstr(&expected_id, "d78f660cab89d9791ca6714b57978bf2a7e709fd", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "d78f660cab89d9791ca6714b57978bf2a7e709fd", GIT_OID_SHA1); cl_git_pass(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); cl_assert_equal_oid(&expected_id, &commit_id); /* these are legitimate objects, but of the wrong type */ - git_oid__fromstr(&tree_id, parent_id_str, GIT_OID_SHA1); - git_oid__fromstr(&parent_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, tree_id_str, GIT_OID_SHA1); - git_oid__fromstr(&expected_id, "5d80c07414e3f18792949699dfcacadf7748f361", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "5d80c07414e3f18792949699dfcacadf7748f361", GIT_OID_SHA1); cl_git_pass(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); cl_assert_equal_oid(&expected_id, &commit_id); } @@ -279,23 +279,23 @@ void test_commit_write__can_validate_objects(void) git_oid tree_id, parent_id, commit_id; /* this is a valid tree and parent */ - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); - git_oid__fromstr(&parent_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, parent_id_str, GIT_OID_SHA1); cl_git_pass(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); /* this is a wholly invented tree id */ - git_oid__fromstr(&tree_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); - git_oid__fromstr(&parent_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); + git_oid_from_string(&parent_id, parent_id_str, GIT_OID_SHA1); cl_git_fail(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); /* this is a wholly invented parent id */ - git_oid__fromstr(&tree_id, tree_id_str, GIT_OID_SHA1); - git_oid__fromstr(&parent_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); + git_oid_from_string(&tree_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1); cl_git_fail(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); /* these are legitimate objects, but of the wrong type */ - git_oid__fromstr(&tree_id, parent_id_str, GIT_OID_SHA1); - git_oid__fromstr(&parent_id, tree_id_str, GIT_OID_SHA1); + git_oid_from_string(&tree_id, parent_id_str, GIT_OID_SHA1); + git_oid_from_string(&parent_id, tree_id_str, GIT_OID_SHA1); cl_git_fail(create_commit_from_ids(&commit_id, &tree_id, &parent_id)); } diff --git a/tests/libgit2/core/oid.c b/tests/libgit2/core/oid.c index a405b3344d7..3b20061cbfb 100644 --- a/tests/libgit2/core/oid.c +++ b/tests/libgit2/core/oid.c @@ -21,14 +21,14 @@ const char *str_oid_sha256_m = "d3e63d2f2e43d1fee23a74bf19a0ede156cba2d1bd602eba void test_core_oid__initialize(void) { - cl_git_pass(git_oid__fromstr(&id_sha1, str_oid_sha1, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstrp(&idp_sha1, str_oid_sha1_p, GIT_OID_SHA1)); - cl_git_fail(git_oid__fromstrp(&idm_sha1, str_oid_sha1_m, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id_sha1, str_oid_sha1, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&idp_sha1, str_oid_sha1_p, strlen(str_oid_sha1_p), GIT_OID_SHA1)); + cl_git_fail(git_oid_from_prefix(&idm_sha1, str_oid_sha1_m, strlen(str_oid_sha1_m), GIT_OID_SHA1)); #ifdef GIT_EXPERIMENTAL_SHA256 - cl_git_pass(git_oid__fromstr(&id_sha256, str_oid_sha256, GIT_OID_SHA256)); - cl_git_pass(git_oid__fromstrp(&idp_sha256, str_oid_sha256_p, GIT_OID_SHA256)); - cl_git_fail(git_oid__fromstrp(&idm_sha256, str_oid_sha256_m, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id_sha256, str_oid_sha256, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_prefix(&idp_sha256, str_oid_sha256_p, strlen(str_oid_sha256_p), GIT_OID_SHA256)); + cl_git_fail(git_oid_from_prefix(&idm_sha256, str_oid_sha256_m, strlen(str_oid_sha256_m), GIT_OID_SHA256)); #endif } diff --git a/tests/libgit2/core/oidarray.c b/tests/libgit2/core/oidarray.c index 4a9e47c701d..6f607c85be0 100644 --- a/tests/libgit2/core/oidarray.c +++ b/tests/libgit2/core/oidarray.c @@ -20,10 +20,10 @@ void test_core_oidarray__add_and_remove_oid_from_shallowarray(void) git_oid oid_0_obj, oid_1_obj, oid_2_obj, oid_3_obj; git_array_oid_t array = GIT_ARRAY_INIT; - git_oid__fromstr(&oid_0_obj, oid_0, GIT_OID_SHA1); - git_oid__fromstr(&oid_1_obj, oid_1, GIT_OID_SHA1); - git_oid__fromstr(&oid_2_obj, oid_2, GIT_OID_SHA1); - git_oid__fromstr(&oid_3_obj, oid_3, GIT_OID_SHA1); + git_oid_from_string(&oid_0_obj, oid_0, GIT_OID_SHA1); + git_oid_from_string(&oid_1_obj, oid_1, GIT_OID_SHA1); + git_oid_from_string(&oid_2_obj, oid_2, GIT_OID_SHA1); + git_oid_from_string(&oid_3_obj, oid_3, GIT_OID_SHA1); /* add some initial ids */ git_oidarray__add(&array, &oid_0_obj); diff --git a/tests/libgit2/core/pool.c b/tests/libgit2/core/pool.c index cf01cb9d182..83332f2d08d 100644 --- a/tests/libgit2/core/pool.c +++ b/tests/libgit2/core/pool.c @@ -22,7 +22,7 @@ void test_core_pool__oid(void) for (j = 0; j < 8; j++) oid_hex[j] = to_hex[(i >> (4 * j)) & 0x0f]; - cl_git_pass(git_oid__fromstr(oid, oid_hex, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(oid, oid_hex, GIT_OID_SHA1_HEXSIZE, GIT_OID_SHA1)); } #ifndef GIT_DEBUG_POOL diff --git a/tests/libgit2/diff/binary.c b/tests/libgit2/diff/binary.c index 3bf39f34ad7..11061788d68 100644 --- a/tests/libgit2/diff/binary.c +++ b/tests/libgit2/diff/binary.c @@ -31,12 +31,12 @@ static void test_patch( git_patch *patch; git_buf actual = GIT_BUF_INIT; - cl_git_pass(git_oid__fromstr(&id_one, one, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id_one, one, GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit_one, repo, &id_one)); cl_git_pass(git_commit_tree(&tree_one, commit_one)); if (two) { - cl_git_pass(git_oid__fromstr(&id_two, two, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id_two, two, GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit_two, repo, &id_two)); cl_git_pass(git_commit_tree(&tree_two, commit_two)); } else { @@ -289,7 +289,7 @@ void test_diff_binary__empty_for_no_diff(void) repo = cl_git_sandbox_init("renames"); - cl_git_pass(git_oid__fromstr(&id, "19dd32dfb1520a64e5bbaae8dce6ef423dfa2f13", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "19dd32dfb1520a64e5bbaae8dce6ef423dfa2f13", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, repo, &id)); cl_git_pass(git_commit_tree(&tree, commit)); @@ -510,8 +510,8 @@ void test_diff_binary__blob_to_blob(void) cl_git_pass(git_index_add_bypath(index, "untimely.txt")); cl_git_pass(git_index_write(index)); - git_oid__fromstr(&old_id, "9a69d960ae94b060f56c2a8702545e2bb1abb935", GIT_OID_SHA1); - git_oid__fromstr(&new_id, "1111d4f11f4b35bf6759e0fb714fe09731ef0840", GIT_OID_SHA1); + git_oid_from_string(&old_id, "9a69d960ae94b060f56c2a8702545e2bb1abb935", GIT_OID_SHA1); + git_oid_from_string(&new_id, "1111d4f11f4b35bf6759e0fb714fe09731ef0840", GIT_OID_SHA1); cl_git_pass(git_blob_lookup(&old_blob, repo, &old_id)); cl_git_pass(git_blob_lookup(&new_blob, repo, &new_id)); diff --git a/tests/libgit2/diff/blob.c b/tests/libgit2/diff/blob.c index cb7e48b8d7d..235407512e1 100644 --- a/tests/libgit2/diff/blob.c +++ b/tests/libgit2/diff/blob.c @@ -45,11 +45,11 @@ void test_diff_blob__initialize(void) memset(&expected, 0, sizeof(expected)); /* tests/resources/attr/root_test4.txt */ - cl_git_pass(git_oid__fromstrn(&oid, "a0f7217a", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, "a0f7217a", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&d, g_repo, &oid, 8)); /* alien.png */ - cl_git_pass(git_oid__fromstrn(&oid, "edf3dcee", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, "edf3dcee", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&alien, g_repo, &oid, 8)); } @@ -86,10 +86,10 @@ void test_diff_blob__patch_with_freed_blobs(void) git_buf buf = GIT_BUF_INIT; /* tests/resources/attr/root_test1 */ - cl_git_pass(git_oid__fromstrn(&a_oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&a_oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&a, g_repo, &a_oid, 4)); /* tests/resources/attr/root_test2 */ - cl_git_pass(git_oid__fromstrn(&b_oid, "4d713dc4", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&b_oid, "4d713dc4", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&b, g_repo, &b_oid, 4)); cl_git_pass(git_patch_from_blobs(&p, a, NULL, b, NULL, NULL)); @@ -110,15 +110,15 @@ void test_diff_blob__can_compare_text_blobs(void) git_oid a_oid, b_oid, c_oid; /* tests/resources/attr/root_test1 */ - cl_git_pass(git_oid__fromstrn(&a_oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&a_oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&a, g_repo, &a_oid, 4)); /* tests/resources/attr/root_test2 */ - cl_git_pass(git_oid__fromstrn(&b_oid, "4d713dc4", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&b_oid, "4d713dc4", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&b, g_repo, &b_oid, 4)); /* tests/resources/attr/root_test3 */ - cl_git_pass(git_oid__fromstrn(&c_oid, "c96bbb2c2557a832", 16, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&c_oid, "c96bbb2c2557a832", 16, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&c, g_repo, &c_oid, 16)); /* Doing the equivalent of a `git diff -U1` on these files */ @@ -201,15 +201,15 @@ void test_diff_blob__can_compare_text_blobs_with_patch(void) git_patch *p; /* tests/resources/attr/root_test1 */ - cl_git_pass(git_oid__fromstrn(&a_oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&a_oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&a, g_repo, &a_oid, 8)); /* tests/resources/attr/root_test2 */ - cl_git_pass(git_oid__fromstrn(&b_oid, "4d713dc4", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&b_oid, "4d713dc4", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&b, g_repo, &b_oid, 8)); /* tests/resources/attr/root_test3 */ - cl_git_pass(git_oid__fromstrn(&c_oid, "c96bbb2c2557a832", 16, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&c_oid, "c96bbb2c2557a832", 16, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&c, g_repo, &c_oid, 16)); /* Doing the equivalent of a `git diff -U1` on these files */ @@ -475,7 +475,7 @@ void test_diff_blob__can_compare_two_binary_blobs(void) git_oid h_oid; /* heart.png */ - cl_git_pass(git_oid__fromstrn(&h_oid, "de863bff", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&h_oid, "de863bff", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&heart, g_repo, &h_oid, 8)); cl_git_pass(git_diff_blobs( @@ -543,7 +543,7 @@ void test_diff_blob__comparing_two_text_blobs_honors_interhunkcontext(void) opts.context_lines = 3; /* tests/resources/attr/root_test1 from commit f5b0af1 */ - cl_git_pass(git_oid__fromstrn(&old_d_oid, "fe773770", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&old_d_oid, "fe773770", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&old_d, g_repo, &old_d_oid, 8)); /* Test with default inter-hunk-context (not set) => default is 0 */ @@ -652,7 +652,7 @@ void test_diff_blob__can_compare_blob_to_buffer(void) const char *b_content = "Hello from the root\n\nSome additional lines\n\nDown here below\n\n"; /* tests/resources/attr/root_test1 */ - cl_git_pass(git_oid__fromstrn(&a_oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&a_oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&a, g_repo, &a_oid, 8)); /* diff from blob a to content of b */ @@ -694,7 +694,7 @@ void test_diff_blob__can_compare_blob_to_buffer_with_patch(void) size_t tc, ta, td; /* tests/resources/attr/root_test1 */ - cl_git_pass(git_oid__fromstrn(&a_oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&a_oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&a, g_repo, &a_oid, 8)); /* diff from blob a to content of b */ @@ -773,10 +773,10 @@ void test_diff_blob__binary_data_comparisons(void) opts.flags |= GIT_DIFF_INCLUDE_UNMODIFIED; - cl_git_pass(git_oid__fromstrn(&oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&nonbin, g_repo, &oid, 8)); - cl_git_pass(git_oid__fromstrn(&oid, "b435cd56", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, "b435cd56", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&bin, g_repo, &oid, 8)); /* non-binary to reference content */ @@ -879,11 +879,11 @@ void test_diff_blob__using_path_and_attributes(void) opts.context_lines = 0; opts.flags |= GIT_DIFF_INCLUDE_UNMODIFIED; - cl_git_pass(git_oid__fromstrn(&oid, "45141a79", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, "45141a79", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&nonbin, g_repo, &oid, 8)); /* 20b: "Hello from the root\n" */ - cl_git_pass(git_oid__fromstrn(&oid, "b435cd56", 8, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, "b435cd56", 8, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup_prefix(&bin, g_repo, &oid, 8)); /* 33b: "0123456789\n\x01\x02\x03\x04\x05\x06\x07\x08\x09\n0123456789\n" */ diff --git a/tests/libgit2/diff/diff_helpers.c b/tests/libgit2/diff/diff_helpers.c index 6a76a92e7e8..79148f42c95 100644 --- a/tests/libgit2/diff/diff_helpers.c +++ b/tests/libgit2/diff/diff_helpers.c @@ -11,7 +11,7 @@ git_tree *resolve_commit_oid_to_tree( git_object *obj = NULL; git_tree *tree = NULL; - if (git_oid__fromstrn(&oid, partial_oid, len, GIT_OID_SHA1) == 0) + if (git_oid_from_prefix(&oid, partial_oid, len, GIT_OID_SHA1) == 0) cl_git_pass(git_object_lookup_prefix(&obj, repo, &oid, len, GIT_OBJECT_ANY)); cl_git_pass(git_object_peel((git_object **) &tree, obj, GIT_OBJECT_TREE)); diff --git a/tests/libgit2/diff/format_email.c b/tests/libgit2/diff/format_email.c index 2726edb0ddd..614fcbc114c 100644 --- a/tests/libgit2/diff/format_email.c +++ b/tests/libgit2/diff/format_email.c @@ -28,7 +28,7 @@ static void assert_email_match( git_diff *diff = NULL; git_buf buf = GIT_BUF_INIT; - git_oid__fromstr(&oid, oidstr, GIT_OID_SHA1); + git_oid_from_string(&oid, oidstr, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); @@ -228,7 +228,7 @@ void test_diff_format_email__multiple(void) "\n"; - git_oid__fromstr(&oid, "10808fe9c9be5a190c0ba68d1a002233fb363508", GIT_OID_SHA1); + git_oid_from_string(&oid, "10808fe9c9be5a190c0ba68d1a002233fb363508", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); opts.id = git_commit_id(commit); @@ -245,7 +245,7 @@ void test_diff_format_email__multiple(void) diff = NULL; commit = NULL; - git_oid__fromstr(&oid, "873806f6f27e631eb0b23e4b56bea2bfac14a373", GIT_OID_SHA1); + git_oid_from_string(&oid, "873806f6f27e631eb0b23e4b56bea2bfac14a373", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); opts.id = git_commit_id(commit); @@ -324,7 +324,7 @@ void test_diff_format_email__invalid_no(void) git_diff_format_email_options opts = GIT_DIFF_FORMAT_EMAIL_OPTIONS_INIT; git_buf buf = GIT_BUF_INIT; - git_oid__fromstr(&oid, "9264b96c6d104d0e07ae33d3007b6a48246c6f92", GIT_OID_SHA1); + git_oid_from_string(&oid, "9264b96c6d104d0e07ae33d3007b6a48246c6f92", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); diff --git a/tests/libgit2/diff/index.c b/tests/libgit2/diff/index.c index c6b7037e4c0..de2280070f6 100644 --- a/tests/libgit2/diff/index.c +++ b/tests/libgit2/diff/index.c @@ -186,9 +186,9 @@ static void do_conflicted_diff(diff_expects *exp, unsigned long flags) ancestor.path = ours.path = theirs.path = "staged_changes"; ancestor.mode = ours.mode = theirs.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&ancestor.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); - git_oid__fromstr(&ours.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); - git_oid__fromstr(&theirs.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); + git_oid_from_string(&ancestor.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); + git_oid_from_string(&ours.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&theirs.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(index, &ancestor, &ours, &theirs)); cl_git_pass(git_diff_tree_to_index(&diff, g_repo, a, index, &opts)); @@ -256,7 +256,7 @@ void test_diff_index__not_in_head_conflicted(void) theirs.path = "file_not_in_head"; theirs.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&theirs.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); + git_oid_from_string(&theirs.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(index, NULL, NULL, &theirs)); cl_git_pass(git_diff_tree_to_index(&diff, g_repo, a, index, NULL)); diff --git a/tests/libgit2/diff/patchid.c b/tests/libgit2/diff/patchid.c index 91807e7b747..2cd9473f247 100644 --- a/tests/libgit2/diff/patchid.c +++ b/tests/libgit2/diff/patchid.c @@ -7,7 +7,7 @@ static void verify_patch_id(const char *diff_content, const char *expected_id) git_oid expected_oid, actual_oid; git_diff *diff; - cl_git_pass(git_oid__fromstr(&expected_oid, expected_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected_id, GIT_OID_SHA1)); cl_git_pass(diff_from_buffer(&diff, diff_content, strlen(diff_content))); cl_git_pass(git_diff_patchid(&actual_oid, diff, NULL)); diff --git a/tests/libgit2/diff/rename.c b/tests/libgit2/diff/rename.c index 61a2f839cb3..a5bbfe447bc 100644 --- a/tests/libgit2/diff/rename.c +++ b/tests/libgit2/diff/rename.c @@ -574,7 +574,7 @@ void test_diff_rename__working_directory_changes(void) /* again with exact match blob */ - cl_git_pass(git_oid__fromstr(&id, blobsha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, blobsha, GIT_OID_SHA1)); cl_git_pass(git_blob_lookup(&blob, g_repo, &id)); cl_git_pass(git_str_set( &content, git_blob_rawcontent(blob), (size_t)git_blob_rawsize(blob))); diff --git a/tests/libgit2/diff/stats.c b/tests/libgit2/diff/stats.c index 7af89155084..f808136220a 100644 --- a/tests/libgit2/diff/stats.c +++ b/tests/libgit2/diff/stats.c @@ -27,7 +27,7 @@ static void diff_stats_from_commit_oid( git_commit *commit; git_diff *diff; - git_oid__fromstr(&oid, oidstr, GIT_OID_SHA1); + git_oid_from_string(&oid, oidstr, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); cl_git_pass(git_diff__commit(&diff, _repo, commit, NULL)); if (rename) diff --git a/tests/libgit2/diff/workdir.c b/tests/libgit2/diff/workdir.c index c2a0c79283e..602460908bb 100644 --- a/tests/libgit2/diff/workdir.c +++ b/tests/libgit2/diff/workdir.c @@ -86,11 +86,11 @@ void test_diff_workdir__to_index_with_conflicts(void) /* Adding an entry that represents a rename gets two files in conflict */ our_entry.path = "subdir/modified_file"; our_entry.mode = 0100644; - git_oid__fromstr(&our_entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); their_entry.path = "subdir/rename_conflict"; their_entry.mode = 0100644; - git_oid__fromstr(&their_entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); cl_git_pass(git_repository_index(&index, g_repo)); cl_git_pass(git_index_conflict_add(index, NULL, &our_entry, &their_entry)); @@ -2015,9 +2015,9 @@ void test_diff_workdir__to_index_conflicted(void) { ancestor.path = ours.path = theirs.path = "_file"; ancestor.mode = ours.mode = theirs.mode = 0100644; - git_oid__fromstr(&ancestor.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); - git_oid__fromstr(&ours.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); - git_oid__fromstr(&theirs.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); + git_oid_from_string(&ancestor.id, "d427e0b2e138501a3d15cc376077a3631e15bd46", GIT_OID_SHA1); + git_oid_from_string(&ours.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&theirs.id, "2bd0a343aeef7a2cf0d158478966a6e587ff3863", GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(index, &ancestor, &ours, &theirs)); cl_git_pass(git_diff_tree_to_index(&diff1, g_repo, a, index, NULL)); diff --git a/tests/libgit2/email/create.c b/tests/libgit2/email/create.c index cd3ccf7002b..1a69dc4f267 100644 --- a/tests/libgit2/email/create.c +++ b/tests/libgit2/email/create.c @@ -25,7 +25,7 @@ static void email_for_commit( git_commit *commit = NULL; git_diff *diff = NULL; - git_oid__fromstr(&oid, commit_id, GIT_OID_SHA1); + git_oid_from_string(&oid, commit_id, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); @@ -324,7 +324,7 @@ void test_email_create__custom_summary_and_body(void) opts.subject_prefix = "PPPPPATCH"; - git_oid__fromstr(&oid, "627e7e12d87e07a83fad5b6bfa25e86ead4a5270", GIT_OID_SHA1); + git_oid_from_string(&oid, "627e7e12d87e07a83fad5b6bfa25e86ead4a5270", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_diff__commit(&diff, repo, commit, NULL)); cl_git_pass(git_email_create_from_diff(&buf, diff, 2, 4, &oid, summary, body, git_commit_author(commit), &opts)); diff --git a/tests/libgit2/fetch/local.c b/tests/libgit2/fetch/local.c index 5d2417f1cd3..ca307a881e8 100644 --- a/tests/libgit2/fetch/local.c +++ b/tests/libgit2/fetch/local.c @@ -26,7 +26,7 @@ void test_fetch_local__defaults(void) cl_fixture("testrepo.git"))); cl_git_pass(git_remote_fetch(remote, NULL, NULL, NULL)); - git_oid__fromstr(&expected_id, "258f0e2a959a364e40ed6603d5d44fbb24765b10", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "258f0e2a959a364e40ed6603d5d44fbb24765b10", GIT_OID_SHA1); cl_git_pass(git_revparse_single(&obj, repo, "refs/remotes/test/haacked")); cl_assert_equal_oid(&expected_id, git_object_id(obj)); @@ -47,7 +47,7 @@ void test_fetch_local__reachable_commit(void) refspecs.strings = &refspec; refspecs.count = 1; - git_oid__fromstr(&expected_id, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); cl_git_pass(git_remote_create(&remote, repo, "test", cl_fixture("testrepo.git"))); diff --git a/tests/libgit2/fetchhead/nonetwork.c b/tests/libgit2/fetchhead/nonetwork.c index e92b85fa53c..ac86d611af4 100644 --- a/tests/libgit2/fetchhead/nonetwork.c +++ b/tests/libgit2/fetchhead/nonetwork.c @@ -29,7 +29,7 @@ static void populate_fetchhead(git_vector *out, git_repository *repo) git_fetchhead_ref *fetchhead_ref; git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&fetchhead_ref, &oid, 1, @@ -37,7 +37,7 @@ static void populate_fetchhead(git_vector *out, git_repository *repo) "https://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(out, fetchhead_ref)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "0966a434eb1a025db6b71485ab63a3bfbea520b6", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&fetchhead_ref, &oid, 0, @@ -45,7 +45,7 @@ static void populate_fetchhead(git_vector *out, git_repository *repo) "https://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(out, fetchhead_ref)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "42e4e7c5e507e113ebbb7801b16b52cf867b7ce1", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&fetchhead_ref, &oid, 0, @@ -53,7 +53,7 @@ static void populate_fetchhead(git_vector *out, git_repository *repo) "https://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(out, fetchhead_ref)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "d96c4e80345534eccee5ac7b07fc7603b56124cb", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&fetchhead_ref, &oid, 0, @@ -61,7 +61,7 @@ static void populate_fetchhead(git_vector *out, git_repository *repo) "https://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(out, fetchhead_ref)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "55a1a760df4b86a02094a904dfa511deb5655905", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&fetchhead_ref, &oid, 0, @@ -69,7 +69,7 @@ static void populate_fetchhead(git_vector *out, git_repository *repo) "https://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(out, fetchhead_ref)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "8f50ba15d49353813cc6e20298002c0d17b0a9ee", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&fetchhead_ref, &oid, 0, @@ -176,7 +176,7 @@ static int read_old_style_cb(const char *name, const char *url, GIT_UNUSED(payload); - git_oid__fromstr(&expected, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1); + git_oid_from_string(&expected, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1); cl_assert(name == NULL); cl_assert(url == NULL); @@ -203,7 +203,7 @@ static int read_type_missing(const char *ref_name, const char *remote_url, GIT_UNUSED(payload); - git_oid__fromstr(&expected, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1); + git_oid_from_string(&expected, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1); cl_assert_equal_s("name", ref_name); cl_assert_equal_s("remote_url", remote_url); @@ -230,7 +230,7 @@ static int read_name_missing(const char *ref_name, const char *remote_url, GIT_UNUSED(payload); - git_oid__fromstr(&expected, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1); + git_oid_from_string(&expected, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1); cl_assert(ref_name == NULL); cl_assert_equal_s("remote_url", remote_url); @@ -534,13 +534,13 @@ void test_fetchhead_nonetwork__credentials_are_stripped(void) git_fetchhead_ref *ref; git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&ref, &oid, 0, "refs/tags/commit_tree", "http://foo:bar@github.com/libgit2/TestGitRepository")); cl_assert_equal_s(ref->remote_url, "http://github.com/libgit2/TestGitRepository"); git_fetchhead_ref_free(ref); - cl_git_pass(git_oid__fromstr(&oid, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "49322bb17d3acc9146f98c97d078513228bbf3c0", GIT_OID_SHA1)); cl_git_pass(git_fetchhead_ref_create(&ref, &oid, 0, "refs/tags/commit_tree", "https://foo:bar@github.com/libgit2/TestGitRepository")); cl_assert_equal_s(ref->remote_url, "https://github.com/libgit2/TestGitRepository"); diff --git a/tests/libgit2/filter/bare.c b/tests/libgit2/filter/bare.c index f53cfcb4919..afbccd73228 100644 --- a/tests/libgit2/filter/bare.c +++ b/tests/libgit2/filter/bare.c @@ -140,7 +140,7 @@ void test_filter_bare__from_specific_commit_one(void) opts.flags |= GIT_BLOB_FILTER_NO_SYSTEM_ATTRIBUTES; opts.flags |= GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT; - cl_git_pass(git_oid__fromstr(&opts.attr_commit_id, "b8986fec0f7bde90f78ac72706e782d82f24f2f0", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&opts.attr_commit_id, "b8986fec0f7bde90f78ac72706e782d82f24f2f0", GIT_OID_SHA1)); cl_git_pass(git_revparse_single( (git_object **)&blob, g_repo, "055c872")); /* ident */ @@ -165,7 +165,7 @@ void test_filter_bare__from_specific_commit_with_no_attributes_file(void) opts.flags |= GIT_BLOB_FILTER_NO_SYSTEM_ATTRIBUTES; opts.flags |= GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT; - cl_git_pass(git_oid__fromstr(&opts.attr_commit_id, "5afb6a14a864e30787857dd92af837e8cdd2cb1b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&opts.attr_commit_id, "5afb6a14a864e30787857dd92af837e8cdd2cb1b", GIT_OID_SHA1)); cl_git_pass(git_revparse_single( (git_object **)&blob, g_repo, "799770d")); /* all-lf */ diff --git a/tests/libgit2/grafts/basic.c b/tests/libgit2/grafts/basic.c index 30c87f908af..ad208b7f2a1 100644 --- a/tests/libgit2/grafts/basic.c +++ b/tests/libgit2/grafts/basic.c @@ -25,10 +25,10 @@ void test_grafts_basic__graft_add(void) cl_git_pass(git_grafts_new(&grafts, GIT_OID_SHA1)); cl_assert(oid1 = git_array_alloc(parents)); - cl_git_pass(git_oid__fromstr(&oid_src, "2f3053cbff8a4ca2f0666de364ddb734a28a31a9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid_src, "2f3053cbff8a4ca2f0666de364ddb734a28a31a9", GIT_OID_SHA1)); git_oid_cpy(oid1, &oid_src); - git_oid__fromstr(&oid_src, "f503807ffa920e407a600cfaee96b7152259acc7", GIT_OID_SHA1); + git_oid_from_string(&oid_src, "f503807ffa920e407a600cfaee96b7152259acc7", GIT_OID_SHA1); cl_git_pass(git_grafts_add(grafts, &oid_src, parents)); git_array_clear(parents); @@ -73,17 +73,17 @@ void test_grafts_basic__grafted_objects(void) git_oid oid; git_commit *commit; - cl_git_pass(git_oid__fromstr(&oid, "f503807ffa920e407a600cfaee96b7152259acc7", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "f503807ffa920e407a600cfaee96b7152259acc7", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &oid)); cl_assert_equal_i(1, git_commit_parentcount(commit)); git_commit_free(commit); - cl_git_pass(git_oid__fromstr(&oid, "0512adebd3782157f0d5c9b22b043f87b4aaff9e", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "0512adebd3782157f0d5c9b22b043f87b4aaff9e", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &oid)); cl_assert_equal_i(1, git_commit_parentcount(commit)); git_commit_free(commit); - cl_git_pass(git_oid__fromstr(&oid, "66cc22a015f6ca75b34c82d28f78ba663876bade", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "66cc22a015f6ca75b34c82d28f78ba663876bade", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, g_repo, &oid)); cl_assert_equal_i(4, git_commit_parentcount(commit)); git_commit_free(commit); diff --git a/tests/libgit2/grafts/parse.c b/tests/libgit2/grafts/parse.c index 3b0618a1d99..f268a2a1712 100644 --- a/tests/libgit2/grafts/parse.c +++ b/tests/libgit2/grafts/parse.c @@ -46,14 +46,14 @@ static void assert_graft_contains(git_grafts *grafts, const char *graft, size_t va_list ap; size_t i = 0; - cl_git_pass(git_oid__fromstr(&oid, graft, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, graft, GIT_OID_SHA1)); cl_git_pass(git_grafts_get(&commit, grafts, &oid)); cl_assert_equal_oid(&commit->oid, &oid); cl_assert_equal_i(commit->parents.size, n); va_start(ap, n); while (i < n) { - cl_git_pass(git_oid__fromstr(&oid, va_arg(ap, const char *), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, va_arg(ap, const char *), GIT_OID_SHA1)); cl_assert_equal_oid(&commit->parents.ptr[i], &oid); i++; } diff --git a/tests/libgit2/grafts/shallow.c b/tests/libgit2/grafts/shallow.c index 349e9e9b2fd..ceb56ed5a7c 100644 --- a/tests/libgit2/grafts/shallow.c +++ b/tests/libgit2/grafts/shallow.c @@ -9,7 +9,7 @@ static git_oid g_shallow_oid; void test_grafts_shallow__initialize(void) { - cl_git_pass(git_oid__fromstr(&g_shallow_oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&g_shallow_oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); } void test_grafts_shallow__cleanup(void) @@ -61,7 +61,7 @@ void test_grafts_shallow__cache_clearing(void) git_grafts *grafts; git_oid tmp_oid; - cl_git_pass(git_oid__fromstr(&tmp_oid, "0000000000000000000000000000000000000000", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tmp_oid, "0000000000000000000000000000000000000000", GIT_OID_SHA1)); g_repo = cl_git_sandbox_init("shallow.git"); cl_git_pass(git_repository_shallow_grafts__weakptr(&grafts, g_repo)); diff --git a/tests/libgit2/graph/ahead_behind.c b/tests/libgit2/graph/ahead_behind.c index dd828c5f37b..66db34b0f55 100644 --- a/tests/libgit2/graph/ahead_behind.c +++ b/tests/libgit2/graph/ahead_behind.c @@ -10,7 +10,7 @@ void test_graph_ahead_behind__initialize(void) git_oid oid; cl_git_pass(git_repository_open(&_repo, cl_fixture("testrepo.git"))); - cl_git_pass(git_oid__fromstr(&oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); } @@ -29,8 +29,8 @@ void test_graph_ahead_behind__returns_correct_result(void) git_oid oid2; git_commit *other; - cl_git_pass(git_oid__fromstr(&oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&oid2, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid2, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_graph_ahead_behind(&ahead, &behind, _repo, &oid, &oid2)); cl_assert_equal_sz(2, ahead); diff --git a/tests/libgit2/graph/commitgraph.c b/tests/libgit2/graph/commitgraph.c index 363806bd9e9..4000882d713 100644 --- a/tests/libgit2/graph/commitgraph.c +++ b/tests/libgit2/graph/commitgraph.c @@ -19,28 +19,28 @@ void test_graph_commitgraph__parse(void) cl_git_pass(git_commit_graph_file_open(&file, git_str_cstr(&commit_graph_path), GIT_OID_SHA1)); cl_assert_equal_i(git_commit_graph_file_needs_refresh(file, git_str_cstr(&commit_graph_path)), 0); - cl_git_pass(git_oid__fromstr(&id, "5001298e0c09ad9c34e4249bc5801c75e9754fa5", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "5001298e0c09ad9c34e4249bc5801c75e9754fa5", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_find(&e, file, &id, GIT_OID_SHA1_HEXSIZE)); cl_assert_equal_oid(&e.sha1, &id); - cl_git_pass(git_oid__fromstr(&id, "418382dff1ffb8bdfba833f4d8bbcde58b1e7f47", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "418382dff1ffb8bdfba833f4d8bbcde58b1e7f47", GIT_OID_SHA1)); cl_assert_equal_oid(&e.tree_oid, &id); cl_assert_equal_i(e.generation, 1); cl_assert_equal_i(e.commit_time, UINT64_C(1273610423)); cl_assert_equal_i(e.parent_count, 0); - cl_git_pass(git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_find(&e, file, &id, GIT_OID_SHA1_HEXSIZE)); cl_assert_equal_oid(&e.sha1, &id); cl_assert_equal_i(e.generation, 5); cl_assert_equal_i(e.commit_time, UINT64_C(1274813907)); cl_assert_equal_i(e.parent_count, 2); - cl_git_pass(git_oid__fromstr(&id, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_parent(&parent, file, &e, 0)); cl_assert_equal_oid(&parent.sha1, &id); cl_assert_equal_i(parent.generation, 4); - cl_git_pass(git_oid__fromstr(&id, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_parent(&parent, file, &e, 1)); cl_assert_equal_oid(&parent.sha1, &id); cl_assert_equal_i(parent.generation, 3); @@ -62,26 +62,26 @@ void test_graph_commitgraph__parse_octopus_merge(void) cl_git_pass(git_str_joinpath(&commit_graph_path, git_repository_path(repo), "objects/info/commit-graph")); cl_git_pass(git_commit_graph_file_open(&file, git_str_cstr(&commit_graph_path), GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&id, "d71c24b3b113fd1d1909998c5bfe33b86a65ee03", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "d71c24b3b113fd1d1909998c5bfe33b86a65ee03", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_find(&e, file, &id, GIT_OID_SHA1_HEXSIZE)); cl_assert_equal_oid(&e.sha1, &id); - cl_git_pass(git_oid__fromstr(&id, "348f16ffaeb73f319a75cec5b16a0a47d2d5e27c", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "348f16ffaeb73f319a75cec5b16a0a47d2d5e27c", GIT_OID_SHA1)); cl_assert_equal_oid(&e.tree_oid, &id); cl_assert_equal_i(e.generation, 7); cl_assert_equal_i(e.commit_time, UINT64_C(1447083009)); cl_assert_equal_i(e.parent_count, 3); - cl_git_pass(git_oid__fromstr(&id, "ad2ace9e15f66b3d1138922e6ffdc3ea3f967fa6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "ad2ace9e15f66b3d1138922e6ffdc3ea3f967fa6", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_parent(&parent, file, &e, 0)); cl_assert_equal_oid(&parent.sha1, &id); cl_assert_equal_i(parent.generation, 6); - cl_git_pass(git_oid__fromstr(&id, "483065df53c0f4a02cdc6b2910b05d388fc17ffb", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "483065df53c0f4a02cdc6b2910b05d388fc17ffb", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_parent(&parent, file, &e, 1)); cl_assert_equal_oid(&parent.sha1, &id); cl_assert_equal_i(parent.generation, 2); - cl_git_pass(git_oid__fromstr(&id, "815b5a1c80ca749d705c7aa0cb294a00cbedd340", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "815b5a1c80ca749d705c7aa0cb294a00cbedd340", GIT_OID_SHA1)); cl_git_pass(git_commit_graph_entry_parent(&parent, file, &e, 2)); cl_assert_equal_oid(&parent.sha1, &id); cl_assert_equal_i(parent.generation, 6); diff --git a/tests/libgit2/graph/descendant_of.c b/tests/libgit2/graph/descendant_of.c index b6dffae0671..594066c42b6 100644 --- a/tests/libgit2/graph/descendant_of.c +++ b/tests/libgit2/graph/descendant_of.c @@ -9,7 +9,7 @@ void test_graph_descendant_of__initialize(void) cl_git_pass(git_repository_open(&_repo, cl_fixture("testrepo.git"))); - git_oid__fromstr(&oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&oid, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, _repo, &oid)); } @@ -50,6 +50,6 @@ void test_graph_descendant_of__nopath(void) { git_oid oid; - git_oid__fromstr(&oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); + git_oid_from_string(&oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); cl_assert_equal_i(0, git_graph_descendant_of(_repo, git_commit_id(commit), &oid)); } diff --git a/tests/libgit2/graph/reachable_from_any.c b/tests/libgit2/graph/reachable_from_any.c index 04706fbb456..161b640020f 100644 --- a/tests/libgit2/graph/reachable_from_any.c +++ b/tests/libgit2/graph/reachable_from_any.c @@ -17,7 +17,7 @@ void test_graph_reachable_from_any__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); - git_oid__fromstr(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); + git_oid_from_string(&oid, "539bd011c4822c560c1d17cab095006b7a10f707", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); cl_git_pass(git_reset(repo, (git_object *)commit, GIT_RESET_HARD, NULL)); git_commit_free(commit); diff --git a/tests/libgit2/index/add.c b/tests/libgit2/index/add.c index 588a2ad148c..d4290019b6a 100644 --- a/tests/libgit2/index/add.c +++ b/tests/libgit2/index/add.c @@ -28,7 +28,7 @@ static void test_add_entry( { git_index_entry entry = {{0}}; - cl_git_pass(git_oid__fromstr(&entry.id, idstr, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, idstr, GIT_OID_SHA1)); entry.path = mode == GIT_FILEMODE_TREE ? "test_folder" : "test_file"; entry.mode = mode; @@ -90,11 +90,11 @@ void test_index_add__two_slash_prefixed(void) orig_count = git_index_entrycount(g_index); - cl_git_pass(git_oid__fromstr(&one.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); one.path = "/a"; one.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&two.id, "3697d64be941a53d4ae8f6a271e4e3fa56b022cc", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two.id, "3697d64be941a53d4ae8f6a271e4e3fa56b022cc", GIT_OID_SHA1)); two.path = "/a"; two.mode = GIT_FILEMODE_BLOB; diff --git a/tests/libgit2/index/bypath.c b/tests/libgit2/index/bypath.c index 15c11af5f0b..ef105462d49 100644 --- a/tests/libgit2/index/bypath.c +++ b/tests/libgit2/index/bypath.c @@ -131,7 +131,7 @@ void test_index_bypath__add_honors_existing_case_2(void) clar__skip(); dummy.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&dummy.id, "f990a25a74d1a8281ce2ab018ea8df66795cd60b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&dummy.id, "f990a25a74d1a8281ce2ab018ea8df66795cd60b", GIT_OID_SHA1)); /* note that `git_index_add` does no checking to canonical directories */ dummy.path = "Just_a_dir/file0.txt"; @@ -187,7 +187,7 @@ void test_index_bypath__add_honors_existing_case_3(void) clar__skip(); dummy.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&dummy.id, "f990a25a74d1a8281ce2ab018ea8df66795cd60b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&dummy.id, "f990a25a74d1a8281ce2ab018ea8df66795cd60b", GIT_OID_SHA1)); dummy.path = "just_a_dir/filea.txt"; cl_git_pass(git_index_add(g_idx, &dummy)); @@ -218,7 +218,7 @@ void test_index_bypath__add_honors_existing_case_4(void) clar__skip(); dummy.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&dummy.id, "f990a25a74d1a8281ce2ab018ea8df66795cd60b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&dummy.id, "f990a25a74d1a8281ce2ab018ea8df66795cd60b", GIT_OID_SHA1)); dummy.path = "just_a_dir/a/b/c/d/e/file1.txt"; cl_git_pass(git_index_add(g_idx, &dummy)); diff --git a/tests/libgit2/index/cache.c b/tests/libgit2/index/cache.c index 1d0f8a3ebf2..7207308414c 100644 --- a/tests/libgit2/index/cache.c +++ b/tests/libgit2/index/cache.c @@ -26,7 +26,7 @@ void test_index_cache__write_extension_at_root(void) cl_git_pass(git_index_open_ext(&index, index_file, NULL)); cl_assert(index->tree == NULL); - cl_git_pass(git_oid__fromstr(&id, tree_id_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, tree_id_str, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); cl_git_pass(git_index_read_tree(index, tree)); git_tree_free(tree); @@ -59,7 +59,7 @@ void test_index_cache__write_extension_invalidated_root(void) cl_git_pass(git_index_open_ext(&index, index_file, &index_opts)); cl_assert(index->tree == NULL); - cl_git_pass(git_oid__fromstr(&id, tree_id_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, tree_id_str, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); cl_git_pass(git_index_read_tree(index, tree)); git_tree_free(tree); @@ -101,7 +101,7 @@ void test_index_cache__read_tree_no_children(void) cl_git_pass(git_index_new(&index)); cl_assert(index->tree == NULL); - cl_git_pass(git_oid__fromstr(&id, "45dd856fdd4d89b884c340ba0e047752d9b085d6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "45dd856fdd4d89b884c340ba0e047752d9b085d6", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); cl_git_pass(git_index_read_tree(index, tree)); git_tree_free(tree); @@ -114,7 +114,7 @@ void test_index_cache__read_tree_no_children(void) memset(&entry, 0x0, sizeof(git_index_entry)); entry.path = "new.txt"; entry.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&entry.id, "d4bcc68acd4410bf836a39f20afb2c2ece09584e", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "d4bcc68acd4410bf836a39f20afb2c2ece09584e", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); cl_assert_equal_i(-1, index->tree->entry_count); @@ -135,7 +135,7 @@ void test_index_cache__two_levels(void) memset(&entry, 0x0, sizeof(entry)); entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&entry.id, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); entry.path = "top-level.txt"; cl_git_pass(git_index_add(index, &entry)); @@ -159,7 +159,7 @@ void test_index_cache__two_levels(void) cl_assert(git_tree_cache_get(index->tree, "subdir")); entry.path = "top-level.txt"; - cl_git_pass(git_oid__fromstr(&entry.id, "3697d64be941a53d4ae8f6a271e4e3fa56b022cc", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "3697d64be941a53d4ae8f6a271e4e3fa56b022cc", GIT_OID_SHA1)); cl_git_pass(git_index_add(index, &entry)); /* writ out the index after we invalidate the root */ @@ -194,7 +194,7 @@ void test_index_cache__read_tree_children(void) memset(&entry, 0x0, sizeof(git_index_entry)); entry.path = "top-level"; entry.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); @@ -220,7 +220,7 @@ void test_index_cache__read_tree_children(void) /* override with a slightly different id, also dummy */ entry.path = "subdir/some-file"; - git_oid__fromstr(&entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); cl_assert_equal_i(-1, index->tree->entry_count); diff --git a/tests/libgit2/index/conflicts.c b/tests/libgit2/index/conflicts.c index 353886f7b53..cecdc5d3303 100644 --- a/tests/libgit2/index/conflicts.c +++ b/tests/libgit2/index/conflicts.c @@ -37,17 +37,17 @@ void test_index_conflicts__add(void) ancestor_entry.path = "test-one.txt"; ancestor_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 1); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); our_entry.path = "test-one.txt"; our_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, 2); - git_oid__fromstr(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); their_entry.path = "test-one.txt"; their_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 2); - git_oid__fromstr(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(repo_index, &ancestor_entry, &our_entry, &their_entry)); @@ -68,17 +68,17 @@ void test_index_conflicts__add_fixes_incorrect_stage(void) ancestor_entry.path = "test-one.txt"; ancestor_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 3); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); our_entry.path = "test-one.txt"; our_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, 1); - git_oid__fromstr(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); their_entry.path = "test-one.txt"; their_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&their_entry, 2); - git_oid__fromstr(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(repo_index, &ancestor_entry, &our_entry, &their_entry)); @@ -111,17 +111,17 @@ void test_index_conflicts__add_detects_invalid_filemode(void) ancestor_entry.path = "test-one.txt"; ancestor_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 3); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); our_entry.path = "test-one.txt"; our_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, 1); - git_oid__fromstr(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); their_entry.path = "test-one.txt"; their_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&their_entry, 2); - git_oid__fromstr(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); /* Corrupt the conflict entry's mode */ conflict_entry[i]->mode = 027431745; @@ -151,17 +151,17 @@ void test_index_conflicts__add_removes_stage_zero(void) ancestor_entry.path = "test-one.txt"; ancestor_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 3); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); our_entry.path = "test-one.txt"; our_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, 1); - git_oid__fromstr(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); their_entry.path = "test-one.txt"; their_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&their_entry, 2); - git_oid__fromstr(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(repo_index, &ancestor_entry, &our_entry, &their_entry)); @@ -189,13 +189,13 @@ void test_index_conflicts__get(void) cl_assert_equal_s("conflicts-one.txt", conflict_entry[0]->path); - git_oid__fromstr(&oid, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[0]->id); - git_oid__fromstr(&oid, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[1]->id); - git_oid__fromstr(&oid, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[2]->id); cl_git_pass(git_index_conflict_get(&conflict_entry[0], &conflict_entry[1], @@ -203,13 +203,13 @@ void test_index_conflicts__get(void) cl_assert_equal_s("conflicts-two.txt", conflict_entry[0]->path); - git_oid__fromstr(&oid, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[0]->id); - git_oid__fromstr(&oid, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[1]->id); - git_oid__fromstr(&oid, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[2]->id); } @@ -223,29 +223,29 @@ void test_index_conflicts__iterate(void) cl_git_pass(git_index_conflict_next(&conflict_entry[0], &conflict_entry[1], &conflict_entry[2], iterator)); - git_oid__fromstr(&oid, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[0]->id); cl_assert(git__strcmp(conflict_entry[0]->path, "conflicts-one.txt") == 0); - git_oid__fromstr(&oid, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[1]->id); cl_assert(git__strcmp(conflict_entry[0]->path, "conflicts-one.txt") == 0); - git_oid__fromstr(&oid, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[2]->id); cl_assert(git__strcmp(conflict_entry[0]->path, "conflicts-one.txt") == 0); cl_git_pass(git_index_conflict_next(&conflict_entry[0], &conflict_entry[1], &conflict_entry[2], iterator)); - git_oid__fromstr(&oid, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[0]->id); cl_assert(git__strcmp(conflict_entry[0]->path, "conflicts-two.txt") == 0); - git_oid__fromstr(&oid, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[1]->id); cl_assert(git__strcmp(conflict_entry[0]->path, "conflicts-two.txt") == 0); - git_oid__fromstr(&oid, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[2]->id); cl_assert(git__strcmp(conflict_entry[0]->path, "conflicts-two.txt") == 0); @@ -357,7 +357,7 @@ void test_index_conflicts__partial(void) ancestor_entry.path = "test-one.txt"; ancestor_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 1); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(repo_index, &ancestor_entry, NULL, NULL)); cl_assert(git_index_entrycount(repo_index) == 9); @@ -387,17 +387,17 @@ void test_index_conflicts__case_matters(void) ancestor_entry.path = upper_case; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, GIT_INDEX_STAGE_ANCESTOR); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); ancestor_entry.mode = GIT_FILEMODE_BLOB; our_entry.path = upper_case; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, GIT_INDEX_STAGE_OURS); - git_oid__fromstr(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); our_entry.mode = GIT_FILEMODE_BLOB; their_entry.path = upper_case; GIT_INDEX_ENTRY_STAGE_SET(&their_entry, GIT_INDEX_STAGE_THEIRS); - git_oid__fromstr(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); their_entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_conflict_add(repo_index, @@ -405,17 +405,17 @@ void test_index_conflicts__case_matters(void) ancestor_entry.path = mixed_case; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, GIT_INDEX_STAGE_ANCESTOR); - git_oid__fromstr(&ancestor_entry.id, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); ancestor_entry.mode = GIT_FILEMODE_BLOB; our_entry.path = mixed_case; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, GIT_INDEX_STAGE_ANCESTOR); - git_oid__fromstr(&our_entry.id, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); ancestor_entry.mode = GIT_FILEMODE_BLOB; their_entry.path = mixed_case; GIT_INDEX_ENTRY_STAGE_SET(&their_entry, GIT_INDEX_STAGE_THEIRS); - git_oid__fromstr(&their_entry.id, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); their_entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_conflict_add(repo_index, @@ -434,29 +434,29 @@ void test_index_conflicts__case_matters(void) correct_case = upper_case; cl_assert_equal_s(correct_case, conflict_entry[0]->path); - git_oid__fromstr(&oid, ignorecase ? CONFLICTS_TWO_ANCESTOR_OID : CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ignorecase ? CONFLICTS_TWO_ANCESTOR_OID : CONFLICTS_ONE_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[0]->id); cl_assert_equal_s(correct_case, conflict_entry[1]->path); - git_oid__fromstr(&oid, ignorecase ? CONFLICTS_TWO_OUR_OID : CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ignorecase ? CONFLICTS_TWO_OUR_OID : CONFLICTS_ONE_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[1]->id); cl_assert_equal_s(correct_case, conflict_entry[2]->path); - git_oid__fromstr(&oid, ignorecase ? CONFLICTS_TWO_THEIR_OID : CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ignorecase ? CONFLICTS_TWO_THEIR_OID : CONFLICTS_ONE_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[2]->id); cl_git_pass(git_index_conflict_get(&conflict_entry[0], &conflict_entry[1], &conflict_entry[2], repo_index, mixed_case)); cl_assert_equal_s(mixed_case, conflict_entry[0]->path); - git_oid__fromstr(&oid, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[0]->id); cl_assert_equal_s(mixed_case, conflict_entry[1]->path); - git_oid__fromstr(&oid, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[1]->id); cl_assert_equal_s(mixed_case, conflict_entry[2]->path); - git_oid__fromstr(&oid, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, CONFLICTS_TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&oid, &conflict_entry[2]->id); } diff --git a/tests/libgit2/index/crlf.c b/tests/libgit2/index/crlf.c index 0a7d51aed4d..e1788f18a7c 100644 --- a/tests/libgit2/index/crlf.c +++ b/tests/libgit2/index/crlf.c @@ -243,7 +243,7 @@ void test_index_crlf__autocrlf_false_no_attrs(void) cl_git_pass(git_index_add_bypath(g_index, "newfile.txt")); entry = git_index_get_bypath(g_index, "newfile.txt", 0); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, (GIT_EOL_NATIVE == GIT_EOL_CRLF) ? FILE_OID_CRLF : FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); @@ -262,7 +262,7 @@ void test_index_crlf__autocrlf_true_no_attrs(void) cl_git_pass(git_index_add_bypath(g_index, "newfile.txt")); entry = git_index_get_bypath(g_index, "newfile.txt", 0); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); } @@ -279,7 +279,7 @@ void test_index_crlf__autocrlf_input_no_attrs(void) cl_git_pass(git_index_add_bypath(g_index, "newfile.txt")); entry = git_index_get_bypath(g_index, "newfile.txt", 0); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); } @@ -298,7 +298,7 @@ void test_index_crlf__autocrlf_false_text_auto_attr(void) cl_git_pass(git_index_add_bypath(g_index, "newfile.txt")); entry = git_index_get_bypath(g_index, "newfile.txt", 0); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); } @@ -317,7 +317,7 @@ void test_index_crlf__autocrlf_true_text_auto_attr(void) cl_git_pass(git_index_add_bypath(g_index, "newfile.txt")); entry = git_index_get_bypath(g_index, "newfile.txt", 0); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); } @@ -336,7 +336,7 @@ void test_index_crlf__autocrlf_input_text_auto_attr(void) cl_git_pass(git_index_add_bypath(g_index, "newfile.txt")); entry = git_index_get_bypath(g_index, "newfile.txt", 0); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); } @@ -356,7 +356,7 @@ void test_index_crlf__safecrlf_true_autocrlf_input_text_auto_attr(void) entry = git_index_get_bypath(g_index, "newfile.txt", 0); cl_assert(entry); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); cl_git_mkfile("./crlf/newfile2.txt", FILE_CONTENTS_CRLF); @@ -377,7 +377,7 @@ void test_index_crlf__safecrlf_true_autocrlf_input_text__no_attr(void) entry = git_index_get_bypath(g_index, "newfile.txt", 0); cl_assert(entry); - cl_git_pass(git_oid__fromstr(&oid, FILE_OID_LF, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, FILE_OID_LF, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); cl_git_mkfile("./crlf/newfile2.txt", FILE_CONTENTS_CRLF); diff --git a/tests/libgit2/index/names.c b/tests/libgit2/index/names.c index 2a41100aac2..1121021e462 100644 --- a/tests/libgit2/index/names.c +++ b/tests/libgit2/index/names.c @@ -42,21 +42,21 @@ static void index_add_conflicts(void) entry.path = conflict[0]; entry.mode = GIT_FILEMODE_BLOB; GIT_INDEX_ENTRY_STAGE_SET(&entry, GIT_INDEX_STAGE_ANCESTOR); - git_oid__fromstr(&entry.id, "1f85ca51b8e0aac893a621b61a9c2661d6aa6d81", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "1f85ca51b8e0aac893a621b61a9c2661d6aa6d81", GIT_OID_SHA1); cl_git_pass(git_index_add(repo_index, &entry)); /* ours */ entry.path = conflict[1]; entry.mode = GIT_FILEMODE_BLOB; GIT_INDEX_ENTRY_STAGE_SET(&entry, GIT_INDEX_STAGE_OURS); - git_oid__fromstr(&entry.id, "1f85ca51b8e0aac893a621b61a9c2661d6aa6d81", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "1f85ca51b8e0aac893a621b61a9c2661d6aa6d81", GIT_OID_SHA1); cl_git_pass(git_index_add(repo_index, &entry)); /* theirs */ entry.path = conflict[2]; entry.mode = GIT_FILEMODE_BLOB; GIT_INDEX_ENTRY_STAGE_SET(&entry, GIT_INDEX_STAGE_THEIRS); - git_oid__fromstr(&entry.id, "1f85ca51b8e0aac893a621b61a9c2661d6aa6d81", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "1f85ca51b8e0aac893a621b61a9c2661d6aa6d81", GIT_OID_SHA1); cl_git_pass(git_index_add(repo_index, &entry)); } } diff --git a/tests/libgit2/index/read_index.c b/tests/libgit2/index/read_index.c index caaf40f7967..fbd671c2fe1 100644 --- a/tests/libgit2/index/read_index.c +++ b/tests/libgit2/index/read_index.c @@ -52,7 +52,7 @@ void test_index_read_index__maintains_stat_cache(void) /* add a new entry that will not have stat data */ memset(&new_entry, 0, sizeof(git_index_entry)); new_entry.path = "Hello"; - git_oid__fromstr(&new_entry.id, "0123456789012345678901234567890123456789", GIT_OID_SHA1); + git_oid_from_string(&new_entry.id, "0123456789012345678901234567890123456789", GIT_OID_SHA1); new_entry.file_size = 1234; new_entry.mode = 0100644; cl_git_pass(git_index_add(new_index, &new_entry)); @@ -82,7 +82,7 @@ static bool roundtrip_with_read_index(const char *tree_idstr) git_tree *tree; git_index *tree_index; - cl_git_pass(git_oid__fromstr(&tree_id, tree_idstr, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tree_id, tree_idstr, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &tree_id)); cl_git_pass(git_index_new(&tree_index)); cl_git_pass(git_index_read_tree(tree_index, tree)); @@ -117,7 +117,7 @@ void test_index_read_index__read_and_writes(void) index_opts.oid_type = GIT_OID_SHA1; - cl_git_pass(git_oid__fromstr(&tree_id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tree_id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &tree_id)); cl_git_pass(git_index_new_ext(&tree_index, &index_opts)); cl_git_pass(git_index_read_tree(tree_index, tree)); @@ -154,17 +154,17 @@ static void add_conflicts(git_index *index, const char *filename) ancestor_entry.path = filename; ancestor_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 1); - git_oid__fromstr(&ancestor_entry.id, ancestor_ids[conflict_idx], GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, ancestor_ids[conflict_idx], GIT_OID_SHA1); our_entry.path = filename; our_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, 2); - git_oid__fromstr(&our_entry.id, our_ids[conflict_idx], GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, our_ids[conflict_idx], GIT_OID_SHA1); their_entry.path = filename; their_entry.mode = 0100644; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 2); - git_oid__fromstr(&their_entry.id, their_ids[conflict_idx], GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, their_ids[conflict_idx], GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(index, &ancestor_entry, &our_entry, &their_entry)); @@ -178,7 +178,7 @@ void test_index_read_index__handles_conflicts(void) git_index_conflict_iterator *conflict_iterator; const git_index_entry *ancestor, *ours, *theirs; - cl_git_pass(git_oid__fromstr(&tree_id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tree_id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &tree_id)); cl_git_pass(git_index_new_ext(&index, NULL)); cl_git_pass(git_index_new_ext(&new_index, NULL)); diff --git a/tests/libgit2/index/rename.c b/tests/libgit2/index/rename.c index 9b132cb61b0..509601357f0 100644 --- a/tests/libgit2/index/rename.c +++ b/tests/libgit2/index/rename.c @@ -22,7 +22,7 @@ void test_index_rename__single_file(void) cl_git_pass(git_index_add_bypath(index, "lame.name.txt")); cl_assert(git_index_entrycount(index) == 1); - cl_git_pass(git_oid__fromstr(&expected, "d4fa8600b4f37d7516bef4816ae2c64dbf029e3a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, "d4fa8600b4f37d7516bef4816ae2c64dbf029e3a", GIT_OID_SHA1)); cl_assert(!git_index_find(&position, index, "lame.name.txt")); diff --git a/tests/libgit2/index/reuc.c b/tests/libgit2/index/reuc.c index 7d8766c57f7..6c7923d2ed5 100644 --- a/tests/libgit2/index/reuc.c +++ b/tests/libgit2/index/reuc.c @@ -38,9 +38,9 @@ void test_index_reuc__add(void) git_oid ancestor_oid, our_oid, their_oid; const git_index_reuc_entry *reuc; - git_oid__fromstr(&ancestor_oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); - git_oid__fromstr(&our_oid, ONE_OUR_OID, GIT_OID_SHA1); - git_oid__fromstr(&their_oid, ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_oid, ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_oid, ONE_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_reuc_add(repo_index, "newfile.txt", 0100644, &ancestor_oid, @@ -66,8 +66,8 @@ void test_index_reuc__add_no_ancestor(void) const git_index_reuc_entry *reuc; memset(&ancestor_oid, 0x0, sizeof(git_oid)); - git_oid__fromstr(&our_oid, ONE_OUR_OID, GIT_OID_SHA1); - git_oid__fromstr(&their_oid, ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_oid, ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_oid, ONE_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_reuc_add(repo_index, "newfile.txt", 0, NULL, @@ -100,11 +100,11 @@ void test_index_reuc__read_bypath(void) cl_assert(reuc->mode[0] == 0100644); cl_assert(reuc->mode[1] == 0100644); cl_assert(reuc->mode[2] == 0100644); - git_oid__fromstr(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); cl_assert(reuc = git_index_reuc_get_bypath(repo_index, "one.txt")); @@ -113,11 +113,11 @@ void test_index_reuc__read_bypath(void) cl_assert(reuc->mode[0] == 0100644); cl_assert(reuc->mode[1] == 0100644); cl_assert(reuc->mode[2] == 0100644); - git_oid__fromstr(&oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ONE_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ONE_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); } @@ -145,11 +145,11 @@ void test_index_reuc__ignore_case(void) cl_assert(reuc->mode[0] == 0100644); cl_assert(reuc->mode[1] == 0100644); cl_assert(reuc->mode[2] == 0100644); - git_oid__fromstr(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); } @@ -166,11 +166,11 @@ void test_index_reuc__read_byindex(void) cl_assert(reuc->mode[0] == 0100644); cl_assert(reuc->mode[1] == 0100644); cl_assert(reuc->mode[2] == 0100644); - git_oid__fromstr(&oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ONE_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, ONE_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); cl_assert(reuc = git_index_reuc_get_byindex(repo_index, 1)); @@ -179,11 +179,11 @@ void test_index_reuc__read_byindex(void) cl_assert(reuc->mode[0] == 0100644); cl_assert(reuc->mode[1] == 0100644); cl_assert(reuc->mode[2] == 0100644); - git_oid__fromstr(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); } @@ -200,9 +200,9 @@ void test_index_reuc__updates_existing(void) index_caps |= GIT_INDEX_CAPABILITY_IGNORE_CASE; cl_git_pass(git_index_set_caps(repo_index, index_caps)); - git_oid__fromstr(&ancestor_oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); - git_oid__fromstr(&our_oid, TWO_OUR_OID, GIT_OID_SHA1); - git_oid__fromstr(&their_oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_reuc_add(repo_index, "two.txt", 0100644, &ancestor_oid, @@ -219,11 +219,11 @@ void test_index_reuc__updates_existing(void) cl_assert(reuc = git_index_reuc_get_byindex(repo_index, 0)); cl_assert_equal_s("TWO.txt", reuc->path); - git_oid__fromstr(&oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); } @@ -245,11 +245,11 @@ void test_index_reuc__remove(void) cl_assert(reuc->mode[0] == 0100644); cl_assert(reuc->mode[1] == 0100644); cl_assert(reuc->mode[2] == 0100644); - git_oid__fromstr(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[0], &oid); - git_oid__fromstr(&oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_OUR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[1], &oid); - git_oid__fromstr(&oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_assert_equal_oid(&reuc->oid[2], &oid); } @@ -261,18 +261,18 @@ void test_index_reuc__write(void) git_index_clear(repo_index); /* Write out of order to ensure sorting is correct */ - git_oid__fromstr(&ancestor_oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); - git_oid__fromstr(&our_oid, TWO_OUR_OID, GIT_OID_SHA1); - git_oid__fromstr(&their_oid, TWO_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_oid, TWO_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_oid, TWO_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_oid, TWO_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_reuc_add(repo_index, "two.txt", 0100644, &ancestor_oid, 0100644, &our_oid, 0100644, &their_oid)); - git_oid__fromstr(&ancestor_oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); - git_oid__fromstr(&our_oid, ONE_OUR_OID, GIT_OID_SHA1); - git_oid__fromstr(&their_oid, ONE_THEIR_OID, GIT_OID_SHA1); + git_oid_from_string(&ancestor_oid, ONE_ANCESTOR_OID, GIT_OID_SHA1); + git_oid_from_string(&our_oid, ONE_OUR_OID, GIT_OID_SHA1); + git_oid_from_string(&their_oid, ONE_THEIR_OID, GIT_OID_SHA1); cl_git_pass(git_index_reuc_add(repo_index, "one.txt", 0100644, &ancestor_oid, diff --git a/tests/libgit2/index/tests.c b/tests/libgit2/index/tests.c index fb064ea2172..63486ff54a5 100644 --- a/tests/libgit2/index/tests.c +++ b/tests/libgit2/index/tests.c @@ -259,7 +259,7 @@ void test_index_tests__add(void) * This has been generated by executing the following * $ echo "hey there" | git hash-object --stdin */ - cl_git_pass(git_oid__fromstr(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); /* Add the new file to the index */ cl_git_pass(git_index_add_bypath(index, "test.txt")); @@ -304,7 +304,7 @@ void test_index_tests__add_frombuffer(void) * This has been generated by executing the following * $ echo "hey there" | git hash-object --stdin */ - cl_git_pass(git_oid__fromstr(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); /* Add the new file to the index */ memset(&entry, 0x0, sizeof(git_index_entry)); @@ -447,7 +447,7 @@ void test_index_tests__add_frombuffer_reset_entry(void) * This has been generated by executing the following * $ echo "hey there" | git hash-object --stdin */ - cl_git_pass(git_oid__fromstr(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); cl_git_pass(git_index_add_bypath(index, "test.txt")); @@ -511,7 +511,7 @@ void test_index_tests__add_issue_1397(void) * This has been generated by executing the following * $ git hash-object crlf_file.txt */ - cl_git_pass(git_oid__fromstr(&id1, "8312e0889a9cbab77c732b6bc39b51a683e3a318", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, "8312e0889a9cbab77c732b6bc39b51a683e3a318", GIT_OID_SHA1)); /* Make sure the initial SHA-1 is correct */ cl_assert((entry = git_index_get_bypath(index, "crlf_file.txt", 0)) != NULL); @@ -600,7 +600,7 @@ static void assert_add_fails(git_repository *repo, const char *fn) entry.path = fn; entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&entry.id, "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", GIT_OID_SHA1)); cl_git_fail(git_index_add(index, &entry)); @@ -708,7 +708,7 @@ void test_index_tests__write_tree_invalid_unowned_index(void) cl_git_pass(git_index_new_ext(&idx, &index_opts)); - cl_git_pass(git_oid__fromstr(&entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318", GIT_OID_SHA1)); entry.path = "foo"; entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(idx, &entry)); @@ -1150,12 +1150,12 @@ void test_index_tests__can_modify_while_iterating(void) * ensure that our iterator is backed by a snapshot and thus returns * the number of entries from when the iterator was created. */ - cl_git_pass(git_oid__fromstr(&new_entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&new_entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318", GIT_OID_SHA1)); new_entry.path = "newfile"; new_entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(index, &new_entry)); - cl_git_pass(git_oid__fromstr(&new_entry.id, "4141414141414141414141414141414141414141", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&new_entry.id, "4141414141414141414141414141414141414141", GIT_OID_SHA1)); new_entry.path = "Makefile"; new_entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(index, &new_entry)); diff --git a/tests/libgit2/index/tests256.c b/tests/libgit2/index/tests256.c index c720796d8bb..7f94ab23fff 100644 --- a/tests/libgit2/index/tests256.c +++ b/tests/libgit2/index/tests256.c @@ -273,7 +273,7 @@ void test_index_tests256__add(void) * This has been generated by executing the following * $ echo "hey there" | git hash-object --stdin */ - cl_git_pass(git_oid__fromstr(&id1, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id1, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); /* Add the new file to the index */ cl_git_pass(git_index_add_bypath(index, "test.txt")); @@ -320,7 +320,7 @@ void test_index_tests256__add_frombuffer(void) * This has been generated by executing the following * $ echo "hey there" | git hash-object --stdin */ - cl_git_pass(git_oid__fromstr(&id1, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id1, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); /* Add the new file to the index */ memset(&entry, 0x0, sizeof(git_index_entry)); @@ -469,7 +469,7 @@ void test_index_tests256__add_frombuffer_reset_entry(void) * This has been generated by executing the following * $ echo "hey there" | git hash-object --stdin */ - cl_git_pass(git_oid__fromstr(&id1, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id1, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); cl_git_pass(git_index_add_bypath(index, "test.txt")); @@ -588,7 +588,7 @@ static void assert_add_fails(git_repository *repo, const char *fn) entry.path = fn; entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&entry.id, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&entry.id, "aea29dc305d40e362df25c3fdeed5502fd56b182af01b7740d297a24459333c5", GIT_OID_SHA256)); cl_git_fail(git_index_add(index, &entry)); @@ -703,7 +703,7 @@ void test_index_tests256__write_tree_invalid_unowned_index(void) cl_git_pass(git_index_new_ext(&idx, &index_opts)); /* TODO: this one is failing */ - cl_git_pass(git_oid__fromstr(&entry.id, "a8c2e0a89a9cbab77c732b6bc39b51a783e3a318a847f46cba7614cac9814291", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&entry.id, "a8c2e0a89a9cbab77c732b6bc39b51a783e3a318a847f46cba7614cac9814291", GIT_OID_SHA256)); entry.path = "foo"; entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(idx, &entry)); @@ -1181,12 +1181,12 @@ void test_index_tests256__can_modify_while_iterating(void) * ensure that our iterator is backed by a snapshot and thus returns * the number of entries from when the iterator was created. */ - cl_git_pass(git_oid__fromstr(&new_entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318a847f46cba7614cac9814291", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&new_entry.id, "8312e0a89a9cbab77c732b6bc39b51a783e3a318a847f46cba7614cac9814291", GIT_OID_SHA256)); new_entry.path = "newfile"; new_entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(index, &new_entry)); - cl_git_pass(git_oid__fromstr(&new_entry.id, "4141414141414141414141414141414141414141414141414141414141414141", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&new_entry.id, "4141414141414141414141414141414141414141414141414141414141414141", GIT_OID_SHA256)); new_entry.path = "Makefile"; new_entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(index, &new_entry)); diff --git a/tests/libgit2/iterator/index.c b/tests/libgit2/iterator/index.c index e5ebec60c18..2f50bfab022 100644 --- a/tests/libgit2/iterator/index.c +++ b/tests/libgit2/iterator/index.c @@ -52,7 +52,7 @@ static void index_iterator_test( if (expected_oids != NULL) { git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, expected_oids[count], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, expected_oids[count], GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &entry->id); } @@ -999,7 +999,7 @@ static void create_paths(git_index *index, const char *root, int depth) memset(&entry, 0, sizeof(git_index_entry)); entry.path = fullpath.ptr; entry.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&entry.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); } else if (depth > 0) { @@ -1296,17 +1296,17 @@ static void add_conflict( ancestor.path = ancestor_path; ancestor.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&ancestor.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); + git_oid_from_string(&ancestor.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); GIT_INDEX_ENTRY_STAGE_SET(&ancestor, 1); ours.path = our_path; ours.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&ours.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); + git_oid_from_string(&ours.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); GIT_INDEX_ENTRY_STAGE_SET(&ours, 2); theirs.path = their_path; theirs.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&theirs.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); + git_oid_from_string(&theirs.id, "d44e18fb93b7107b5cd1b95d601591d77869a1b6", GIT_OID_SHA1); GIT_INDEX_ENTRY_STAGE_SET(&theirs, 3); cl_git_pass(git_index_conflict_add(index, &ancestor, &ours, &theirs)); diff --git a/tests/libgit2/iterator/tree.c b/tests/libgit2/iterator/tree.c index 81035bb8deb..3ebf49d4091 100644 --- a/tests/libgit2/iterator/tree.c +++ b/tests/libgit2/iterator/tree.c @@ -675,7 +675,7 @@ void test_iterator_tree__case_conflicts_0(void) g_repo = cl_git_sandbox_init("icase"); - cl_git_pass(git_oid__fromstr(&blob_id, blob_sha, GIT_OID_SHA1)); /* lookup blob */ + cl_git_pass(git_oid_from_string(&blob_id, blob_sha, GIT_OID_SHA1)); /* lookup blob */ /* create tree with: A/1.file, A/3.file, a/2.file, a/4.file */ build_test_tree( @@ -729,7 +729,7 @@ void test_iterator_tree__case_conflicts_1(void) g_repo = cl_git_sandbox_init("icase"); - cl_git_pass(git_oid__fromstr(&blob_id, blob_sha, GIT_OID_SHA1)); /* lookup blob */ + cl_git_pass(git_oid_from_string(&blob_id, blob_sha, GIT_OID_SHA1)); /* lookup blob */ /* create: A/a A/b/1 A/c a/a a/b a/C */ build_test_tree(&Ab_id, g_repo, "b|1|", &blob_id); @@ -798,7 +798,7 @@ void test_iterator_tree__case_conflicts_2(void) g_repo = cl_git_sandbox_init("icase"); - cl_git_pass(git_oid__fromstr(&blob_id, blob_sha, GIT_OID_SHA1)); /* lookup blob */ + cl_git_pass(git_oid_from_string(&blob_id, blob_sha, GIT_OID_SHA1)); /* lookup blob */ build_test_tree(&d1, g_repo, "b|16|,b|foo|", &blob_id, &blob_id); build_test_tree(&d2, g_repo, "b|15|,b|FOO|", &blob_id, &blob_id); diff --git a/tests/libgit2/iterator/workdir.c b/tests/libgit2/iterator/workdir.c index 327f1f65b66..59feb4546c8 100644 --- a/tests/libgit2/iterator/workdir.c +++ b/tests/libgit2/iterator/workdir.c @@ -1514,7 +1514,7 @@ void test_iterator_workdir__hash_when_requested(void) for (i = 0; i < sizeof(expected) / sizeof(struct merge_index_entry); i++) { cl_git_pass(git_iterator_advance(&entry, iter)); - cl_git_pass(git_oid__fromstr(&expected_id, expected[i].oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, expected[i].oid_str, GIT_OID_SHA1)); cl_assert_equal_oid(&expected_id, &entry->id); cl_assert_equal_s(expected[i].path, entry->path); } diff --git a/tests/libgit2/merge/driver.c b/tests/libgit2/merge/driver.c index fd73c3770a9..16780afba57 100644 --- a/tests/libgit2/merge/driver.c +++ b/tests/libgit2/merge/driver.c @@ -22,7 +22,7 @@ void test_merge_driver__initialize(void) repo = cl_git_sandbox_init(TEST_REPO_PATH); git_repository_index(&repo_index, repo); - git_oid__fromstr(&automergeable_id, AUTOMERGEABLE_IDSTR, GIT_OID_SHA1); + git_oid_from_string(&automergeable_id, AUTOMERGEABLE_IDSTR, GIT_OID_SHA1); /* Ensure that the user's merge.conflictstyle doesn't interfere */ cl_git_pass(git_repository_config(&cfg, repo)); @@ -145,7 +145,7 @@ static void merge_branch(void) git_oid their_id; git_annotated_commit *their_head; - cl_git_pass(git_oid__fromstr(&their_id, BRANCH_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_id, BRANCH_ID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_head, repo, &their_id)); cl_git_pass(git_merge(repo, (const git_annotated_commit **)&their_head, @@ -299,7 +299,7 @@ void test_merge_driver__default_can_be_specified(void) merge_opts.default_driver = "custom"; - cl_git_pass(git_oid__fromstr(&their_id, BRANCH_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_id, BRANCH_ID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_head, repo, &their_id)); cl_git_pass(git_merge(repo, (const git_annotated_commit **)&their_head, diff --git a/tests/libgit2/merge/files.c b/tests/libgit2/merge/files.c index 6c1c2e13f78..0f2dfbdf428 100644 --- a/tests/libgit2/merge/files.c +++ b/tests/libgit2/merge/files.c @@ -149,15 +149,15 @@ void test_merge_files__automerge_from_index(void) git_merge_file_result result = {0}; git_index_entry ancestor, ours, theirs; - git_oid__fromstr(&ancestor.id, "6212c31dab5e482247d7977e4f0dd3601decf13b", GIT_OID_SHA1); + git_oid_from_string(&ancestor.id, "6212c31dab5e482247d7977e4f0dd3601decf13b", GIT_OID_SHA1); ancestor.path = "automergeable.txt"; ancestor.mode = 0100644; - git_oid__fromstr(&ours.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); + git_oid_from_string(&ours.id, "ee3fa1b8c00aff7fe02065fdb50864bb0d932ccf", GIT_OID_SHA1); ours.path = "automergeable.txt"; ours.mode = 0100755; - git_oid__fromstr(&theirs.id, "058541fc37114bfc1dddf6bd6bffc7fae5c2e6fe", GIT_OID_SHA1); + git_oid_from_string(&theirs.id, "058541fc37114bfc1dddf6bd6bffc7fae5c2e6fe", GIT_OID_SHA1); theirs.path = "newname.txt"; theirs.mode = 0100644; diff --git a/tests/libgit2/merge/merge_helpers.c b/tests/libgit2/merge/merge_helpers.c index 1406987e53f..3746c191ae4 100644 --- a/tests/libgit2/merge/merge_helpers.c +++ b/tests/libgit2/merge/merge_helpers.c @@ -165,7 +165,7 @@ static int index_entry_eq_merge_index_entry(const struct merge_index_entry *expe bool test_oid; if (strlen(expected->oid_str) != 0) { - cl_git_pass(git_oid__fromstr(&expected_oid, expected->oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected->oid_str, GIT_OID_SHA1)); test_oid = 1; } else test_oid = 0; @@ -304,21 +304,21 @@ int merge_test_reuc(git_index *index, const struct merge_reuc_entry expected[], return 0; if (expected[i].ancestor_mode > 0) { - cl_git_pass(git_oid__fromstr(&expected_oid, expected[i].ancestor_oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected[i].ancestor_oid_str, GIT_OID_SHA1)); if (git_oid_cmp(&reuc_entry->oid[0], &expected_oid) != 0) return 0; } if (expected[i].our_mode > 0) { - cl_git_pass(git_oid__fromstr(&expected_oid, expected[i].our_oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected[i].our_oid_str, GIT_OID_SHA1)); if (git_oid_cmp(&reuc_entry->oid[1], &expected_oid) != 0) return 0; } if (expected[i].their_mode > 0) { - cl_git_pass(git_oid__fromstr(&expected_oid, expected[i].their_oid_str, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected[i].their_oid_str, GIT_OID_SHA1)); if (git_oid_cmp(&reuc_entry->oid[2], &expected_oid) != 0) return 0; @@ -353,7 +353,7 @@ int merge_test_workdir(git_repository *repo, const struct merge_index_entry expe for (i = 0; i < expected_len; i++) { git_blob_create_from_workdir(&actual_oid, repo, expected[i].path); - git_oid__fromstr(&expected_oid, expected[i].oid_str, GIT_OID_SHA1); + git_oid_from_string(&expected_oid, expected[i].oid_str, GIT_OID_SHA1); if (git_oid_cmp(&actual_oid, &expected_oid) != 0) return 0; diff --git a/tests/libgit2/merge/trees/renames.c b/tests/libgit2/merge/trees/renames.c index 9507b51bc9e..a93d4751756 100644 --- a/tests/libgit2/merge/trees/renames.c +++ b/tests/libgit2/merge/trees/renames.c @@ -286,7 +286,7 @@ void test_merge_trees_renames__cache_recomputation(void) void *data; size_t i; - cl_git_pass(git_oid__fromstr(&blob, "a2d8d1824c68541cca94ffb90f79291eba495921", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&blob, "a2d8d1824c68541cca94ffb90f79291eba495921", GIT_OID_SHA1)); /* * Create a 50MB blob that consists of NUL bytes only. It is important diff --git a/tests/libgit2/merge/trees/treediff.c b/tests/libgit2/merge/trees/treediff.c index 094018d3cf6..5c786f12250 100644 --- a/tests/libgit2/merge/trees/treediff.c +++ b/tests/libgit2/merge/trees/treediff.c @@ -61,9 +61,9 @@ static void test_find_differences( opts.metric->similarity = git_diff_find_similar__calc_similarity; opts.metric->payload = (void *)GIT_HASHSIG_SMART_WHITESPACE; - cl_git_pass(git_oid__fromstr(&ancestor_oid, ancestor_oidstr, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&ours_oid, ours_oidstr, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&theirs_oid, theirs_oidstr, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&ancestor_oid, ancestor_oidstr, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&ours_oid, ours_oidstr, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&theirs_oid, theirs_oidstr, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&ancestor_tree, repo, &ancestor_oid)); cl_git_pass(git_tree_lookup(&ours_tree, repo, &ours_oid)); diff --git a/tests/libgit2/merge/trees/trivial.c b/tests/libgit2/merge/trees/trivial.c index 287a53cfe7a..41c2408d52f 100644 --- a/tests/libgit2/merge/trees/trivial.c +++ b/tests/libgit2/merge/trees/trivial.c @@ -258,7 +258,7 @@ void test_merge_trees_trivial__13(void) cl_git_pass(merge_trivial(&result, "trivial-13", "trivial-13-branch")); cl_assert(entry = git_index_get_bypath(result, "modified-in-13.txt", 0)); - cl_git_pass(git_oid__fromstr(&expected_oid, "1cff9ec6a47a537380dedfdd17c9e76d74259a2b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, "1cff9ec6a47a537380dedfdd17c9e76d74259a2b", GIT_OID_SHA1)); cl_assert_equal_oid(&expected_oid, &entry->id); cl_assert(git_index_reuc_entrycount(result) == 0); @@ -277,7 +277,7 @@ void test_merge_trees_trivial__14(void) cl_git_pass(merge_trivial(&result, "trivial-14", "trivial-14-branch")); cl_assert(entry = git_index_get_bypath(result, "modified-in-14-branch.txt", 0)); - cl_git_pass(git_oid__fromstr(&expected_oid, "26153a3ff3649b6c2bb652d3f06878c6e0a172f9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, "26153a3ff3649b6c2bb652d3f06878c6e0a172f9", GIT_OID_SHA1)); cl_assert(git_oid_cmp(&entry->id, &expected_oid) == 0); cl_assert(git_index_reuc_entrycount(result) == 0); diff --git a/tests/libgit2/merge/workdir/dirty.c b/tests/libgit2/merge/workdir/dirty.c index 570e7c759e5..82d93b6c069 100644 --- a/tests/libgit2/merge/workdir/dirty.c +++ b/tests/libgit2/merge/workdir/dirty.c @@ -94,7 +94,7 @@ static int merge_branch(void) git_checkout_options checkout_opts = GIT_CHECKOUT_OPTIONS_INIT; int error; - cl_git_pass(git_oid__fromstr(&their_oids[0], MERGE_BRANCH_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oids[0], MERGE_BRANCH_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_head, repo, &their_oids[0])); error = git_merge(repo, (const git_annotated_commit **)&their_head, 1, &merge_opts, &checkout_opts); diff --git a/tests/libgit2/merge/workdir/setup.c b/tests/libgit2/merge/workdir/setup.c index 98ccdf700e0..84496c436e1 100644 --- a/tests/libgit2/merge/workdir/setup.c +++ b/tests/libgit2/merge/workdir/setup.c @@ -78,7 +78,7 @@ void test_merge_workdir_setup__one_branch(void) git_reference *octo1_ref; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -104,10 +104,10 @@ void test_merge_workdir_setup__one_oid(void) git_oid octo1_oid; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &octo1_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 1)); @@ -129,7 +129,7 @@ void test_merge_workdir_setup__two_branches(void) git_reference *octo2_ref; git_annotated_commit *our_head, *their_heads[2]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -162,7 +162,7 @@ void test_merge_workdir_setup__three_branches(void) git_reference *octo3_ref; git_annotated_commit *our_head, *their_heads[3]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -200,16 +200,16 @@ void test_merge_workdir_setup__three_oids(void) git_oid octo3_oid; git_annotated_commit *our_head, *their_heads[3]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &octo1_oid)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[1], repo, &octo2_oid)); - cl_git_pass(git_oid__fromstr(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[2], repo, &octo3_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 3)); @@ -233,13 +233,13 @@ void test_merge_workdir_setup__branches_and_oids_1(void) git_oid octo2_oid; git_annotated_commit *our_head, *their_heads[2]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); cl_git_pass(git_annotated_commit_from_ref(&their_heads[0], repo, octo1_ref)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[1], repo, &octo2_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 2)); @@ -266,19 +266,19 @@ void test_merge_workdir_setup__branches_and_oids_2(void) git_oid octo4_oid; git_annotated_commit *our_head, *their_heads[4]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); cl_git_pass(git_annotated_commit_from_ref(&their_heads[0], repo, octo1_ref)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[1], repo, &octo2_oid)); cl_git_pass(git_reference_lookup(&octo3_ref, repo, GIT_REFS_HEADS_DIR OCTO3_BRANCH)); cl_git_pass(git_annotated_commit_from_ref(&their_heads[2], repo, octo3_ref)); - cl_git_pass(git_oid__fromstr(&octo4_oid, OCTO4_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo4_oid, OCTO4_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[3], repo, &octo4_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 4)); @@ -308,16 +308,16 @@ void test_merge_workdir_setup__branches_and_oids_3(void) git_reference *octo4_ref; git_annotated_commit *our_head, *their_heads[4]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &octo1_oid)); cl_git_pass(git_reference_lookup(&octo2_ref, repo, GIT_REFS_HEADS_DIR OCTO2_BRANCH)); cl_git_pass(git_annotated_commit_from_ref(&their_heads[1], repo, octo2_ref)); - cl_git_pass(git_oid__fromstr(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[2], repo, &octo3_oid)); cl_git_pass(git_reference_lookup(&octo4_ref, repo, GIT_REFS_HEADS_DIR OCTO4_BRANCH)); @@ -351,16 +351,16 @@ void test_merge_workdir_setup__branches_and_oids_4(void) git_reference *octo5_ref; git_annotated_commit *our_head, *their_heads[5]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &octo1_oid)); cl_git_pass(git_reference_lookup(&octo2_ref, repo, GIT_REFS_HEADS_DIR OCTO2_BRANCH)); cl_git_pass(git_annotated_commit_from_ref(&their_heads[1], repo, octo2_ref)); - cl_git_pass(git_oid__fromstr(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[2], repo, &octo3_oid)); cl_git_pass(git_reference_lookup(&octo4_ref, repo, GIT_REFS_HEADS_DIR OCTO4_BRANCH)); @@ -397,7 +397,7 @@ void test_merge_workdir_setup__three_same_branches(void) git_reference *octo1_3_ref; git_annotated_commit *our_head, *their_heads[3]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -435,16 +435,16 @@ void test_merge_workdir_setup__three_same_oids(void) git_oid octo1_3_oid; git_annotated_commit *our_head, *their_heads[3]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &octo1_1_oid)); - cl_git_pass(git_oid__fromstr(&octo1_2_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_2_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[1], repo, &octo1_2_oid)); - cl_git_pass(git_oid__fromstr(&octo1_3_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_3_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[2], repo, &octo1_3_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 3)); @@ -512,7 +512,7 @@ void test_merge_workdir_setup__remote_tracking_one_branch(void) cl_git_pass(create_remote_tracking_branch(OCTO1_BRANCH, OCTO1_OID)); - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_REMOTES_DIR "origin/" OCTO1_BRANCH)); @@ -542,7 +542,7 @@ void test_merge_workdir_setup__remote_tracking_two_branches(void) cl_git_pass(create_remote_tracking_branch(OCTO1_BRANCH, OCTO1_OID)); cl_git_pass(create_remote_tracking_branch(OCTO2_BRANCH, OCTO2_OID)); - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_REMOTES_DIR "origin/" OCTO1_BRANCH)); @@ -579,7 +579,7 @@ void test_merge_workdir_setup__remote_tracking_three_branches(void) cl_git_pass(create_remote_tracking_branch(OCTO2_BRANCH, OCTO2_OID)); cl_git_pass(create_remote_tracking_branch(OCTO3_BRANCH, OCTO3_OID)); - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_REMOTES_DIR "origin/" OCTO1_BRANCH)); @@ -618,7 +618,7 @@ void test_merge_workdir_setup__normal_branch_and_remote_tracking_branch(void) cl_git_pass(create_remote_tracking_branch(OCTO2_BRANCH, OCTO2_OID)); - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -652,7 +652,7 @@ void test_merge_workdir_setup__remote_tracking_branch_and_normal_branch(void) cl_git_pass(create_remote_tracking_branch(OCTO1_BRANCH, OCTO1_OID)); - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_REMOTES_DIR "origin/" OCTO1_BRANCH)); @@ -689,7 +689,7 @@ void test_merge_workdir_setup__two_remote_tracking_branch_and_two_normal_branche cl_git_pass(create_remote_tracking_branch(OCTO2_BRANCH, OCTO2_OID)); cl_git_pass(create_remote_tracking_branch(OCTO4_BRANCH, OCTO4_OID)); - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -730,10 +730,10 @@ void test_merge_workdir_setup__pull_one(void) git_oid octo1_1_oid; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[0], repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH, "http://remote.url/repo.git", &octo1_1_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 1)); @@ -755,13 +755,13 @@ void test_merge_workdir_setup__pull_two(void) git_oid octo2_oid; git_annotated_commit *our_head, *their_heads[2]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[0], repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH, "http://remote.url/repo.git", &octo1_oid)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[1], repo, GIT_REFS_HEADS_DIR OCTO2_BRANCH, "http://remote.url/repo.git", &octo2_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 2)); @@ -785,16 +785,16 @@ void test_merge_workdir_setup__pull_three(void) git_oid octo3_oid; git_annotated_commit *our_head, *their_heads[3]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[0], repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH, "http://remote.url/repo.git", &octo1_oid)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[1], repo, GIT_REFS_HEADS_DIR OCTO2_BRANCH, "http://remote.url/repo.git", &octo2_oid)); - cl_git_pass(git_oid__fromstr(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[2], repo, GIT_REFS_HEADS_DIR OCTO3_BRANCH, "http://remote.url/repo.git", &octo3_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 3)); @@ -818,16 +818,16 @@ void test_merge_workdir_setup__three_remotes(void) git_oid octo3_oid; git_annotated_commit *our_head, *their_heads[3]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[0], repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH, "http://remote.first/repo.git", &octo1_oid)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[1], repo, GIT_REFS_HEADS_DIR OCTO2_BRANCH, "http://remote.second/repo.git", &octo2_oid)); - cl_git_pass(git_oid__fromstr(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[2], repo, GIT_REFS_HEADS_DIR OCTO3_BRANCH, "http://remote.third/repo.git", &octo3_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 3)); @@ -852,19 +852,19 @@ void test_merge_workdir_setup__two_remotes(void) git_oid octo4_oid; git_annotated_commit *our_head, *their_heads[4]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); - cl_git_pass(git_oid__fromstr(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo1_oid, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[0], repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH, "http://remote.first/repo.git", &octo1_oid)); - cl_git_pass(git_oid__fromstr(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo2_oid, OCTO2_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[1], repo, GIT_REFS_HEADS_DIR OCTO2_BRANCH, "http://remote.second/repo.git", &octo2_oid)); - cl_git_pass(git_oid__fromstr(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo3_oid, OCTO3_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[2], repo, GIT_REFS_HEADS_DIR OCTO3_BRANCH, "http://remote.first/repo.git", &octo3_oid)); - cl_git_pass(git_oid__fromstr(&octo4_oid, OCTO4_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&octo4_oid, OCTO4_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&their_heads[3], repo, GIT_REFS_HEADS_DIR OCTO4_BRANCH, "http://remote.second/repo.git", &octo4_oid)); cl_git_pass(git_merge__setup(repo, our_head, (const git_annotated_commit **)their_heads, 4)); @@ -888,7 +888,7 @@ void test_merge_workdir_setup__id_from_head(void) git_reference *ref; git_annotated_commit *heads[3]; - cl_git_pass(git_oid__fromstr(&expected_id, OCTO1_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, OCTO1_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_fetchhead(&heads[0], repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH, "http://remote.url/repo.git", &expected_id)); id = git_annotated_commit_id(heads[0]); cl_assert_equal_i(1, git_oid_equal(id, &expected_id)); @@ -920,7 +920,7 @@ static int annotated_commit_foreach_cb(const git_oid *oid, void *payload) git_oid expected_oid; struct annotated_commit_cb_data *cb_data = payload; - git_oid__fromstr(&expected_oid, cb_data->oid_str[cb_data->i], GIT_OID_SHA1); + git_oid_from_string(&expected_oid, cb_data->oid_str[cb_data->i], GIT_OID_SHA1); cl_assert(git_oid_cmp(&expected_oid, oid) == 0); cb_data->i++; return 0; @@ -998,7 +998,7 @@ void test_merge_workdir_setup__retained_after_success(void) git_reference *octo1_ref; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -1025,7 +1025,7 @@ void test_merge_workdir_setup__removed_after_failure(void) git_reference *octo1_ref; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -1052,7 +1052,7 @@ void test_merge_workdir_setup__unlocked_after_success(void) git_reference *octo1_ref; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); @@ -1075,7 +1075,7 @@ void test_merge_workdir_setup__unlocked_after_conflict(void) git_reference *octo1_ref; git_annotated_commit *our_head, *their_heads[1]; - cl_git_pass(git_oid__fromstr(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, ORIG_HEAD, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&our_head, repo, &our_oid)); cl_git_pass(git_reference_lookup(&octo1_ref, repo, GIT_REFS_HEADS_DIR OCTO1_BRANCH)); diff --git a/tests/libgit2/merge/workdir/simple.c b/tests/libgit2/merge/workdir/simple.c index 17faabff06c..c92277d8599 100644 --- a/tests/libgit2/merge/workdir/simple.c +++ b/tests/libgit2/merge/workdir/simple.c @@ -99,7 +99,7 @@ static void merge_simple_branch(int merge_file_favor, int addl_checkout_strategy git_merge_options merge_opts = GIT_MERGE_OPTIONS_INIT; git_checkout_options checkout_opts = GIT_CHECKOUT_OPTIONS_INIT; - cl_git_pass(git_oid__fromstr(&their_oids[0], THEIRS_SIMPLE_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oids[0], THEIRS_SIMPLE_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &their_oids[0])); merge_opts.file_favor = merge_file_favor; @@ -180,14 +180,14 @@ void test_merge_workdir_simple__index_reload(void) cl_git_pass(git_index_read(repo_index, 0)); entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&entry.id, "11deab00b2d3a6f5a3073988ac050c2d7b6655e2", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "11deab00b2d3a6f5a3073988ac050c2d7b6655e2", GIT_OID_SHA1)); entry.path = "automergeable.txt"; cl_git_pass(git_index_add(repo_index, &entry)); cl_git_pass(git_index_add_bypath(tmp_index, "automergeable.txt")); cl_git_pass(git_index_write(tmp_index)); - cl_git_pass(git_oid__fromstr(&their_oid, THEIRS_SIMPLE_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oid, THEIRS_SIMPLE_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &their_oid)); cl_git_pass(git_merge(repo, (const git_annotated_commit **)their_heads, 1, NULL, NULL)); @@ -669,7 +669,7 @@ void test_merge_workdir_simple__directory_file(void) cl_git_pass(git_commit_lookup(&head_commit, repo, &head_commit_id)); cl_git_pass(git_reset(repo, (git_object *)head_commit, GIT_RESET_HARD, NULL)); - cl_git_pass(git_oid__fromstr(&their_oids[0], THEIRS_DIRECTORY_FILE, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oids[0], THEIRS_DIRECTORY_FILE, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &their_oids[0])); merge_opts.file_favor = 0; @@ -700,7 +700,7 @@ void test_merge_workdir_simple__unrelated(void) { 0100644, "c8f06f2e3bb2964174677e91f0abead0e43c9e5d", 0, "unchanged.txt" }, }; - cl_git_pass(git_oid__fromstr(&their_oids[0], THEIRS_UNRELATED_PARENT, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oids[0], THEIRS_UNRELATED_PARENT, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &their_oids[0])); merge_opts.file_favor = 0; @@ -731,7 +731,7 @@ void test_merge_workdir_simple__unrelated_with_conflicts(void) { 0100644, "c8f06f2e3bb2964174677e91f0abead0e43c9e5d", 0, "unchanged.txt" }, }; - cl_git_pass(git_oid__fromstr(&their_oids[0], THEIRS_UNRELATED_OID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oids[0], THEIRS_UNRELATED_OID, GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&their_heads[0], repo, &their_oids[0])); merge_opts.file_favor = 0; @@ -755,8 +755,8 @@ void test_merge_workdir_simple__binary(void) { 0100644, "836b8b82b26cab22eaaed8820877c76d6c8bca19", 3, "binary" }, }; - cl_git_pass(git_oid__fromstr(&our_oid, "cc338e4710c9b257106b8d16d82f86458d5beaf1", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&their_oid, "ad01aebfdf2ac13145efafe3f9fcf798882f1730", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_oid, "cc338e4710c9b257106b8d16d82f86458d5beaf1", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&their_oid, "ad01aebfdf2ac13145efafe3f9fcf798882f1730", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&our_commit, repo, &our_oid)); cl_git_pass(git_reset(repo, (git_object *)our_commit, GIT_RESET_HARD, NULL)); @@ -770,7 +770,7 @@ void test_merge_workdir_simple__binary(void) cl_git_pass(git_index_add_bypath(repo_index, "binary")); cl_assert((binary_entry = git_index_get_bypath(repo_index, "binary", 0)) != NULL); - cl_git_pass(git_oid__fromstr(&our_file_oid, "23ed141a6ae1e798b2f721afedbe947c119111ba", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&our_file_oid, "23ed141a6ae1e798b2f721afedbe947c119111ba", GIT_OID_SHA1)); cl_assert(git_oid_cmp(&binary_entry->id, &our_file_oid) == 0); git_annotated_commit_free(their_head); diff --git a/tests/libgit2/merge/workdir/trivial.c b/tests/libgit2/merge/workdir/trivial.c index 364182c8993..88ce033329a 100644 --- a/tests/libgit2/merge/workdir/trivial.c +++ b/tests/libgit2/merge/workdir/trivial.c @@ -222,7 +222,7 @@ void test_merge_workdir_trivial__13(void) cl_git_pass(merge_trivial("trivial-13", "trivial-13-branch")); cl_assert(entry = git_index_get_bypath(repo_index, "modified-in-13.txt", 0)); - cl_git_pass(git_oid__fromstr(&expected_oid, "1cff9ec6a47a537380dedfdd17c9e76d74259a2b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, "1cff9ec6a47a537380dedfdd17c9e76d74259a2b", GIT_OID_SHA1)); cl_assert(git_oid_cmp(&entry->id, &expected_oid) == 0); cl_assert(git_index_reuc_entrycount(repo_index) == 0); @@ -238,7 +238,7 @@ void test_merge_workdir_trivial__14(void) cl_git_pass(merge_trivial("trivial-14", "trivial-14-branch")); cl_assert(entry = git_index_get_bypath(repo_index, "modified-in-14-branch.txt", 0)); - cl_git_pass(git_oid__fromstr(&expected_oid, "26153a3ff3649b6c2bb652d3f06878c6e0a172f9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, "26153a3ff3649b6c2bb652d3f06878c6e0a172f9", GIT_OID_SHA1)); cl_assert(git_oid_cmp(&entry->id, &expected_oid) == 0); cl_assert(git_index_reuc_entrycount(repo_index) == 0); diff --git a/tests/libgit2/network/remote/rename.c b/tests/libgit2/network/remote/rename.c index e02a4ce35c3..39e91fa23f4 100644 --- a/tests/libgit2/network/remote/rename.c +++ b/tests/libgit2/network/remote/rename.c @@ -170,7 +170,7 @@ void test_network_remote_rename__overwrite_ref_in_target(void) git_branch_iterator *iter; git_strarray problems = {0}; - cl_git_pass(git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); cl_git_pass(git_reference_create(&ref, _repo, "refs/remotes/renamed/master", &id, 1, NULL)); git_reference_free(ref); diff --git a/tests/libgit2/notes/notes.c b/tests/libgit2/notes/notes.c index 06c4409551b..fb0a70d059c 100644 --- a/tests/libgit2/notes/notes.c +++ b/tests/libgit2/notes/notes.c @@ -33,7 +33,7 @@ static void create_note(git_oid *note_oid, const char *canonical_namespace, cons { git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, target_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, target_sha, GIT_OID_SHA1)); cl_git_pass(git_note_create(note_oid, _repo, canonical_namespace, _sig, _sig, &oid, message, 0)); } @@ -60,10 +60,10 @@ static int note_list_cb( cl_assert(*count < EXPECTATIONS_COUNT); - cl_git_pass(git_oid__fromstr(&expected_note_oid, list_expectations[*count].note_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_note_oid, list_expectations[*count].note_sha, GIT_OID_SHA1)); cl_assert_equal_oid(&expected_note_oid, blob_id); - cl_git_pass(git_oid__fromstr(&expected_target_oid, list_expectations[*count].annotated_object_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_target_oid, list_expectations[*count].annotated_object_sha, GIT_OID_SHA1)); cl_assert_equal_oid(&expected_target_oid, annotated_obj_id); (*count)++; @@ -85,12 +85,12 @@ static int note_list_create_cb( size_t i; for (i = 0; notes[i].note_oid != NULL; i++) { - cl_git_pass(git_oid__fromstr(&expected_note_oid, notes[i].note_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_note_oid, notes[i].note_oid, GIT_OID_SHA1)); if (git_oid_cmp(&expected_note_oid, blob_oid) != 0) continue; - cl_git_pass(git_oid__fromstr(&expected_target_oid, notes[i].object_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_target_oid, notes[i].object_oid, GIT_OID_SHA1)); if (git_oid_cmp(&expected_target_oid, annotated_obj_id) != 0) continue; @@ -140,7 +140,7 @@ void test_notes_notes__can_create_a_note_from_commit(void) { NULL, NULL, 0 } }; - cl_git_pass(git_oid__fromstr(&oid, can_create_a_note_from_commit[0].object_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, can_create_a_note_from_commit[0].object_oid, GIT_OID_SHA1)); cl_git_pass(git_note_commit_create(¬es_commit_out, NULL, _repo, NULL, _sig, _sig, &oid, "I decorate 4a20\n", 1)); @@ -169,11 +169,11 @@ void test_notes_notes__can_create_a_note_from_commit_given_an_existing_commit(vo { NULL, NULL, 0 } }; - cl_git_pass(git_oid__fromstr(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); cl_git_pass(git_note_commit_create(¬es_commit_out, NULL, _repo, NULL, _sig, _sig, &oid, "I decorate 4a20\n", 0)); - cl_git_pass(git_oid__fromstr(&oid, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); git_commit_lookup(&existing_notes_commit, _repo, ¬es_commit_out); @@ -274,7 +274,7 @@ void test_notes_notes__inserting_a_note_without_passing_a_namespace_uses_the_def git_note *note, *default_namespace_note; git_buf default_ref = GIT_BUF_INIT; - cl_git_pass(git_oid__fromstr(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); cl_git_pass(git_note_default_ref(&default_ref, _repo)); create_note(¬e_oid, NULL, "08b041783f40edfe12bb406c9c9a8a040177c125", "hello world\n"); @@ -295,7 +295,7 @@ void test_notes_notes__can_insert_a_note_with_a_custom_namespace(void) git_oid note_oid, target_oid; git_note *note; - cl_git_pass(git_oid__fromstr(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); create_note(¬e_oid, "refs/notes/some/namespace", "08b041783f40edfe12bb406c9c9a8a040177c125", "hello world on a custom namespace\n"); @@ -315,7 +315,7 @@ void test_notes_notes__creating_a_note_on_a_target_which_already_has_one_returns int error; git_oid note_oid, target_oid; - cl_git_pass(git_oid__fromstr(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); create_note(¬e_oid, NULL, "08b041783f40edfe12bb406c9c9a8a040177c125", "hello world\n"); error = git_note_create(¬e_oid, _repo, NULL, _sig, _sig, &target_oid, "hello world\n", 0); @@ -334,7 +334,7 @@ void test_notes_notes__creating_a_note_on_a_target_can_overwrite_existing_note(v git_oid note_oid, target_oid; git_note *note, *namespace_note; - cl_git_pass(git_oid__fromstr(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); create_note(¬e_oid, NULL, "08b041783f40edfe12bb406c9c9a8a040177c125", "hello old world\n"); cl_git_pass(git_note_create(¬e_oid, _repo, NULL, _sig, _sig, &target_oid, "hello new world\n", 1)); @@ -381,7 +381,7 @@ void test_notes_notes__can_read_a_note(void) create_note(¬e_oid, "refs/notes/i-can-see-dead-notes", "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", "I decorate 4a20\n"); - cl_git_pass(git_oid__fromstr(&target_oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); cl_git_pass(git_note_read(¬e, _repo, "refs/notes/i-can-see-dead-notes", &target_oid)); @@ -397,7 +397,7 @@ void test_notes_notes__can_read_a_note_from_a_commit(void) git_commit *notes_commit; git_note *note; - cl_git_pass(git_oid__fromstr(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); cl_git_pass(git_note_commit_create(¬es_commit_oid, NULL, _repo, NULL, _sig, _sig, &oid, "I decorate 4a20\n", 1)); cl_git_pass(git_commit_lookup(¬es_commit, _repo, ¬es_commit_oid)); cl_assert(notes_commit); @@ -416,7 +416,7 @@ void test_notes_notes__attempt_to_read_a_note_from_a_commit_with_no_note_fails(v git_commit *notes_commit; git_note *note; - cl_git_pass(git_oid__fromstr(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); cl_git_pass(git_note_commit_create(¬es_commit_oid, NULL, _repo, NULL, _sig, _sig, &oid, "I decorate 4a20\n", 1)); @@ -450,7 +450,7 @@ void test_notes_notes__can_insert_a_note_in_an_existing_fanout(void) git_oid note_oid, target_oid; git_note *_note; - cl_git_pass(git_oid__fromstr(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); for (i = 0; i < MESSAGES_COUNT; i++) { cl_git_pass(git_note_create(¬e_oid, _repo, "refs/notes/fanout", _sig, _sig, &target_oid, messages[i], 0)); @@ -470,10 +470,10 @@ void test_notes_notes__can_read_a_note_in_an_existing_fanout(void) git_oid note_oid, target_oid; git_note *note; - cl_git_pass(git_oid__fromstr(&target_oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); cl_git_pass(git_note_read(¬e, _repo, "refs/notes/fanout", &target_oid)); - cl_git_pass(git_oid__fromstr(¬e_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(¬e_oid, "08b041783f40edfe12bb406c9c9a8a040177c125", GIT_OID_SHA1)); cl_assert_equal_oid(git_note_id(note), ¬e_oid); git_note_free(note); @@ -487,7 +487,7 @@ void test_notes_notes__can_remove_a_note(void) create_note(¬e_oid, "refs/notes/i-can-see-dead-notes", "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", "I decorate 4a20\n"); - cl_git_pass(git_oid__fromstr(&target_oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); cl_git_pass(git_note_remove(_repo, "refs/notes/i-can-see-dead-notes", _sig, _sig, &target_oid)); cl_git_fail(git_note_read(¬e, _repo, "refs/notes/i-can-see-dead-notes", &target_oid)); @@ -501,7 +501,7 @@ void test_notes_notes__can_remove_a_note_from_commit(void) git_commit *existing_notes_commit; git_reference *ref; - cl_git_pass(git_oid__fromstr(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1)); cl_git_pass(git_note_commit_create(¬es_commit_oid, NULL, _repo, NULL, _sig, _sig, &oid, "I decorate 4a20\n", 0)); @@ -528,7 +528,7 @@ void test_notes_notes__can_remove_a_note_in_an_existing_fanout(void) git_oid target_oid; git_note *note; - cl_git_pass(git_oid__fromstr(&target_oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); cl_git_pass(git_note_remove(_repo, "refs/notes/fanout", _sig, _sig, &target_oid)); cl_git_fail(git_note_read(¬e, _repo, "refs/notes/fanout", &target_oid)); @@ -539,7 +539,7 @@ void test_notes_notes__removing_a_note_which_doesnt_exists_returns_ENOTFOUND(voi int error; git_oid target_oid; - cl_git_pass(git_oid__fromstr(&target_oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&target_oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); cl_git_pass(git_note_remove(_repo, "refs/notes/fanout", _sig, _sig, &target_oid)); error = git_note_remove(_repo, "refs/notes/fanout", _sig, _sig, &target_oid); @@ -628,8 +628,8 @@ void test_notes_notes__iterate_from_commit(void) }; int i, err; - cl_git_pass(git_oid__fromstr(&(oids[0]), "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&(oids[1]), "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&(oids[0]), "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&(oids[1]), "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); cl_git_pass(git_note_commit_create(¬es_commit_oids[0], NULL, _repo, NULL, _sig, _sig, &(oids[0]), note_message[0], 0)); diff --git a/tests/libgit2/notes/notesref.c b/tests/libgit2/notes/notesref.c index 8696ff66a60..13def68e5b0 100644 --- a/tests/libgit2/notes/notesref.c +++ b/tests/libgit2/notes/notesref.c @@ -36,7 +36,7 @@ void test_notes_notesref__config_corenotesref(void) git_buf default_ref = GIT_BUF_INIT; cl_git_pass(git_signature_now(&_sig, "alice", "alice@example.com")); - cl_git_pass(git_oid__fromstr(&oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1)); cl_git_pass(git_repository_config(&_cfg, _repo)); diff --git a/tests/libgit2/object/blob/fromstream.c b/tests/libgit2/object/blob/fromstream.c index dad0b52e155..52eb2967959 100644 --- a/tests/libgit2/object/blob/fromstream.c +++ b/tests/libgit2/object/blob/fromstream.c @@ -23,7 +23,7 @@ void test_object_blob_fromstream__multiple_write(void) git_writestream *stream; int i, howmany = 6; - cl_git_pass(git_oid__fromstr(&expected_id, "321cbdf08803c744082332332838df6bd160f8f9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, "321cbdf08803c744082332332838df6bd160f8f9", GIT_OID_SHA1)); cl_git_fail_with(GIT_ENOTFOUND, git_object_lookup(&blob, repo, &expected_id, GIT_OBJECT_ANY)); @@ -64,7 +64,7 @@ static void assert_named_chunked_blob(const char *expected_sha, const char *fake git_writestream *stream; int i, howmany = 6; - cl_git_pass(git_oid__fromstr(&expected_id, expected_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, expected_sha, GIT_OID_SHA1)); cl_git_pass(git_blob_create_from_stream(&stream, repo, fake_name)); diff --git a/tests/libgit2/object/cache.c b/tests/libgit2/object/cache.c index bf8c6fb53cb..b10c97cd034 100644 --- a/tests/libgit2/object/cache.c +++ b/tests/libgit2/object/cache.c @@ -91,7 +91,7 @@ void test_object_cache__cache_counts(void) for (i = 0; g_data[i].sha != NULL; ++i) { int count = (int)git_cache_size(&g_repo->objects); - cl_git_pass(git_oid__fromstr(&oid, g_data[i].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[i].sha, GIT_OID_SHA1)); /* alternate between loading raw and parsed objects */ if ((i & 1) == 0) { @@ -118,7 +118,7 @@ void test_object_cache__cache_counts(void) for (i = 0; g_data[i].sha != NULL; ++i) { int count = (int)git_cache_size(&g_repo->objects); - cl_git_pass(git_oid__fromstr(&oid, g_data[i].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[i].sha, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&obj, g_repo, &oid, GIT_OBJECT_ANY)); cl_assert(g_data[i].type == git_object_type(obj)); git_object_free(obj); @@ -136,14 +136,14 @@ static void *cache_parsed(void *arg) git_object *obj; for (i = ((int *)arg)[1]; g_data[i].sha != NULL; i += 2) { - cl_git_pass(git_oid__fromstr(&oid, g_data[i].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[i].sha, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&obj, g_repo, &oid, GIT_OBJECT_ANY)); cl_assert(g_data[i].type == git_object_type(obj)); git_object_free(obj); } for (i = 0; i < ((int *)arg)[1]; i += 2) { - cl_git_pass(git_oid__fromstr(&oid, g_data[i].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[i].sha, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&obj, g_repo, &oid, GIT_OBJECT_ANY)); cl_assert(g_data[i].type == git_object_type(obj)); git_object_free(obj); @@ -162,14 +162,14 @@ static void *cache_raw(void *arg) cl_git_pass(git_repository_odb(&odb, g_repo)); for (i = ((int *)arg)[1]; g_data[i].sha != NULL; i += 2) { - cl_git_pass(git_oid__fromstr(&oid, g_data[i].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[i].sha, GIT_OID_SHA1)); cl_git_pass(git_odb_read(&odb_obj, odb, &oid)); cl_assert(g_data[i].type == git_odb_object_type(odb_obj)); git_odb_object_free(odb_obj); } for (i = 0; i < ((int *)arg)[1]; i += 2) { - cl_git_pass(git_oid__fromstr(&oid, g_data[i].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[i].sha, GIT_OID_SHA1)); cl_git_pass(git_odb_read(&odb_obj, odb, &oid)); cl_assert(g_data[i].type == git_odb_object_type(odb_obj)); git_odb_object_free(odb_obj); @@ -234,7 +234,7 @@ static void *cache_quick(void *arg) git_oid oid; git_object *obj; - cl_git_pass(git_oid__fromstr(&oid, g_data[4].sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, g_data[4].sha, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&obj, g_repo, &oid, GIT_OBJECT_ANY)); cl_assert(g_data[4].type == git_object_type(obj)); git_object_free(obj); diff --git a/tests/libgit2/object/commit/commitstagedfile.c b/tests/libgit2/object/commit/commitstagedfile.c index 61f50b2af60..565c888e468 100644 --- a/tests/libgit2/object/commit/commitstagedfile.c +++ b/tests/libgit2/object/commit/commitstagedfile.c @@ -64,9 +64,9 @@ void test_object_commit_commitstagedfile__generate_predictable_object_ids(void) * 100644 blob 9daeafb9864cf43055ae93beb0afd6c7d144bfa4 test.txt */ - cl_git_pass(git_oid__fromstr(&expected_commit_oid, "1fe3126578fc4eca68c193e4a3a0a14a0704624d", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected_tree_oid, "2b297e643c551e76cfa1f93810c50811382f9117", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected_blob_oid, "9daeafb9864cf43055ae93beb0afd6c7d144bfa4", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_commit_oid, "1fe3126578fc4eca68c193e4a3a0a14a0704624d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_tree_oid, "2b297e643c551e76cfa1f93810c50811382f9117", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_blob_oid, "9daeafb9864cf43055ae93beb0afd6c7d144bfa4", GIT_OID_SHA1)); /* * Add a new file to the index diff --git a/tests/libgit2/object/commit/parse.c b/tests/libgit2/object/commit/parse.c index 6f9a6550789..78413fb4982 100644 --- a/tests/libgit2/object/commit/parse.c +++ b/tests/libgit2/object/commit/parse.c @@ -54,7 +54,7 @@ static void assert_commit_parses( if (expected_treeid) { git_oid tree_oid; - cl_git_pass(git_oid__fromstr(&tree_oid, expected_treeid, oid_type)); + cl_git_pass(git_oid_from_string(&tree_oid, expected_treeid, oid_type)); cl_assert_equal_oid(&tree_oid, &commit->tree_id); } diff --git a/tests/libgit2/object/lookup.c b/tests/libgit2/object/lookup.c index 7ef1dbd1c96..2285a488126 100644 --- a/tests/libgit2/object/lookup.c +++ b/tests/libgit2/object/lookup.c @@ -20,7 +20,7 @@ void test_object_lookup__lookup_wrong_type_returns_enotfound(void) git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA1)); cl_assert_equal_i( GIT_ENOTFOUND, git_object_lookup(&object, g_repo, &oid, GIT_OBJECT_TAG)); } @@ -31,7 +31,7 @@ void test_object_lookup__lookup_nonexisting_returns_enotfound(void) git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstr(&oid, unknown, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, unknown, GIT_OID_SHA1)); cl_assert_equal_i( GIT_ENOTFOUND, git_object_lookup(&object, g_repo, &oid, GIT_OBJECT_ANY)); } @@ -42,7 +42,7 @@ void test_object_lookup__lookup_wrong_type_by_abbreviated_id_returns_enotfound(v git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstrn(&oid, commit, strlen(commit), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, commit, strlen(commit), GIT_OID_SHA1)); cl_assert_equal_i( GIT_ENOTFOUND, git_object_lookup_prefix(&object, g_repo, &oid, strlen(commit), GIT_OBJECT_TAG)); } @@ -53,7 +53,7 @@ void test_object_lookup__lookup_wrong_type_eventually_returns_enotfound(void) git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&object, g_repo, &oid, GIT_OBJECT_COMMIT)); git_object_free(object); @@ -71,7 +71,7 @@ void test_object_lookup__lookup_corrupt_object_returns_error(void) git_object *object; size_t i; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA1)); cl_git_pass(git_str_joinpath(&path, git_repository_path(g_repo), file)); cl_git_pass(git_futils_readbuffer(&contents, path.ptr)); @@ -101,7 +101,7 @@ void test_object_lookup__lookup_object_with_wrong_hash_returns_error(void) git_object *object; git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA1)); /* Copy object to another location with wrong hash */ cl_git_pass(git_str_joinpath(&oldpath, git_repository_path(g_repo), oldloose)); diff --git a/tests/libgit2/object/lookup256.c b/tests/libgit2/object/lookup256.c index 3e1dab6610a..cd1aa648926 100644 --- a/tests/libgit2/object/lookup256.c +++ b/tests/libgit2/object/lookup256.c @@ -29,7 +29,7 @@ void test_object_lookup256__lookup_wrong_type_returns_enotfound(void) git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA256)); cl_assert_equal_i( GIT_ENOTFOUND, git_object_lookup(&object, g_repo, &oid, GIT_OBJECT_TAG)); #endif @@ -44,7 +44,7 @@ void test_object_lookup256__lookup_nonexisting_returns_enotfound(void) git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstr(&oid, unknown, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&oid, unknown, GIT_OID_SHA256)); cl_assert_equal_i( GIT_ENOTFOUND, git_object_lookup(&object, g_repo, &oid, GIT_OBJECT_ANY)); #endif @@ -59,7 +59,7 @@ void test_object_lookup256__lookup_wrong_type_by_abbreviated_id_returns_enotfoun git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstrn(&oid, commit, strlen(commit), GIT_OID_SHA256)); + cl_git_pass(git_oid_from_prefix(&oid, commit, strlen(commit), GIT_OID_SHA256)); cl_assert_equal_i( GIT_ENOTFOUND, git_object_lookup_prefix(&object, g_repo, &oid, strlen(commit), GIT_OBJECT_TAG)); #endif @@ -74,7 +74,7 @@ void test_object_lookup256__lookup_wrong_type_eventually_returns_enotfound(void) git_oid oid; git_object *object; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA256)); cl_git_pass(git_object_lookup(&object, g_repo, &oid, GIT_OBJECT_COMMIT)); git_object_free(object); @@ -96,7 +96,7 @@ void test_object_lookup256__lookup_corrupt_object_returns_error(void) git_object *object; size_t i; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA256)); cl_git_pass(git_str_joinpath(&path, git_repository_path(g_repo), file)); cl_git_pass(git_futils_readbuffer(&contents, path.ptr)); @@ -131,7 +131,7 @@ void test_object_lookup256__lookup_object_with_wrong_hash_returns_error(void) git_object *object; git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, commit, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&oid, commit, GIT_OID_SHA256)); /* Copy object to another location with wrong hash */ cl_git_pass(git_str_joinpath(&oldpath, git_repository_path(g_repo), oldloose)); diff --git a/tests/libgit2/object/peel.c b/tests/libgit2/object/peel.c index da3ef17e2dc..7071628974b 100644 --- a/tests/libgit2/object/peel.c +++ b/tests/libgit2/object/peel.c @@ -23,12 +23,12 @@ static void assert_peel( git_object *obj; git_object *peeled; - cl_git_pass(git_oid__fromstr(&oid, sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, sha, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&obj, g_repo, &oid, GIT_OBJECT_ANY)); cl_git_pass(git_object_peel(&peeled, obj, requested_type)); - cl_git_pass(git_oid__fromstr(&expected_oid, expected_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected_sha, GIT_OID_SHA1)); cl_assert_equal_oid(&expected_oid, git_object_id(peeled)); cl_assert_equal_i(expected_type, git_object_type(peeled)); @@ -43,7 +43,7 @@ static void assert_peel_error(int error, const char *sha, git_object_t requested git_object *obj; git_object *peeled; - cl_git_pass(git_oid__fromstr(&oid, sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, sha, GIT_OID_SHA1)); cl_git_pass(git_object_lookup(&obj, g_repo, &oid, GIT_OBJECT_ANY)); cl_assert_equal_i(error, git_object_peel(&peeled, obj, requested_type)); diff --git a/tests/libgit2/object/raw/chars.c b/tests/libgit2/object/raw/chars.c index cb159e9ac4a..24d630d3861 100644 --- a/tests/libgit2/object/raw/chars.c +++ b/tests/libgit2/object/raw/chars.c @@ -19,10 +19,10 @@ void test_object_raw_chars__find_invalid_chars_in_oid(void) in[38] = (char)i; if (git__fromhex(i) >= 0) { exp[19] = (unsigned char)(git__fromhex(i) << 4); - cl_git_pass(git_oid__fromstr(&out, in, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&out, in, GIT_OID_SHA1)); cl_assert(memcmp(out.id, exp, GIT_OID_SHA1_SIZE) == 0); } else { - cl_git_fail(git_oid__fromstr(&out, in, GIT_OID_SHA1)); + cl_git_fail(git_oid_from_string(&out, in, GIT_OID_SHA1)); } } } @@ -36,6 +36,6 @@ void test_object_raw_chars__build_valid_oid_from_raw_bytes(void) 0xb7, 0x75, 0x21, 0x3c, 0x23, 0xa8, 0xbd, 0x74, 0xf5, 0xe0, }; - git_oid__fromraw(&out, exp, GIT_OID_SHA1); + git_oid_from_raw(&out, exp, GIT_OID_SHA1); cl_git_pass(memcmp(out.id, exp, GIT_OID_SHA1_SIZE)); } diff --git a/tests/libgit2/object/raw/compare.c b/tests/libgit2/object/raw/compare.c index 9258eef41fe..ace751d75c1 100644 --- a/tests/libgit2/object/raw/compare.c +++ b/tests/libgit2/object/raw/compare.c @@ -13,7 +13,7 @@ void test_object_raw_compare__succeed_on_copy_oid(void) 0xa8, 0xbd, 0x74, 0xf5, 0xe0, }; memset(&b, 0, sizeof(b)); - git_oid__fromraw(&a, exp, GIT_OID_SHA1); + git_oid_from_raw(&a, exp, GIT_OID_SHA1); git_oid_cpy(&b, &a); cl_git_pass(memcmp(a.id, exp, GIT_OID_SHA1_SIZE)); } @@ -33,8 +33,8 @@ void test_object_raw_compare__succeed_on_oid_comparison_lesser(void) 0xb7, 0x75, 0x21, 0x3c, 0x23, 0xa8, 0xbd, 0x74, 0xf5, 0xf0, }; - git_oid__fromraw(&a, a_in, GIT_OID_SHA1); - git_oid__fromraw(&b, b_in, GIT_OID_SHA1); + git_oid_from_raw(&a, a_in, GIT_OID_SHA1); + git_oid_from_raw(&b, b_in, GIT_OID_SHA1); cl_assert(git_oid_cmp(&a, &b) < 0); } @@ -47,8 +47,8 @@ void test_object_raw_compare__succeed_on_oid_comparison_equal(void) 0xb7, 0x75, 0x21, 0x3c, 0x23, 0xa8, 0xbd, 0x74, 0xf5, 0xe0, }; - git_oid__fromraw(&a, a_in, GIT_OID_SHA1); - git_oid__fromraw(&b, a_in, GIT_OID_SHA1); + git_oid_from_raw(&a, a_in, GIT_OID_SHA1); + git_oid_from_raw(&b, a_in, GIT_OID_SHA1); cl_assert(git_oid_cmp(&a, &b) == 0); } @@ -67,8 +67,8 @@ void test_object_raw_compare__succeed_on_oid_comparison_greater(void) 0xb7, 0x75, 0x21, 0x3c, 0x23, 0xa8, 0xbd, 0x74, 0xf5, 0xd0, }; - git_oid__fromraw(&a, a_in, GIT_OID_SHA1); - git_oid__fromraw(&b, b_in, GIT_OID_SHA1); + git_oid_from_raw(&a, a_in, GIT_OID_SHA1); + git_oid_from_raw(&b, b_in, GIT_OID_SHA1); cl_assert(git_oid_cmp(&a, &b) > 0); } @@ -78,7 +78,7 @@ void test_object_raw_compare__compare_fmt_oids(void) git_oid in; char out[GIT_OID_SHA1_HEXSIZE + 1]; - cl_git_pass(git_oid__fromstr(&in, exp, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&in, exp, GIT_OID_SHA1)); /* Format doesn't touch the last byte */ out[GIT_OID_SHA1_HEXSIZE] = 'Z'; @@ -96,7 +96,7 @@ void test_object_raw_compare__compare_static_oids(void) git_oid in; char *out; - cl_git_pass(git_oid__fromstr(&in, exp, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&in, exp, GIT_OID_SHA1)); out = git_oid_tostr_s(&in); cl_assert(out); @@ -110,7 +110,7 @@ void test_object_raw_compare__compare_pathfmt_oids(void) git_oid in; char out[GIT_OID_SHA1_HEXSIZE + 2]; - cl_git_pass(git_oid__fromstr(&in, exp1, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&in, exp1, GIT_OID_SHA1)); /* Format doesn't touch the last byte */ out[GIT_OID_SHA1_HEXSIZE + 1] = 'Z'; diff --git a/tests/libgit2/object/raw/convert.c b/tests/libgit2/object/raw/convert.c index 962476b97e1..ac2d9710db4 100644 --- a/tests/libgit2/object/raw/convert.c +++ b/tests/libgit2/object/raw/convert.c @@ -11,7 +11,7 @@ void test_object_raw_convert__succeed_on_oid_to_string_conversion(void) char *str; int i; - cl_git_pass(git_oid__fromstr(&in, exp, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&in, exp, GIT_OID_SHA1)); /* NULL buffer pointer, returns static empty string */ str = git_oid_tostr(NULL, sizeof(out), &in); @@ -55,7 +55,7 @@ void test_object_raw_convert__succeed_on_oid_to_string_conversion_big(void) char big[GIT_OID_SHA1_HEXSIZE + 1 + 3]; /* note + 4 => big buffer */ char *str; - cl_git_pass(git_oid__fromstr(&in, exp, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&in, exp, GIT_OID_SHA1)); /* place some tail material */ big[GIT_OID_SHA1_HEXSIZE+0] = 'W'; /* should be '\0' afterwards */ @@ -88,7 +88,7 @@ void test_object_raw_convert__convert_oid_partially(void) git_oid in; char big[GIT_OID_SHA1_HEXSIZE + 1 + 3]; /* note + 4 => big buffer */ - cl_git_pass(git_oid__fromstr(&in, exp, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&in, exp, GIT_OID_SHA1)); git_oid_nfmt(big, sizeof(big), &in); cl_assert_equal_s(exp, big); diff --git a/tests/libgit2/object/raw/fromstr.c b/tests/libgit2/object/raw/fromstr.c index 302d362d714..9eba6dca72f 100644 --- a/tests/libgit2/object/raw/fromstr.c +++ b/tests/libgit2/object/raw/fromstr.c @@ -6,9 +6,9 @@ void test_object_raw_fromstr__fail_on_invalid_oid_string(void) { git_oid out; - cl_git_fail(git_oid__fromstr(&out, "", GIT_OID_SHA1)); - cl_git_fail(git_oid__fromstr(&out, "moo", GIT_OID_SHA1)); - cl_git_fail(git_oid__fromstr(&out, "16a67770b7d8d72317c4b775213c23a8bd74f5ez", GIT_OID_SHA1)); + cl_git_fail(git_oid_from_string(&out, "", GIT_OID_SHA1)); + cl_git_fail(git_oid_from_string(&out, "moo", GIT_OID_SHA1)); + cl_git_fail(git_oid_from_string(&out, "16a67770b7d8d72317c4b775213c23a8bd74f5ez", GIT_OID_SHA1)); } void test_object_raw_fromstr__succeed_on_valid_oid_string(void) @@ -21,9 +21,9 @@ void test_object_raw_fromstr__succeed_on_valid_oid_string(void) 0xa8, 0xbd, 0x74, 0xf5, 0xe0, }; - cl_git_pass(git_oid__fromstr(&out, "16a67770b7d8d72317c4b775213c23a8bd74f5e0", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&out, "16a67770b7d8d72317c4b775213c23a8bd74f5e0", GIT_OID_SHA1)); cl_git_pass(memcmp(out.id, exp, GIT_OID_SHA1_SIZE)); - cl_git_pass(git_oid__fromstr(&out, "16A67770B7D8D72317C4b775213C23A8BD74F5E0", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&out, "16A67770B7D8D72317C4b775213C23A8BD74F5E0", GIT_OID_SHA1)); cl_git_pass(memcmp(out.id, exp, GIT_OID_SHA1_SIZE)); } diff --git a/tests/libgit2/object/raw/hash.c b/tests/libgit2/object/raw/hash.c index 0df1afc3a5c..3bfaddaa23c 100644 --- a/tests/libgit2/object/raw/hash.c +++ b/tests/libgit2/object/raw/hash.c @@ -32,16 +32,16 @@ void test_object_raw_hash__hash_by_blocks(void) /* should already be init'd */ cl_git_pass(git_hash_update(&ctx, hello_text, strlen(hello_text))); cl_git_pass(git_hash_final(hash, &ctx)); - cl_git_pass(git_oid__fromraw(&id2, hash, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&id1, hello_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_raw(&id2, hash, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, hello_id, GIT_OID_SHA1)); cl_assert(git_oid_cmp(&id1, &id2) == 0); /* reinit should permit reuse */ cl_git_pass(git_hash_init(&ctx)); cl_git_pass(git_hash_update(&ctx, bye_text, strlen(bye_text))); cl_git_pass(git_hash_final(hash, &ctx)); - cl_git_pass(git_oid__fromraw(&id2, hash, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&id1, bye_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_raw(&id2, hash, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, bye_id, GIT_OID_SHA1)); cl_assert(git_oid_cmp(&id1, &id2) == 0); git_hash_ctx_cleanup(&ctx); @@ -52,9 +52,9 @@ void test_object_raw_hash__hash_buffer_in_single_call(void) git_oid id1, id2; unsigned char hash[GIT_HASH_SHA1_SIZE]; - cl_git_pass(git_oid__fromstr(&id1, hello_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, hello_id, GIT_OID_SHA1)); cl_git_pass(git_hash_buf(hash, hello_text, strlen(hello_text), GIT_HASH_ALGORITHM_SHA1)); - cl_git_pass(git_oid__fromraw(&id2, hash, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_raw(&id2, hash, GIT_OID_SHA1)); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -64,7 +64,7 @@ void test_object_raw_hash__hash_vector(void) git_str_vec vec[2]; unsigned char hash[GIT_HASH_SHA1_SIZE]; - cl_git_pass(git_oid__fromstr(&id1, hello_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, hello_id, GIT_OID_SHA1)); vec[0].data = hello_text; vec[0].len = 4; @@ -72,7 +72,7 @@ void test_object_raw_hash__hash_vector(void) vec[1].len = strlen(hello_text)-4; git_hash_vec(hash, vec, 2, GIT_HASH_ALGORITHM_SHA1); - git_oid__fromraw(&id2, hash, GIT_OID_SHA1); + git_oid_from_raw(&id2, hash, GIT_OID_SHA1); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -81,7 +81,7 @@ void test_object_raw_hash__hash_junk_data(void) { git_oid id, id_zero; - cl_git_pass(git_oid__fromstr(&id_zero, zero_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id_zero, zero_id, GIT_OID_SHA1)); /* invalid types: */ junk_obj.data = some_data; @@ -116,7 +116,7 @@ void test_object_raw_hash__hash_commit_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, commit_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, commit_id, GIT_OID_SHA1)); hash_object_pass(&id2, &commit_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -125,7 +125,7 @@ void test_object_raw_hash__hash_tree_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, tree_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, tree_id, GIT_OID_SHA1)); hash_object_pass(&id2, &tree_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -134,7 +134,7 @@ void test_object_raw_hash__hash_tag_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, tag_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, tag_id, GIT_OID_SHA1)); hash_object_pass(&id2, &tag_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -143,7 +143,7 @@ void test_object_raw_hash__hash_zero_length_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, zero_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, zero_id, GIT_OID_SHA1)); hash_object_pass(&id2, &zero_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -152,7 +152,7 @@ void test_object_raw_hash__hash_one_byte_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, one_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, one_id, GIT_OID_SHA1)); hash_object_pass(&id2, &one_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -161,7 +161,7 @@ void test_object_raw_hash__hash_two_byte_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, two_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, two_id, GIT_OID_SHA1)); hash_object_pass(&id2, &two_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } @@ -170,7 +170,7 @@ void test_object_raw_hash__hash_multi_byte_object(void) { git_oid id1, id2; - cl_git_pass(git_oid__fromstr(&id1, some_id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, some_id, GIT_OID_SHA1)); hash_object_pass(&id2, &some_obj); cl_assert(git_oid_cmp(&id1, &id2) == 0); } diff --git a/tests/libgit2/object/raw/short.c b/tests/libgit2/object/raw/short.c index f867e6ba173..c6d1a4fc1aa 100644 --- a/tests/libgit2/object/raw/short.c +++ b/tests/libgit2/object/raw/short.c @@ -36,7 +36,7 @@ static int insert_sequential_oids( p_snprintf(numbuf, sizeof(numbuf), "%u", (unsigned int)i); git_hash_buf(hashbuf, numbuf, strlen(numbuf), GIT_HASH_ALGORITHM_SHA1); - git_oid__fromraw(&oid, hashbuf, GIT_OID_SHA1); + git_oid_from_raw(&oid, hashbuf, GIT_OID_SHA1); oids[i] = git__malloc(GIT_OID_SHA1_HEXSIZE + 1); cl_assert(oids[i]); diff --git a/tests/libgit2/object/raw/write.c b/tests/libgit2/object/raw/write.c index b95deffdbfe..dd6fca08f7d 100644 --- a/tests/libgit2/object/raw/write.c +++ b/tests/libgit2/object/raw/write.c @@ -67,7 +67,7 @@ void test_body(object_data *d, git_rawobj *o) make_odb_dir(); cl_git_pass(git_odb_open_ext(&db, odb_dir, NULL)); - cl_git_pass(git_oid__fromstr(&id1, d->id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id1, d->id, GIT_OID_SHA1)); streaming_write(&id2, db, o); cl_assert(git_oid_cmp(&id1, &id2) == 0); diff --git a/tests/libgit2/object/shortid.c b/tests/libgit2/object/shortid.c index 3657a419884..4af9b45aeaf 100644 --- a/tests/libgit2/object/shortid.c +++ b/tests/libgit2/object/shortid.c @@ -18,28 +18,28 @@ void test_object_shortid__select(void) git_object *obj; git_buf shorty = {0}; - git_oid__fromstr(&full, "ce013625030ba8dba906f756967f9e9ca394464a", GIT_OID_SHA1); + git_oid_from_string(&full, "ce013625030ba8dba906f756967f9e9ca394464a", GIT_OID_SHA1); cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY)); cl_git_pass(git_object_short_id(&shorty, obj)); cl_assert_equal_i(7, shorty.size); cl_assert_equal_s("ce01362", shorty.ptr); git_object_free(obj); - git_oid__fromstr(&full, "038d718da6a1ebbc6a7780a96ed75a70cc2ad6e2", GIT_OID_SHA1); + git_oid_from_string(&full, "038d718da6a1ebbc6a7780a96ed75a70cc2ad6e2", GIT_OID_SHA1); cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY)); cl_git_pass(git_object_short_id(&shorty, obj)); cl_assert_equal_i(7, shorty.size); cl_assert_equal_s("038d718", shorty.ptr); git_object_free(obj); - git_oid__fromstr(&full, "dea509d097ce692e167dfc6a48a7a280cc5e877e", GIT_OID_SHA1); + git_oid_from_string(&full, "dea509d097ce692e167dfc6a48a7a280cc5e877e", GIT_OID_SHA1); cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY)); cl_git_pass(git_object_short_id(&shorty, obj)); cl_assert_equal_i(9, shorty.size); cl_assert_equal_s("dea509d09", shorty.ptr); git_object_free(obj); - git_oid__fromstr(&full, "dea509d0b3cb8ee0650f6ca210bc83f4678851ba", GIT_OID_SHA1); + git_oid_from_string(&full, "dea509d0b3cb8ee0650f6ca210bc83f4678851ba", GIT_OID_SHA1); cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY)); cl_git_pass(git_object_short_id(&shorty, obj)); cl_assert_equal_i(9, shorty.size); @@ -57,7 +57,7 @@ void test_object_shortid__core_abbrev(void) git_config *cfg; cl_git_pass(git_repository_config(&cfg, _repo)); - git_oid__fromstr(&full, "ce013625030ba8dba906f756967f9e9ca394464a", GIT_OID_SHA1); + git_oid_from_string(&full, "ce013625030ba8dba906f756967f9e9ca394464a", GIT_OID_SHA1); cl_git_pass(git_object_lookup(&obj, _repo, &full, GIT_OBJECT_ANY)); cl_git_pass(git_config_set_string(cfg, "core.abbrev", "auto")); diff --git a/tests/libgit2/object/tag/parse.c b/tests/libgit2/object/tag/parse.c index d7a4d85bfda..a5dec1889f1 100644 --- a/tests/libgit2/object/tag/parse.c +++ b/tests/libgit2/object/tag/parse.c @@ -19,7 +19,7 @@ static void assert_tag_parses(const char *data, size_t datalen, if (expected_oid) { git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, expected_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, expected_oid, GIT_OID_SHA1)); cl_assert_equal_oid(&oid, &tag->target); } diff --git a/tests/libgit2/object/tag/peel.c b/tests/libgit2/object/tag/peel.c index db81c5aee2b..0ee8d50428f 100644 --- a/tests/libgit2/object/tag/peel.c +++ b/tests/libgit2/object/tag/peel.c @@ -29,7 +29,7 @@ static void retrieve_tag_from_oid(git_tag **tag_out, git_repository *repo, const { git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, sha, GIT_OID_SHA1)); cl_git_pass(git_tag_lookup(tag_out, repo, &oid)); } diff --git a/tests/libgit2/object/tag/read.c b/tests/libgit2/object/tag/read.c index 6270b567ae3..3bb559ae204 100644 --- a/tests/libgit2/object/tag/read.c +++ b/tests/libgit2/object/tag/read.c @@ -32,9 +32,9 @@ void test_object_tag_read__parse(void) git_commit *commit; git_oid id1, id2, id_commit; - git_oid__fromstr(&id1, tag1_id, GIT_OID_SHA1); - git_oid__fromstr(&id2, tag2_id, GIT_OID_SHA1); - git_oid__fromstr(&id_commit, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&id1, tag1_id, GIT_OID_SHA1); + git_oid_from_string(&id2, tag2_id, GIT_OID_SHA1); + git_oid_from_string(&id_commit, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_tag_lookup(&tag1, g_repo, &id1)); @@ -67,8 +67,8 @@ void test_object_tag_read__parse_without_tagger(void) /* TODO: This is a little messy */ cl_git_pass(git_repository_open(&bad_tag_repo, cl_fixture("bad_tag.git"))); - git_oid__fromstr(&id, bad_tag_id, GIT_OID_SHA1); - git_oid__fromstr(&id_commit, badly_tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&id, bad_tag_id, GIT_OID_SHA1); + git_oid_from_string(&id_commit, badly_tagged_commit, GIT_OID_SHA1); cl_git_pass(git_tag_lookup(&bad_tag, bad_tag_repo, &id)); cl_assert(bad_tag != NULL); @@ -99,8 +99,8 @@ void test_object_tag_read__parse_without_message(void) /* TODO: This is a little messy */ cl_git_pass(git_repository_open(&short_tag_repo, cl_fixture("short_tag.git"))); - git_oid__fromstr(&id, short_tag_id, GIT_OID_SHA1); - git_oid__fromstr(&id_commit, short_tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&id, short_tag_id, GIT_OID_SHA1); + git_oid_from_string(&id_commit, short_tagged_commit, GIT_OID_SHA1); cl_git_pass(git_tag_lookup(&short_tag, short_tag_repo, &id)); cl_assert(short_tag != NULL); @@ -127,7 +127,7 @@ void test_object_tag_read__without_tagger_nor_message(void) cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git"))); - cl_git_pass(git_oid__fromstr(&id, taggerless, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, taggerless, GIT_OID_SHA1)); cl_git_pass(git_tag_lookup(&tag, repo, &id)); diff --git a/tests/libgit2/object/tag/write.c b/tests/libgit2/object/tag/write.c index 79e01452a3a..f3090efc9fc 100644 --- a/tests/libgit2/object/tag/write.c +++ b/tests/libgit2/object/tag/write.c @@ -30,7 +30,7 @@ void test_object_tag_write__basic(void) git_reference *ref_tag; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); /* create signature */ @@ -72,7 +72,7 @@ void test_object_tag_write__overwrite(void) git_signature *tagger; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); /* create signature */ @@ -99,7 +99,7 @@ void test_object_tag_write__replace(void) git_reference *ref_tag; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); cl_git_pass(git_reference_lookup(&ref_tag, g_repo, "refs/tags/e90810b")); @@ -135,7 +135,7 @@ void test_object_tag_write__lightweight(void) git_reference *ref_tag; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); cl_git_pass(git_tag_create_lightweight( @@ -163,7 +163,7 @@ void test_object_tag_write__lightweight_over_existing(void) git_oid target_id, object_id, existing_object_id; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); cl_assert_equal_i(GIT_EEXISTS, git_tag_create_lightweight( @@ -173,7 +173,7 @@ void test_object_tag_write__lightweight_over_existing(void) target, 0)); - git_oid__fromstr(&existing_object_id, tag2_id, GIT_OID_SHA1); + git_oid_from_string(&existing_object_id, tag2_id, GIT_OID_SHA1); cl_assert(git_oid_cmp(&object_id, &existing_object_id) == 0); git_object_free(target); @@ -197,7 +197,7 @@ void test_object_tag_write__creating_with_an_invalid_name_returns_EINVALIDSPEC(v git_signature *tagger; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); cl_git_pass(git_signature_new(&tagger, tagger_name, tagger_email, 123456789, 60)); @@ -229,7 +229,7 @@ static void create_annotation(git_oid *tag_id, const char *name) cl_git_pass(git_signature_new(&tagger, tagger_name, tagger_email, 123456789, 60)); - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); cl_git_pass(git_tag_annotation_create(tag_id, g_repo, name, target, tagger, "boom!")); @@ -265,7 +265,7 @@ void test_object_tag_write__error_when_create_tag_with_invalid_name(void) git_signature *tagger; git_object *target; - git_oid__fromstr(&target_id, tagged_commit, GIT_OID_SHA1); + git_oid_from_string(&target_id, tagged_commit, GIT_OID_SHA1); cl_git_pass(git_object_lookup(&target, g_repo, &target_id, GIT_OBJECT_COMMIT)); cl_git_pass(git_signature_new(&tagger, tagger_name, tagger_email, 123456789, 60)); diff --git a/tests/libgit2/object/tree/attributes.c b/tests/libgit2/object/tree/attributes.c index 285d19804f5..516ab6e58fe 100644 --- a/tests/libgit2/object/tree/attributes.c +++ b/tests/libgit2/object/tree/attributes.c @@ -21,7 +21,7 @@ void test_object_tree_attributes__ensure_correctness_of_attributes_on_insertion( git_treebuilder *builder; git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, blob_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, blob_oid, GIT_OID_SHA1)); cl_git_pass(git_treebuilder_new(&builder, repo, NULL)); @@ -39,7 +39,7 @@ void test_object_tree_attributes__group_writable_tree_entries_created_with_an_an const git_tree_entry *entry; - cl_git_pass(git_oid__fromstr(&tid, tree_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tid, tree_oid, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, repo, &tid)); entry = git_tree_entry_byname(tree, "old_mode.txt"); @@ -56,7 +56,7 @@ void test_object_tree_attributes__treebuilder_reject_invalid_filemode(void) git_oid bid; const git_tree_entry *entry; - cl_git_pass(git_oid__fromstr(&bid, blob_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&bid, blob_oid, GIT_OID_SHA1)); cl_git_pass(git_treebuilder_new(&builder, repo, NULL)); cl_git_fail(git_treebuilder_insert( @@ -76,7 +76,7 @@ void test_object_tree_attributes__normalize_attributes_when_creating_a_tree_from git_tree *tree; const git_tree_entry *entry; - cl_git_pass(git_oid__fromstr(&tid, tree_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tid, tree_oid, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, repo, &tid)); cl_git_pass(git_treebuilder_new(&builder, repo, tree)); @@ -107,7 +107,7 @@ void test_object_tree_attributes__normalize_600(void) git_tree *tree; const git_tree_entry *entry; - git_oid__fromstr(&id, "0810fb7818088ff5ac41ee49199b51473b1bd6c7", GIT_OID_SHA1); + git_oid_from_string(&id, "0810fb7818088ff5ac41ee49199b51473b1bd6c7", GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, repo, &id)); entry = git_tree_entry_byname(tree, "ListaTeste.xml"); diff --git a/tests/libgit2/object/tree/duplicateentries.c b/tests/libgit2/object/tree/duplicateentries.c index e9774cac378..b137339c818 100644 --- a/tests/libgit2/object/tree/duplicateentries.c +++ b/tests/libgit2/object/tree/duplicateentries.c @@ -45,7 +45,7 @@ static void tree_checker( cl_assert_equal_i(1, (int)git_tree_entrycount(tree)); entry = git_tree_entry_byindex(tree, 0); - cl_git_pass(git_oid__fromstr(&oid, expected_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, expected_sha, GIT_OID_SHA1)); cl_assert_equal_i(0, git_oid_cmp(&oid, git_tree_entry_id(entry))); cl_assert_equal_i(expected_filemode, git_tree_entry_filemode(entry)); @@ -70,7 +70,7 @@ static void two_blobs(git_treebuilder *bld) git_oid oid; const git_tree_entry *entry; - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); /* blob oid (README) */ @@ -78,7 +78,7 @@ static void two_blobs(git_treebuilder *bld) &entry, bld, "duplicate", &oid, GIT_FILEMODE_BLOB)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1)); /* blob oid (new.txt) */ @@ -92,7 +92,7 @@ static void one_blob_and_one_tree(git_treebuilder *bld) git_oid oid; const git_tree_entry *entry; - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1)); /* blob oid (README) */ @@ -100,7 +100,7 @@ static void one_blob_and_one_tree(git_treebuilder *bld) &entry, bld, "duplicate", &oid, GIT_FILEMODE_BLOB)); - cl_git_pass(git_oid__fromstr(&oid, + cl_git_pass(git_oid_from_string(&oid, "4e0883eeeeebc1fb1735161cea82f7cb5fab7e63", GIT_OID_SHA1)); /* tree oid (a) */ @@ -131,17 +131,17 @@ static void add_fake_conflicts(git_index *index) ancestor_entry.path = "duplicate"; ancestor_entry.mode = GIT_FILEMODE_BLOB; GIT_INDEX_ENTRY_STAGE_SET(&ancestor_entry, 1); - git_oid__fromstr(&ancestor_entry.id, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1); + git_oid_from_string(&ancestor_entry.id, "a8233120f6ad708f843d861ce2b7228ec4e3dec6", GIT_OID_SHA1); our_entry.path = "duplicate"; our_entry.mode = GIT_FILEMODE_BLOB; GIT_INDEX_ENTRY_STAGE_SET(&our_entry, 2); - git_oid__fromstr(&our_entry.id, "45b983be36b73c0788dc9cbcb76cbb80fc7bb057", GIT_OID_SHA1); + git_oid_from_string(&our_entry.id, "45b983be36b73c0788dc9cbcb76cbb80fc7bb057", GIT_OID_SHA1); their_entry.path = "duplicate"; their_entry.mode = GIT_FILEMODE_BLOB; GIT_INDEX_ENTRY_STAGE_SET(&their_entry, 3); - git_oid__fromstr(&their_entry.id, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1); + git_oid_from_string(&their_entry.id, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1); cl_git_pass(git_index_conflict_add(index, &ancestor_entry, &our_entry, &their_entry)); } diff --git a/tests/libgit2/object/tree/frompath.c b/tests/libgit2/object/tree/frompath.c index 147e53e9311..1563f71b92d 100644 --- a/tests/libgit2/object/tree/frompath.c +++ b/tests/libgit2/object/tree/frompath.c @@ -11,7 +11,7 @@ void test_object_tree_frompath__initialize(void) cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git"))); cl_assert(repo != NULL); - cl_git_pass(git_oid__fromstr(&id, tree_with_subtrees_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, tree_with_subtrees_oid, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, repo, &id)); cl_assert(tree != NULL); } diff --git a/tests/libgit2/object/tree/parse.c b/tests/libgit2/object/tree/parse.c index fc985d672d8..11433c4307f 100644 --- a/tests/libgit2/object/tree/parse.c +++ b/tests/libgit2/object/tree/parse.c @@ -35,7 +35,7 @@ static void assert_tree_parses(const char *data, size_t datalen, const git_tree_entry *entry; git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, expected->oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, expected->oid, GIT_OID_SHA1)); cl_assert(entry = git_tree_entry_byname(tree, expected->filename)); cl_assert_equal_s(expected->filename, entry->filename); diff --git a/tests/libgit2/object/tree/read.c b/tests/libgit2/object/tree/read.c index e18637f035e..cea66e165f9 100644 --- a/tests/libgit2/object/tree/read.c +++ b/tests/libgit2/object/tree/read.c @@ -25,7 +25,7 @@ void test_object_tree_read__loaded(void) git_oid id; git_tree *tree; - git_oid__fromstr(&id, tree_oid, GIT_OID_SHA1); + git_oid_from_string(&id, tree_oid, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); @@ -48,7 +48,7 @@ void test_object_tree_read__two(void) const git_tree_entry *entry; git_object *obj; - git_oid__fromstr(&id, tree_oid, GIT_OID_SHA1); + git_oid_from_string(&id, tree_oid, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); diff --git a/tests/libgit2/object/tree/update.c b/tests/libgit2/object/tree/update.c index 13373b6c4f7..8fb99b95826 100644 --- a/tests/libgit2/object/tree/update.c +++ b/tests/libgit2/object/tree/update.c @@ -25,7 +25,7 @@ void test_object_tree_update__remove_blob(void) { GIT_TREE_UPDATE_REMOVE, GIT_OID_SHA1_ZERO, GIT_FILEMODE_BLOB /* ignored */, path}, }; - cl_git_pass(git_oid__fromstr(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ @@ -54,7 +54,7 @@ void test_object_tree_update__remove_blob_deeper(void) { GIT_TREE_UPDATE_REMOVE, GIT_OID_SHA1_ZERO, GIT_FILEMODE_BLOB /* ignored */, path}, }; - cl_git_pass(git_oid__fromstr(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ @@ -85,7 +85,7 @@ void test_object_tree_update__remove_all_entries(void) { GIT_TREE_UPDATE_REMOVE, GIT_OID_SHA1_ZERO, GIT_FILEMODE_BLOB /* ignored */, path2}, }; - cl_git_pass(git_oid__fromstr(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ @@ -116,7 +116,7 @@ void test_object_tree_update__replace_blob(void) { GIT_TREE_UPDATE_UPSERT, GIT_OID_SHA1_ZERO, GIT_FILEMODE_BLOB, path}, }; - cl_git_pass(git_oid__fromstr(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&base_tree, g_repo, &base_id)); /* Create it with an index */ @@ -124,7 +124,7 @@ void test_object_tree_update__replace_blob(void) cl_git_pass(git_index_read_tree(idx, base_tree)); entry.path = path; - cl_git_pass(git_oid__fromstr(&entry.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); entry.mode = GIT_FILEMODE_BLOB; cl_git_pass(git_index_add(idx, &entry)); @@ -132,7 +132,7 @@ void test_object_tree_update__replace_blob(void) git_index_free(idx); /* Perform the same operation via the tree updater */ - cl_git_pass(git_oid__fromstr(&updates[0].id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&updates[0].id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); cl_git_pass(git_tree_create_updated(&tree_updater_id, g_repo, base_tree, 1, updates)); cl_assert_equal_oid(&tree_index_id, &tree_updater_id); @@ -159,13 +159,13 @@ void test_object_tree_update__add_blobs(void) { GIT_TREE_UPDATE_UPSERT, GIT_OID_SHA1_ZERO, GIT_FILEMODE_BLOB, paths[2]}, }; - cl_git_pass(git_oid__fromstr(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&entry.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); for (i = 0; i < 3; i++) { - cl_git_pass(git_oid__fromstr(&updates[i].id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&updates[i].id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); } for (i = 0; i < 2; i++) { @@ -216,13 +216,13 @@ void test_object_tree_update__add_blobs_unsorted(void) { GIT_TREE_UPDATE_UPSERT, GIT_OID_SHA1_ZERO, GIT_FILEMODE_BLOB, paths[2]}, }; - cl_git_pass(git_oid__fromstr(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base_id, "c4dc1555e4d4fa0e0c9c3fc46734c7c35b3ce90b", GIT_OID_SHA1)); entry.mode = GIT_FILEMODE_BLOB; - cl_git_pass(git_oid__fromstr(&entry.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); for (i = 0; i < 3; i++) { - cl_git_pass(git_oid__fromstr(&updates[i].id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&updates[i].id, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); } for (i = 0; i < 2; i++) { @@ -264,7 +264,7 @@ void test_object_tree_update__add_conflict(void) }; for (i = 0; i < 2; i++) { - cl_git_pass(git_oid__fromstr(&updates[i].id, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&updates[i].id, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1)); } cl_git_fail(git_tree_create_updated(&tree_updater_id, g_repo, NULL, 2, updates)); @@ -280,7 +280,7 @@ void test_object_tree_update__add_conflict2(void) }; for (i = 0; i < 2; i++) { - cl_git_pass(git_oid__fromstr(&updates[i].id, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&updates[i].id, "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", GIT_OID_SHA1)); } cl_git_fail(git_tree_create_updated(&tree_updater_id, g_repo, NULL, 2, updates)); @@ -295,7 +295,7 @@ void test_object_tree_update__remove_invalid_submodule(void) }; /* This tree contains a submodule with an all-zero commit for a submodule named 'submodule' */ - cl_git_pass(git_oid__fromstr(&baseline_id, "396c7f1adb7925f51ba13a75f48252f44c5a14a2", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&baseline_id, "396c7f1adb7925f51ba13a75f48252f44c5a14a2", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&baseline, g_repo, &baseline_id)); cl_git_pass(git_tree_create_updated(&updated_tree_id, g_repo, baseline, 1, updates)); diff --git a/tests/libgit2/object/tree/walk.c b/tests/libgit2/object/tree/walk.c index 573a278493a..ee93b7c9a48 100644 --- a/tests/libgit2/object/tree/walk.c +++ b/tests/libgit2/object/tree/walk.c @@ -33,7 +33,7 @@ void test_object_tree_walk__0(void) git_tree *tree; int ct; - git_oid__fromstr(&id, tree_oid, GIT_OID_SHA1); + git_oid_from_string(&id, tree_oid, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); @@ -77,7 +77,7 @@ void test_object_tree_walk__1(void) git_tree *tree; int ct; - git_oid__fromstr(&id, tree_oid, GIT_OID_SHA1); + git_oid_from_string(&id, tree_oid, GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); @@ -138,7 +138,7 @@ void test_object_tree_walk__2(void) struct treewalk_skip_data data; /* look up a deep tree */ - git_oid__fromstr(&id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1); + git_oid_from_string(&id, "ae90f12eea699729ed24555e40b9fd669da12a12", GIT_OID_SHA1); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); memset(&data, 0, sizeof(data)); diff --git a/tests/libgit2/object/tree/write.c b/tests/libgit2/object/tree/write.c index 71a4c54f60d..ed74aca4aae 100644 --- a/tests/libgit2/object/tree/write.c +++ b/tests/libgit2/object/tree/write.c @@ -29,9 +29,9 @@ void test_object_tree_write__from_memory(void) git_tree *tree; git_oid id, bid, rid, id2; - git_oid__fromstr(&id, first_tree, GIT_OID_SHA1); - git_oid__fromstr(&id2, second_tree, GIT_OID_SHA1); - git_oid__fromstr(&bid, blob_oid, GIT_OID_SHA1); + git_oid_from_string(&id, first_tree, GIT_OID_SHA1); + git_oid_from_string(&id2, second_tree, GIT_OID_SHA1); + git_oid_from_string(&bid, blob_oid, GIT_OID_SHA1); /* create a second tree from first tree using `git_treebuilder_insert` * on REPOSITORY_FOLDER. @@ -71,10 +71,10 @@ void test_object_tree_write__subtree(void) git_oid id, bid, subtree_id, id2, id3; git_oid id_hiearar; - git_oid__fromstr(&id, first_tree, GIT_OID_SHA1); - git_oid__fromstr(&id2, second_tree, GIT_OID_SHA1); - git_oid__fromstr(&id3, third_tree, GIT_OID_SHA1); - git_oid__fromstr(&bid, blob_oid, GIT_OID_SHA1); + git_oid_from_string(&id, first_tree, GIT_OID_SHA1); + git_oid_from_string(&id2, second_tree, GIT_OID_SHA1); + git_oid_from_string(&id3, third_tree, GIT_OID_SHA1); + git_oid_from_string(&bid, blob_oid, GIT_OID_SHA1); /* create subtree */ cl_git_pass(git_treebuilder_new(&builder, g_repo, NULL)); @@ -135,8 +135,8 @@ void test_object_tree_write__sorted_subtrees(void) git_oid bid, tid, tree_oid; - cl_git_pass(git_oid__fromstr(&bid, blob_oid, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&tid, first_tree, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&bid, blob_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tid, first_tree, GIT_OID_SHA1)); cl_git_pass(git_treebuilder_new(&builder, g_repo, NULL)); @@ -195,7 +195,7 @@ void test_object_tree_write__removing_and_re_adding_in_treebuilder(void) git_oid entry_oid, tree_oid; git_tree *tree; - cl_git_pass(git_oid__fromstr(&entry_oid, blob_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry_oid, blob_oid, GIT_OID_SHA1)); cl_git_pass(git_treebuilder_new(&builder, g_repo, NULL)); @@ -286,7 +286,7 @@ void test_object_tree_write__filtering(void) git_oid entry_oid, tree_oid; git_tree *tree; - git_oid__fromstr(&entry_oid, blob_oid, GIT_OID_SHA1); + git_oid_from_string(&entry_oid, blob_oid, GIT_OID_SHA1); cl_git_pass(git_treebuilder_new(&builder, g_repo, NULL)); @@ -348,7 +348,7 @@ void test_object_tree_write__cruel_paths(void) int count = 0, i, j; git_tree_entry *te; - git_oid__fromstr(&bid, blob_oid, GIT_OID_SHA1); + git_oid_from_string(&bid, blob_oid, GIT_OID_SHA1); /* create tree */ cl_git_pass(git_treebuilder_new(&builder, g_repo, NULL)); @@ -411,7 +411,7 @@ void test_object_tree_write__protect_filesystems(void) git_treebuilder *builder; git_oid bid; - cl_git_pass(git_oid__fromstr(&bid, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&bid, "fa49b077972391ad58037050f2a75f74e3671e92", GIT_OID_SHA1)); /* Ensure that (by default) we can write objects with funny names on * platforms that are not affected. @@ -460,12 +460,12 @@ static void test_invalid_objects(bool should_allow_invalid) "Expected function call to fail: " #expr), \ NULL, 1) - cl_git_pass(git_oid__fromstr(&valid_blob_id, blob_oid, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&invalid_blob_id, + cl_git_pass(git_oid_from_string(&valid_blob_id, blob_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&invalid_blob_id, "1234567890123456789012345678901234567890", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&valid_tree_id, first_tree, GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&invalid_tree_id, + cl_git_pass(git_oid_from_string(&valid_tree_id, first_tree, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&invalid_tree_id, "0000000000111111111122222222223333333333", GIT_OID_SHA1)); @@ -497,7 +497,7 @@ static void test_inserting_submodule(void) git_treebuilder *bld; git_oid sm_id; - cl_git_pass(git_oid__fromstr(&sm_id, "da39a3ee5e6b4b0d3255bfef95601890afd80709", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&sm_id, "da39a3ee5e6b4b0d3255bfef95601890afd80709", GIT_OID_SHA1)); cl_git_pass(git_treebuilder_new(&bld, g_repo, NULL)); cl_git_pass(git_treebuilder_insert(NULL, bld, "sm", &sm_id, GIT_FILEMODE_COMMIT)); git_treebuilder_free(bld); diff --git a/tests/libgit2/odb/alternates.c b/tests/libgit2/odb/alternates.c index 4d2da6b1f39..aeadcc9d2e4 100644 --- a/tests/libgit2/odb/alternates.c +++ b/tests/libgit2/odb/alternates.c @@ -52,7 +52,7 @@ void test_odb_alternates__chained(void) /* Now load B and see if we can find an object from testrepo.git */ cl_git_pass(git_repository_open(&repo, paths[1])); - git_oid__fromstr(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &oid)); git_commit_free(commit); git_repository_free(repo); @@ -74,7 +74,7 @@ void test_odb_alternates__long_chain(void) /* Now load the last one and see if we can find an object from testrepo.git */ cl_git_pass(git_repository_open(&repo, paths[ARRAY_SIZE(paths)-1])); - git_oid__fromstr(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_fail(git_commit_lookup(&commit, repo, &oid)); git_repository_free(repo); } diff --git a/tests/libgit2/odb/backend/backend_helpers.c b/tests/libgit2/odb/backend/backend_helpers.c index c1a0070d6b3..d4d04b22c52 100644 --- a/tests/libgit2/odb/backend/backend_helpers.c +++ b/tests/libgit2/odb/backend/backend_helpers.c @@ -9,7 +9,7 @@ static int search_object(const fake_object **out, fake_backend *fake, const git_ while (obj && obj->oid) { git_oid current_oid; - git_oid__fromstr(¤t_oid, obj->oid, GIT_OID_SHA1); + git_oid_from_string(¤t_oid, obj->oid, GIT_OID_SHA1); if (git_oid_ncmp(¤t_oid, oid, len) == 0) { if (found) @@ -52,7 +52,7 @@ static int fake_backend__exists_prefix( return error; if (out) - git_oid__fromstr(out, obj->oid, GIT_OID_SHA1); + git_oid_from_string(out, obj->oid, GIT_OID_SHA1); return 0; } @@ -115,7 +115,7 @@ static int fake_backend__read_prefix( if ((error = search_object(&obj, fake, short_oid, len)) < 0) return error; - git_oid__fromstr(out_oid, obj->oid, GIT_OID_SHA1); + git_oid_from_string(out_oid, obj->oid, GIT_OID_SHA1); *len_p = strlen(obj->content); *buffer_p = git__strdup(obj->content); *type_p = GIT_OBJECT_BLOB; diff --git a/tests/libgit2/odb/backend/loose.c b/tests/libgit2/odb/backend/loose.c index 4e17bb96fe8..d917ca8ae4b 100644 --- a/tests/libgit2/odb/backend/loose.c +++ b/tests/libgit2/odb/backend/loose.c @@ -37,11 +37,11 @@ void test_odb_backend_loose__read_from_odb(void) git_oid oid; git_odb_object *obj; - cl_git_pass(git_oid__fromstr(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); cl_git_pass(git_odb_read(&obj, _odb, &oid)); git_odb_object_free(obj); - cl_git_pass(git_oid__fromstr(&oid, "fd093bff70906175335656e6ce6ae05783708765", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "fd093bff70906175335656e6ce6ae05783708765", GIT_OID_SHA1)); cl_git_pass(git_odb_read(&obj, _odb, &oid)); git_odb_object_free(obj); } @@ -52,11 +52,11 @@ void test_odb_backend_loose__read_from_repo(void) git_blob *blob; git_tree *tree; - cl_git_pass(git_oid__fromstr(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); cl_git_pass(git_blob_lookup(&blob, _repo, &oid)); git_blob_free(blob); - cl_git_pass(git_oid__fromstr(&oid, "fd093bff70906175335656e6ce6ae05783708765", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "fd093bff70906175335656e6ce6ae05783708765", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, _repo, &oid)); git_tree_free(tree); } diff --git a/tests/libgit2/odb/backend/mempack.c b/tests/libgit2/odb/backend/mempack.c index 036b13a5170..89e09577c1e 100644 --- a/tests/libgit2/odb/backend/mempack.c +++ b/tests/libgit2/odb/backend/mempack.c @@ -34,13 +34,13 @@ void test_odb_backend_mempack__write_succeeds(void) void test_odb_backend_mempack__read_of_missing_object_fails(void) { - cl_git_pass(git_oid__fromstr(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); cl_git_fail_with(GIT_ENOTFOUND, git_odb_read(&_obj, _odb, &_oid)); } void test_odb_backend_mempack__exists_of_missing_object_fails(void) { - cl_git_pass(git_oid__fromstr(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); cl_assert(git_odb_exists(_odb, &_oid) == 0); } diff --git a/tests/libgit2/odb/backend/multiple.c b/tests/libgit2/odb/backend/multiple.c index 97588164db9..689fbc2140a 100644 --- a/tests/libgit2/odb/backend/multiple.c +++ b/tests/libgit2/odb/backend/multiple.c @@ -24,7 +24,7 @@ void test_odb_backend_multiple__initialize(void) { git_odb_backend *backend; - git_oid__fromstr(&_existing_oid, EXISTING_HASH, GIT_OID_SHA1); + git_oid_from_string(&_existing_oid, EXISTING_HASH, GIT_OID_SHA1); _obj = NULL; _repo = cl_git_sandbox_init("testrepo.git"); diff --git a/tests/libgit2/odb/backend/nonrefreshing.c b/tests/libgit2/odb/backend/nonrefreshing.c index 5084eb7f746..82e0ab05352 100644 --- a/tests/libgit2/odb/backend/nonrefreshing.c +++ b/tests/libgit2/odb/backend/nonrefreshing.c @@ -33,8 +33,8 @@ static void setup_repository_and_backend(void) void test_odb_backend_nonrefreshing__initialize(void) { - git_oid__fromstr(&_nonexisting_oid, NONEXISTING_HASH, GIT_OID_SHA1); - git_oid__fromstr(&_existing_oid, EXISTING_HASH, GIT_OID_SHA1); + git_oid_from_string(&_nonexisting_oid, NONEXISTING_HASH, GIT_OID_SHA1); + git_oid_from_string(&_existing_oid, EXISTING_HASH, GIT_OID_SHA1); setup_repository_and_backend(); } diff --git a/tests/libgit2/odb/backend/refreshing.c b/tests/libgit2/odb/backend/refreshing.c index fcba748ee0d..cf82630df26 100644 --- a/tests/libgit2/odb/backend/refreshing.c +++ b/tests/libgit2/odb/backend/refreshing.c @@ -33,8 +33,8 @@ static void setup_repository_and_backend(void) void test_odb_backend_refreshing__initialize(void) { - git_oid__fromstr(&_nonexisting_oid, NONEXISTING_HASH, GIT_OID_SHA1); - git_oid__fromstr(&_existing_oid, EXISTING_HASH, GIT_OID_SHA1); + git_oid_from_string(&_nonexisting_oid, NONEXISTING_HASH, GIT_OID_SHA1); + git_oid_from_string(&_existing_oid, EXISTING_HASH, GIT_OID_SHA1); setup_repository_and_backend(); } diff --git a/tests/libgit2/odb/backend/simple.c b/tests/libgit2/odb/backend/simple.c index 25dfd90a2e2..da52d307f06 100644 --- a/tests/libgit2/odb/backend/simple.c +++ b/tests/libgit2/odb/backend/simple.c @@ -49,7 +49,7 @@ void test_odb_backend_simple__read_of_object_succeeds(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_pass(git_odb_read(&_obj, _odb, &_oid)); assert_object_contains(_obj, objs[0].content); @@ -64,7 +64,7 @@ void test_odb_backend_simple__read_of_nonexisting_object_fails(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); cl_git_fail_with(GIT_ENOTFOUND, git_odb_read(&_obj, _odb, &_oid)); } @@ -77,7 +77,7 @@ void test_odb_backend_simple__read_with_hash_mismatch_fails(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_fail_with(GIT_EMISMATCH, git_odb_read(&_obj, _odb, &_oid)); } @@ -89,7 +89,7 @@ void test_odb_backend_simple__read_with_hash_mismatch_succeeds_without_verificat }; setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION, 0)); cl_git_pass(git_odb_read(&_obj, _odb, &_oid)); @@ -106,7 +106,7 @@ void test_odb_backend_simple__read_prefix_succeeds(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4632", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4632", GIT_OID_SHA1)); cl_git_pass(git_odb_read(&_obj, _odb, &_oid)); assert_object_contains(_obj, objs[0].content); @@ -122,7 +122,7 @@ void test_odb_backend_simple__read_prefix_of_nonexisting_object_fails(void) setup_backend(objs); - cl_git_pass(git_oid__fromstrn(&_oid, hash, strlen(hash), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&_oid, hash, strlen(hash), GIT_OID_SHA1)); cl_git_fail_with(GIT_ENOTFOUND, git_odb_read(&_obj, _odb, &_oid)); } @@ -136,7 +136,7 @@ void test_odb_backend_simple__read_with_ambiguous_prefix_fails(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_fail_with(GIT_EAMBIGUOUS, git_odb_read_prefix(&_obj, _odb, &_oid, 7)); } @@ -150,7 +150,7 @@ void test_odb_backend_simple__read_with_highly_ambiguous_prefix(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION, 0)); cl_git_fail_with(GIT_EAMBIGUOUS, git_odb_read_prefix(&_obj, _odb, &_oid, 39)); cl_git_pass(git_odb_read_prefix(&_obj, _odb, &_oid, 40)); @@ -166,7 +166,7 @@ void test_odb_backend_simple__exists_succeeds(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_assert(git_odb_exists(_odb, &_oid)); } @@ -179,7 +179,7 @@ void test_odb_backend_simple__exists_fails_for_nonexisting_object(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, "f6ea0495187600e7b2288c8ac19c5886383a4633", GIT_OID_SHA1)); cl_assert(git_odb_exists(_odb, &_oid) == 0); } @@ -194,7 +194,7 @@ void test_odb_backend_simple__exists_prefix_succeeds(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_pass(git_odb_exists_prefix(&found, _odb, &_oid, 12)); cl_assert(git_oid_equal(&found, &_oid)); } @@ -209,7 +209,7 @@ void test_odb_backend_simple__exists_with_ambiguous_prefix_fails(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_fail_with(GIT_EAMBIGUOUS, git_odb_exists_prefix(NULL, _odb, &_oid, 7)); } @@ -224,7 +224,7 @@ void test_odb_backend_simple__exists_with_highly_ambiguous_prefix(void) setup_backend(objs); - cl_git_pass(git_oid__fromstr(&_oid, objs[0].oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_oid, objs[0].oid, GIT_OID_SHA1)); cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION, 0)); cl_git_fail_with(GIT_EAMBIGUOUS, git_odb_exists_prefix(&found, _odb, &_oid, 39)); cl_git_pass(git_odb_exists_prefix(&found, _odb, &_oid, 40)); diff --git a/tests/libgit2/odb/emptyobjects.c b/tests/libgit2/odb/emptyobjects.c index e7cc668d16c..baa6330b6be 100644 --- a/tests/libgit2/odb/emptyobjects.c +++ b/tests/libgit2/odb/emptyobjects.c @@ -24,7 +24,7 @@ void test_odb_emptyobjects__blob_notfound(void) git_oid id, written_id; git_blob *blob; - cl_git_pass(git_oid__fromstr(&id, "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", GIT_OID_SHA1)); cl_git_fail_with(GIT_ENOTFOUND, git_blob_lookup(&blob, g_repo, &id)); cl_git_pass(git_odb_write(&written_id, g_odb, "", 0, GIT_OBJECT_BLOB)); @@ -36,7 +36,7 @@ void test_odb_emptyobjects__read_tree(void) git_oid id; git_tree *tree; - cl_git_pass(git_oid__fromstr(&id, "4b825dc642cb6eb9a060e54bf8d69288fbee4904", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "4b825dc642cb6eb9a060e54bf8d69288fbee4904", GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, g_repo, &id)); cl_assert_equal_i(GIT_OBJECT_TREE, git_object_type((git_object *) tree)); cl_assert_equal_i(0, git_tree_entrycount(tree)); @@ -49,7 +49,7 @@ void test_odb_emptyobjects__read_tree_odb(void) git_oid id; git_odb_object *tree_odb; - cl_git_pass(git_oid__fromstr(&id, "4b825dc642cb6eb9a060e54bf8d69288fbee4904", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "4b825dc642cb6eb9a060e54bf8d69288fbee4904", GIT_OID_SHA1)); cl_git_pass(git_odb_read(&tree_odb, g_odb, &id)); cl_assert(git_odb_object_data(tree_odb)); cl_assert_equal_s("", git_odb_object_data(tree_odb)); diff --git a/tests/libgit2/odb/freshen.c b/tests/libgit2/odb/freshen.c index e337c82b773..b425abad259 100644 --- a/tests/libgit2/odb/freshen.c +++ b/tests/libgit2/odb/freshen.c @@ -43,7 +43,7 @@ void test_odb_freshen__loose_blob(void) git_oid expected_id, id; struct stat before, after; - cl_git_pass(git_oid__fromstr(&expected_id, LOOSE_BLOB_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, LOOSE_BLOB_ID, GIT_OID_SHA1)); set_time_wayback(&before, LOOSE_BLOB_FN); /* make sure we freshen a blob */ @@ -64,7 +64,7 @@ void test_odb_freshen__readonly_object(void) git_oid expected_id, id; struct stat before, after; - cl_git_pass(git_oid__fromstr(&expected_id, UNIQUE_BLOB_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, UNIQUE_BLOB_ID, GIT_OID_SHA1)); cl_git_pass(git_blob_create_from_buffer(&id, repo, UNIQUE_STR, CONST_STRLEN(UNIQUE_STR))); cl_assert_equal_oid(&expected_id, &id); @@ -89,7 +89,7 @@ void test_odb_freshen__loose_tree(void) git_tree *tree; struct stat before, after; - cl_git_pass(git_oid__fromstr(&expected_id, LOOSE_TREE_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, LOOSE_TREE_ID, GIT_OID_SHA1)); set_time_wayback(&before, LOOSE_TREE_FN); cl_git_pass(git_tree_lookup(&tree, repo, &expected_id)); @@ -113,11 +113,11 @@ void test_odb_freshen__tree_during_commit(void) git_signature *signature; struct stat before, after; - cl_git_pass(git_oid__fromstr(&tree_id, LOOSE_TREE_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&tree_id, LOOSE_TREE_ID, GIT_OID_SHA1)); cl_git_pass(git_tree_lookup(&tree, repo, &tree_id)); set_time_wayback(&before, LOOSE_TREE_FN); - cl_git_pass(git_oid__fromstr(&parent_id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&parent_id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&parent, repo, &parent_id)); cl_git_pass(git_signature_new(&signature, @@ -147,7 +147,7 @@ void test_odb_freshen__packed_object(void) struct stat before, after; struct p_timeval old_times[2]; - cl_git_pass(git_oid__fromstr(&expected_id, PACKED_ID, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_id, PACKED_ID, GIT_OID_SHA1)); old_times[0].tv_sec = 1234567890; old_times[0].tv_usec = 0; diff --git a/tests/libgit2/odb/largefiles.c b/tests/libgit2/odb/largefiles.c index 2ec48102b38..0f53e477bc2 100644 --- a/tests/libgit2/odb/largefiles.c +++ b/tests/libgit2/odb/largefiles.c @@ -57,7 +57,7 @@ void test_odb_largefiles__write_from_memory(void) for (i = 0; i < (3041*126103); i++) cl_git_pass(git_str_puts(&buf, "Hello, world.\n")); - git_oid__fromstr(&expected, "3fb56989cca483b21ba7cb0a6edb229d10e1c26c", GIT_OID_SHA1); + git_oid_from_string(&expected, "3fb56989cca483b21ba7cb0a6edb229d10e1c26c", GIT_OID_SHA1); cl_git_pass(git_odb_write(&oid, odb, buf.ptr, buf.size, GIT_OBJECT_BLOB)); cl_assert_equal_oid(&expected, &oid); @@ -75,7 +75,7 @@ void test_odb_largefiles__streamwrite(void) !cl_is_env_set("GITTEST_SLOW")) cl_skip(); - git_oid__fromstr(&expected, "3fb56989cca483b21ba7cb0a6edb229d10e1c26c", GIT_OID_SHA1); + git_oid_from_string(&expected, "3fb56989cca483b21ba7cb0a6edb229d10e1c26c", GIT_OID_SHA1); writefile(&oid); cl_assert_equal_oid(&expected, &oid); diff --git a/tests/libgit2/odb/loose.c b/tests/libgit2/odb/loose.c index 4ad47772c23..e68d5d13b4d 100644 --- a/tests/libgit2/odb/loose.c +++ b/tests/libgit2/odb/loose.c @@ -45,7 +45,7 @@ static void test_read_object(object_data *data) write_object_files(data); cl_git_pass(git_odb_open_ext(&odb, "test-objects", &opts)); - cl_git_pass(git_oid__fromstr(&id, data->id, data->id_type)); + cl_git_pass(git_oid_from_string(&id, data->id, data->id_type)); cl_git_pass(git_odb_read(&obj, odb, &id)); tmp.data = obj->buffer; @@ -71,7 +71,7 @@ static void test_read_header(object_data *data) write_object_files(data); cl_git_pass(git_odb_open_ext(&odb, "test-objects", &opts)); - cl_git_pass(git_oid__fromstr(&id, data->id, data->id_type)); + cl_git_pass(git_oid_from_string(&id, data->id, data->id_type)); cl_git_pass(git_odb_read_header(&len, &type, odb, &id)); cl_assert_equal_sz(data->dlen, len); @@ -96,7 +96,7 @@ static void test_readstream_object(object_data *data, size_t blocksize) write_object_files(data); cl_git_pass(git_odb_open_ext(&odb, "test-objects", &opts)); - cl_git_pass(git_oid__fromstr(&id, data->id, data->id_type)); + cl_git_pass(git_oid_from_string(&id, data->id, data->id_type)); cl_git_pass(git_odb_open_rstream(&stream, &tmp.len, &tmp.type, odb, &id)); remain = tmp.len; @@ -141,18 +141,18 @@ void test_odb_loose__exists_sha1(void) write_object_files(&one); cl_git_pass(git_odb_open(&odb, "test-objects")); - cl_git_pass(git_oid__fromstr(&id, one.id, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, one.id, GIT_OID_SHA1)); cl_assert(git_odb_exists(odb, &id)); - cl_git_pass(git_oid__fromstrp(&id, "8b137891", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&id, "8b137891", 8, GIT_OID_SHA1)); cl_git_pass(git_odb_exists_prefix(&id2, odb, &id, 8)); cl_assert_equal_i(0, git_oid_streq(&id2, one.id)); /* Test for a missing object */ - cl_git_pass(git_oid__fromstr(&id, "8b137891791fe96927ad78e64b0aad7bded08baa", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "8b137891791fe96927ad78e64b0aad7bded08baa", GIT_OID_SHA1)); cl_assert(!git_odb_exists(odb, &id)); - cl_git_pass(git_oid__fromstrp(&id, "8b13789a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&id, "8b13789a", 8, GIT_OID_SHA1)); cl_assert_equal_i(GIT_ENOTFOUND, git_odb_exists_prefix(&id2, odb, &id, 8)); git_odb_free(odb); @@ -172,18 +172,18 @@ void test_odb_loose__exists_sha256(void) write_object_files(&one_sha256); cl_git_pass(git_odb_open_ext(&odb, "test-objects", &odb_opts)); - cl_git_pass(git_oid__fromstr(&id, one_sha256.id, GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, one_sha256.id, GIT_OID_SHA256)); cl_assert(git_odb_exists(odb, &id)); - cl_git_pass(git_oid__fromstrp(&id, "4c0d52d1", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_prefix(&id, "4c0d52d1", 8, GIT_OID_SHA256)); cl_git_pass(git_odb_exists_prefix(&id2, odb, &id, 8)); cl_assert_equal_i(0, git_oid_streq(&id2, one_sha256.id)); /* Test for a missing object */ - cl_git_pass(git_oid__fromstr(&id, "4c0d52d180c61d01ce1a91dec5ee58f0cbe65fd59433aea803ab927965493faa", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, "4c0d52d180c61d01ce1a91dec5ee58f0cbe65fd59433aea803ab927965493faa", GIT_OID_SHA256)); cl_assert(!git_odb_exists(odb, &id)); - cl_git_pass(git_oid__fromstrp(&id, "4c0d52da", GIT_OID_SHA256)); + cl_git_pass(git_oid_from_prefix(&id, "4c0d52da", 8, GIT_OID_SHA256)); cl_assert_equal_i(GIT_ENOTFOUND, git_odb_exists_prefix(&id2, odb, &id, 8)); git_odb_free(odb); diff --git a/tests/libgit2/odb/mixed.c b/tests/libgit2/odb/mixed.c index 2cba8cb1479..2c66afe4cac 100644 --- a/tests/libgit2/odb/mixed.c +++ b/tests/libgit2/odb/mixed.c @@ -20,13 +20,13 @@ void test_odb_mixed__dup_oid(void) { git_oid oid; git_odb_object *obj; - cl_git_pass(git_oid__fromstr(&oid, hex, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, hex, GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, GIT_OID_SHA1_HEXSIZE)); git_odb_object_free(obj); cl_git_pass(git_odb_exists_prefix(NULL, _odb, &oid, GIT_OID_SHA1_HEXSIZE)); - cl_git_pass(git_oid__fromstrn(&oid, short_hex, sizeof(short_hex) - 1, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, short_hex, sizeof(short_hex) - 1, GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, sizeof(short_hex) - 1)); git_odb_object_free(obj); @@ -48,63 +48,63 @@ void test_odb_mixed__dup_oid_prefix_0(void) { /* ambiguous in the same pack file */ strncpy(hex, "dea509d0", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_assert_equal_i( GIT_EAMBIGUOUS, git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); cl_assert_equal_i( GIT_EAMBIGUOUS, git_odb_exists_prefix(&found, _odb, &oid, strlen(hex))); strncpy(hex, "dea509d09", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); cl_git_pass(git_odb_exists_prefix(&found, _odb, &oid, strlen(hex))); cl_assert_equal_oid(&found, git_odb_object_id(obj)); git_odb_object_free(obj); strncpy(hex, "dea509d0b", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); git_odb_object_free(obj); /* ambiguous in different pack files */ strncpy(hex, "81b5bff5", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_assert_equal_i( GIT_EAMBIGUOUS, git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); cl_assert_equal_i( GIT_EAMBIGUOUS, git_odb_exists_prefix(&found, _odb, &oid, strlen(hex))); strncpy(hex, "81b5bff5b", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); cl_git_pass(git_odb_exists_prefix(&found, _odb, &oid, strlen(hex))); cl_assert_equal_oid(&found, git_odb_object_id(obj)); git_odb_object_free(obj); strncpy(hex, "81b5bff5f", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); git_odb_object_free(obj); /* ambiguous in pack file and loose */ strncpy(hex, "0ddeaded", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_assert_equal_i( GIT_EAMBIGUOUS, git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); cl_assert_equal_i( GIT_EAMBIGUOUS, git_odb_exists_prefix(&found, _odb, &oid, strlen(hex))); strncpy(hex, "0ddeaded9", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); cl_git_pass(git_odb_exists_prefix(&found, _odb, &oid, strlen(hex))); cl_assert_equal_oid(&found, git_odb_object_id(obj)); git_odb_object_free(obj); strncpy(hex, "0ddeadede", sizeof(hex)); - cl_git_pass(git_oid__fromstrn(&oid, hex, strlen(hex), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, hex, strlen(hex), GIT_OID_SHA1)); cl_git_pass(git_odb_read_prefix(&obj, _odb, &oid, strlen(hex))); git_odb_object_free(obj); } @@ -170,7 +170,7 @@ static void setup_prefix_query( size_t len = strlen(expand_id_test_data[i].lookup_id); - git_oid__fromstrn(&id->id, expand_id_test_data[i].lookup_id, len, GIT_OID_SHA1); + git_oid_from_prefix(&id->id, expand_id_test_data[i].lookup_id, len, GIT_OID_SHA1); id->length = (unsigned short)len; id->type = expand_id_test_data[i].expected_type; } @@ -191,7 +191,7 @@ static void assert_found_objects(git_odb_expand_id *ids) git_object_t expected_type = 0; if (expand_id_test_data[i].expected_id) { - git_oid__fromstr(&expected_id, expand_id_test_data[i].expected_id, GIT_OID_SHA1); + git_oid_from_string(&expected_id, expand_id_test_data[i].expected_id, GIT_OID_SHA1); expected_len = GIT_OID_SHA1_HEXSIZE; expected_type = expand_id_test_data[i].expected_type; } diff --git a/tests/libgit2/odb/open.c b/tests/libgit2/odb/open.c index 05e65d2c0eb..1a178e0c1f4 100644 --- a/tests/libgit2/odb/open.c +++ b/tests/libgit2/odb/open.c @@ -20,8 +20,8 @@ void test_odb_open__exists(void) cl_git_pass(git_odb_open_ext(&odb, "testrepo.git/objects", &opts)); #ifdef GIT_EXPERIMENTAL_SHA256 - cl_git_pass(git_oid_fromstr(&one, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); - cl_git_pass(git_oid_fromstr(&two, "00112233445566778899aabbccddeeff00112233", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "00112233445566778899aabbccddeeff00112233", GIT_OID_SHA1)); #else cl_git_pass(git_oid_fromstr(&one, "1385f264afb75a56a5bec74243be9b367ba4ca08")); cl_git_pass(git_oid_fromstr(&two, "00112233445566778899aabbccddeeff00112233")); diff --git a/tests/libgit2/odb/packed.c b/tests/libgit2/odb/packed.c index 6fbe0a46dab..f33df1054fe 100644 --- a/tests/libgit2/odb/packed.c +++ b/tests/libgit2/odb/packed.c @@ -23,7 +23,7 @@ void test_odb_packed__mass_read(void) git_oid id; git_odb_object *obj; - cl_git_pass(git_oid__fromstr(&id, packed_objects[i], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, packed_objects[i], GIT_OID_SHA1)); cl_assert(git_odb_exists(_odb, &id) == 1); cl_git_pass(git_odb_read(&obj, _odb, &id)); @@ -41,7 +41,7 @@ void test_odb_packed__read_header_0(void) size_t len; git_object_t type; - cl_git_pass(git_oid__fromstr(&id, packed_objects[i], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, packed_objects[i], GIT_OID_SHA1)); cl_git_pass(git_odb_read(&obj, _odb, &id)); cl_git_pass(git_odb_read_header(&len, &type, _odb, &id)); @@ -63,7 +63,7 @@ void test_odb_packed__read_header_1(void) size_t len; git_object_t type; - cl_git_pass(git_oid__fromstr(&id, loose_objects[i], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, loose_objects[i], GIT_OID_SHA1)); cl_assert(git_odb_exists(_odb, &id) == 1); diff --git a/tests/libgit2/odb/packed256.c b/tests/libgit2/odb/packed256.c index 3b04e88b558..c6ca56ae354 100644 --- a/tests/libgit2/odb/packed256.c +++ b/tests/libgit2/odb/packed256.c @@ -37,7 +37,7 @@ void test_odb_packed256__mass_read(void) git_oid id; git_odb_object *obj; - cl_git_pass(git_oid__fromstr(&id, packed_objects_256[i], GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, packed_objects_256[i], GIT_OID_SHA256)); cl_assert(git_odb_exists(_odb, &id) == 1); cl_git_pass(git_odb_read(&obj, _odb, &id)); @@ -57,7 +57,7 @@ void test_odb_packed256__read_header_0(void) size_t len; git_object_t type; - cl_git_pass(git_oid__fromstr(&id, packed_objects_256[i], GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, packed_objects_256[i], GIT_OID_SHA256)); cl_git_pass(git_odb_read(&obj, _odb, &id)); cl_git_pass(git_odb_read_header(&len, &type, _odb, &id)); @@ -81,7 +81,7 @@ void test_odb_packed256__read_header_1(void) size_t len; git_object_t type; - cl_git_pass(git_oid__fromstr(&id, loose_objects_256[i], GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, loose_objects_256[i], GIT_OID_SHA256)); cl_assert(git_odb_exists(_odb, &id) == 1); diff --git a/tests/libgit2/odb/packedone.c b/tests/libgit2/odb/packedone.c index 4dea474f95c..c564f57d4d4 100644 --- a/tests/libgit2/odb/packedone.c +++ b/tests/libgit2/odb/packedone.c @@ -37,7 +37,7 @@ void test_odb_packedone__mass_read(void) git_oid id; git_odb_object *obj; - cl_git_pass(git_oid__fromstr(&id, packed_objects_one[i], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, packed_objects_one[i], GIT_OID_SHA1)); cl_assert(git_odb_exists(_odb, &id) == 1); cl_git_pass(git_odb_read(&obj, _odb, &id)); @@ -55,7 +55,7 @@ void test_odb_packedone__read_header_0(void) size_t len; git_object_t type; - cl_git_pass(git_oid__fromstr(&id, packed_objects_one[i], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, packed_objects_one[i], GIT_OID_SHA1)); cl_git_pass(git_odb_read(&obj, _odb, &id)); cl_git_pass(git_odb_read_header(&len, &type, _odb, &id)); diff --git a/tests/libgit2/odb/packedone256.c b/tests/libgit2/odb/packedone256.c index 6fc6a80814a..4152145fb0e 100644 --- a/tests/libgit2/odb/packedone256.c +++ b/tests/libgit2/odb/packedone256.c @@ -44,7 +44,7 @@ void test_odb_packedone256__mass_read(void) git_oid id; git_odb_object *obj; - cl_git_pass(git_oid__fromstr(&id, packed_objects_one256[i], GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, packed_objects_one256[i], GIT_OID_SHA256)); cl_assert(git_odb_exists(_odb, &id) == 1); cl_git_pass(git_odb_read(&obj, _odb, &id)); @@ -64,7 +64,7 @@ void test_odb_packedone256__read_header_0(void) size_t len; git_object_t type; - cl_git_pass(git_oid__fromstr(&id, packed_objects_one256[i], GIT_OID_SHA256)); + cl_git_pass(git_oid_from_string(&id, packed_objects_one256[i], GIT_OID_SHA256)); cl_git_pass(git_odb_read(&obj, _odb, &id)); cl_git_pass(git_odb_read_header(&len, &type, _odb, &id)); diff --git a/tests/libgit2/online/clone.c b/tests/libgit2/online/clone.c index 6e9c8ea5051..e36dfac9d32 100644 --- a/tests/libgit2/online/clone.c +++ b/tests/libgit2/online/clone.c @@ -859,7 +859,7 @@ static int ssh_certificate_check(git_cert *cert, int valid, const char *host, vo cl_assert(_remote_ssh_fingerprint); - cl_git_pass(git_oid__fromstrp(&expected, _remote_ssh_fingerprint, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&expected, _remote_ssh_fingerprint, strlen(_remote_ssh_fingerprint), GIT_OID_SHA1)); cl_assert_equal_i(GIT_CERT_HOSTKEY_LIBSSH2, cert->cert_type); key = (git_cert_hostkey *) cert; diff --git a/tests/libgit2/online/fetch.c b/tests/libgit2/online/fetch.c index 75ec0cde5d4..9c2d3d75ad0 100644 --- a/tests/libgit2/online/fetch.c +++ b/tests/libgit2/online/fetch.c @@ -371,7 +371,7 @@ void test_online_fetch__reachable_commit(void) refspecs.strings = &refspec; refspecs.count = 1; - git_oid__fromstr(&expected_id, "2c349335b7f797072cf729c4f3bb0914ecb6dec9", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "2c349335b7f797072cf729c4f3bb0914ecb6dec9", GIT_OID_SHA1); cl_git_pass(git_remote_create(&remote, _repo, "test", "https://github.com/libgit2/TestGitRepository")); @@ -401,7 +401,7 @@ void test_online_fetch__reachable_commit_without_destination(void) refspecs.strings = &refspec; refspecs.count = 1; - git_oid__fromstr(&expected_id, "2c349335b7f797072cf729c4f3bb0914ecb6dec9", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "2c349335b7f797072cf729c4f3bb0914ecb6dec9", GIT_OID_SHA1); cl_git_pass(git_remote_create(&remote, _repo, "test", "https://github.com/libgit2/TestGitRepository")); diff --git a/tests/libgit2/online/push.c b/tests/libgit2/online/push.c index dd221f44443..969ecaff631 100644 --- a/tests/libgit2/online/push.c +++ b/tests/libgit2/online/push.c @@ -350,18 +350,18 @@ void test_online_push__initialize(void) * * a78705c3b2725f931d3ee05348d83cc26700f247 (b2, b1) added fold and fold/b.txt * * 5c0bb3d1b9449d1cc69d7519fd05166f01840915 added a.txt */ - git_oid__fromstr(&_oid_b6, "951bbbb90e2259a4c8950db78946784fb53fcbce", GIT_OID_SHA1); - git_oid__fromstr(&_oid_b5, "fa38b91f199934685819bea316186d8b008c52a2", GIT_OID_SHA1); - git_oid__fromstr(&_oid_b4, "27b7ce66243eb1403862d05f958c002312df173d", GIT_OID_SHA1); - git_oid__fromstr(&_oid_b3, "d9b63a88223d8367516f50bd131a5f7349b7f3e4", GIT_OID_SHA1); - git_oid__fromstr(&_oid_b2, "a78705c3b2725f931d3ee05348d83cc26700f247", GIT_OID_SHA1); - git_oid__fromstr(&_oid_b1, "a78705c3b2725f931d3ee05348d83cc26700f247", GIT_OID_SHA1); - - git_oid__fromstr(&_tag_commit, "805c54522e614f29f70d2413a0470247d8b424ac", GIT_OID_SHA1); - git_oid__fromstr(&_tag_tree, "ff83aa4c5e5d28e3bcba2f5c6e2adc61286a4e5e", GIT_OID_SHA1); - git_oid__fromstr(&_tag_blob, "b483ae7ba66decee9aee971f501221dea84b1498", GIT_OID_SHA1); - git_oid__fromstr(&_tag_lightweight, "951bbbb90e2259a4c8950db78946784fb53fcbce", GIT_OID_SHA1); - git_oid__fromstr(&_tag_tag, "eea4f2705eeec2db3813f2430829afce99cd00b5", GIT_OID_SHA1); + git_oid_from_string(&_oid_b6, "951bbbb90e2259a4c8950db78946784fb53fcbce", GIT_OID_SHA1); + git_oid_from_string(&_oid_b5, "fa38b91f199934685819bea316186d8b008c52a2", GIT_OID_SHA1); + git_oid_from_string(&_oid_b4, "27b7ce66243eb1403862d05f958c002312df173d", GIT_OID_SHA1); + git_oid_from_string(&_oid_b3, "d9b63a88223d8367516f50bd131a5f7349b7f3e4", GIT_OID_SHA1); + git_oid_from_string(&_oid_b2, "a78705c3b2725f931d3ee05348d83cc26700f247", GIT_OID_SHA1); + git_oid_from_string(&_oid_b1, "a78705c3b2725f931d3ee05348d83cc26700f247", GIT_OID_SHA1); + + git_oid_from_string(&_tag_commit, "805c54522e614f29f70d2413a0470247d8b424ac", GIT_OID_SHA1); + git_oid_from_string(&_tag_tree, "ff83aa4c5e5d28e3bcba2f5c6e2adc61286a4e5e", GIT_OID_SHA1); + git_oid_from_string(&_tag_blob, "b483ae7ba66decee9aee971f501221dea84b1498", GIT_OID_SHA1); + git_oid_from_string(&_tag_lightweight, "951bbbb90e2259a4c8950db78946784fb53fcbce", GIT_OID_SHA1); + git_oid_from_string(&_tag_tag, "eea4f2705eeec2db3813f2430829afce99cd00b5", GIT_OID_SHA1); /* Remote URL environment variable must be set. User and password are optional. */ @@ -1011,7 +1011,7 @@ void test_online_push__notes(void) expected_ref exp_refs[] = { { "refs/notes/commits", &expected_oid } }; const char *specs_del[] = { ":refs/notes/commits" }; - git_oid__fromstr(&expected_oid, "8461a99b27b7043e58ff6e1f5d2cf07d282534fb", GIT_OID_SHA1); + git_oid_from_string(&expected_oid, "8461a99b27b7043e58ff6e1f5d2cf07d282534fb", GIT_OID_SHA1); target_oid = &_oid_b6; @@ -1046,7 +1046,7 @@ void test_online_push__configured(void) expected_ref exp_refs[] = { { "refs/notes/commits", &expected_oid } }; const char *specs_del[] = { ":refs/notes/commits" }; - git_oid__fromstr(&expected_oid, "8461a99b27b7043e58ff6e1f5d2cf07d282534fb", GIT_OID_SHA1); + git_oid_from_string(&expected_oid, "8461a99b27b7043e58ff6e1f5d2cf07d282534fb", GIT_OID_SHA1); target_oid = &_oid_b6; diff --git a/tests/libgit2/online/shallow.c b/tests/libgit2/online/shallow.c index a5508c16d45..8d71c6be507 100644 --- a/tests/libgit2/online/shallow.c +++ b/tests/libgit2/online/shallow.c @@ -336,9 +336,9 @@ void test_online_shallow__preserve_unrelated_roots(void) char *third_commit = "7f822839a2fe9760f386cbbbcb3f92c5fe81def7"; #ifdef GIT_EXPERIMENTAL_SHA256 - cl_git_pass(git_oid_fromstr(&first_oid, first_commit, GIT_OID_SHA1)); - cl_git_pass(git_oid_fromstr(&second_oid, second_commit, GIT_OID_SHA1)); - cl_git_pass(git_oid_fromstr(&third_oid, third_commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&first_oid, first_commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&second_oid, second_commit, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&third_oid, third_commit, GIT_OID_SHA1)); #else cl_git_pass(git_oid_fromstr(&first_oid, first_commit)); cl_git_pass(git_oid_fromstr(&second_oid, second_commit)); diff --git a/tests/libgit2/pack/indexer.c b/tests/libgit2/pack/indexer.c index 023eb5da795..2d1a9d3f273 100644 --- a/tests/libgit2/pack/indexer.c +++ b/tests/libgit2/pack/indexer.c @@ -173,7 +173,7 @@ void test_pack_indexer__fix_thin(void) /* Store the missing base into your ODB so the indexer can fix the pack */ cl_git_pass(git_odb_write(&id, odb, base_obj, base_obj_len, GIT_OBJECT_BLOB)); - git_oid__fromstr(&should_id, "e68fe8129b546b101aee9510c5328e7f21ca1d18", GIT_OID_SHA1); + git_oid_from_string(&should_id, "e68fe8129b546b101aee9510c5328e7f21ca1d18", GIT_OID_SHA1); cl_assert_equal_oid(&should_id, &id); #ifdef GIT_EXPERIMENTAL_SHA256 @@ -250,7 +250,7 @@ void test_pack_indexer__corrupt_length(void) /* Store the missing base into your ODB so the indexer can fix the pack */ cl_git_pass(git_odb_write(&id, odb, base_obj, base_obj_len, GIT_OBJECT_BLOB)); - git_oid__fromstr(&should_id, "e68fe8129b546b101aee9510c5328e7f21ca1d18", GIT_OID_SHA1); + git_oid_from_string(&should_id, "e68fe8129b546b101aee9510c5328e7f21ca1d18", GIT_OID_SHA1); cl_assert_equal_oid(&should_id, &id); #ifdef GIT_EXPERIMENTAL_SHA256 diff --git a/tests/libgit2/pack/midx.c b/tests/libgit2/pack/midx.c index d7180c47898..6384e97be67 100644 --- a/tests/libgit2/pack/midx.c +++ b/tests/libgit2/pack/midx.c @@ -19,7 +19,7 @@ void test_pack_midx__parse(void) cl_git_pass(git_midx_open(&idx, git_str_cstr(&midx_path), GIT_OID_SHA1)); cl_assert_equal_i(git_midx_needs_refresh(idx, git_str_cstr(&midx_path)), 0); - cl_git_pass(git_oid__fromstr(&id, "5001298e0c09ad9c34e4249bc5801c75e9754fa5", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "5001298e0c09ad9c34e4249bc5801c75e9754fa5", GIT_OID_SHA1)); cl_git_pass(git_midx_entry_find(&e, idx, &id, GIT_OID_SHA1_HEXSIZE)); cl_assert_equal_oid(&e.sha1, &id); cl_assert_equal_s( @@ -39,7 +39,7 @@ void test_pack_midx__lookup(void) cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git"))); - cl_git_pass(git_oid__fromstr(&id, "5001298e0c09ad9c34e4249bc5801c75e9754fa5", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "5001298e0c09ad9c34e4249bc5801c75e9754fa5", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup_prefix(&commit, repo, &id, GIT_OID_SHA1_HEXSIZE)); cl_assert_equal_s(git_commit_message(commit), "packed commit one\n"); diff --git a/tests/libgit2/pack/sharing.c b/tests/libgit2/pack/sharing.c index dd7aee8ba1e..6524a5356fd 100644 --- a/tests/libgit2/pack/sharing.c +++ b/tests/libgit2/pack/sharing.c @@ -17,7 +17,7 @@ void test_pack_sharing__open_two_repos(void) cl_git_pass(git_repository_open(&repo1, cl_fixture("testrepo.git"))); cl_git_pass(git_repository_open(&repo2, cl_fixture("testrepo.git"))); - git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_object_lookup(&obj1, repo1, &id, GIT_OBJECT_ANY)); cl_git_pass(git_object_lookup(&obj2, repo2, &id, GIT_OBJECT_ANY)); diff --git a/tests/libgit2/perf/helper__perf__do_merge.c b/tests/libgit2/perf/helper__perf__do_merge.c index 6f53af63cde..ce36a95aad4 100644 --- a/tests/libgit2/perf/helper__perf__do_merge.c +++ b/tests/libgit2/perf/helper__perf__do_merge.c @@ -32,7 +32,7 @@ void perf__do_merge(const char *fixture, cl_git_pass(git_clone(&g_repo, fixture, test_name, &clone_opts)); perf__timer__stop(&t_clone); - git_oid__fromstr(&oid_a, id_a, GIT_OID_SHA1); + git_oid_from_string(&oid_a, id_a, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit_a, g_repo, &oid_a)); cl_git_pass(git_branch_create(&ref_branch_a, g_repo, "A", commit_a, @@ -44,7 +44,7 @@ void perf__do_merge(const char *fixture, cl_git_pass(git_repository_set_head(g_repo, git_reference_name(ref_branch_a))); - git_oid__fromstr(&oid_b, id_b, GIT_OID_SHA1); + git_oid_from_string(&oid_b, id_b, GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit_b, g_repo, &oid_b)); cl_git_pass(git_branch_create(&ref_branch_b, g_repo, "B", commit_b, diff --git a/tests/libgit2/rebase/abort.c b/tests/libgit2/rebase/abort.c index da0dfe893a1..3bd4060ecce 100644 --- a/tests/libgit2/rebase/abort.c +++ b/tests/libgit2/rebase/abort.c @@ -128,8 +128,8 @@ void test_rebase_abort__merge_by_id(void) git_oid branch_id, onto_id; git_annotated_commit *branch_head, *onto_head; - cl_git_pass(git_oid__fromstr(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); cl_git_pass(git_annotated_commit_lookup(&onto_head, repo, &onto_id)); @@ -170,8 +170,8 @@ void test_rebase_abort__merge_by_id_immediately_after_init(void) git_oid branch_id, onto_id; git_annotated_commit *branch_head, *onto_head; - cl_git_pass(git_oid__fromstr(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); cl_git_pass(git_annotated_commit_lookup(&onto_head, repo, &onto_id)); @@ -195,8 +195,8 @@ void test_rebase_abort__detached_head(void) git_signature *signature; git_annotated_commit *branch_head, *onto_head; - git_oid__fromstr(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1); - git_oid__fromstr(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1); + git_oid_from_string(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); cl_git_pass(git_annotated_commit_lookup(&onto_head, repo, &onto_id)); diff --git a/tests/libgit2/rebase/inmemory.c b/tests/libgit2/rebase/inmemory.c index 287dd991119..9646be10323 100644 --- a/tests/libgit2/rebase/inmemory.c +++ b/tests/libgit2/rebase/inmemory.c @@ -74,7 +74,7 @@ void test_rebase_inmemory__can_resolve_conflicts(void) cl_git_pass(git_rebase_next(&rebase_operation, rebase)); - git_oid__fromstr(&pick_id, "33f915f9e4dbd9f4b24430e48731a59b45b15500", GIT_OID_SHA1); + git_oid_from_string(&pick_id, "33f915f9e4dbd9f4b24430e48731a59b45b15500", GIT_OID_SHA1); cl_assert_equal_i(GIT_REBASE_OPERATION_PICK, rebase_operation->type); cl_assert_equal_oid(&pick_id, &rebase_operation->id); @@ -95,14 +95,14 @@ void test_rebase_inmemory__can_resolve_conflicts(void) /* ensure that we can work with the in-memory index to resolve the conflict */ resolution.path = "asparagus.txt"; resolution.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&resolution.id, "414dfc71ead79c07acd4ea47fecf91f289afc4b9", GIT_OID_SHA1); + git_oid_from_string(&resolution.id, "414dfc71ead79c07acd4ea47fecf91f289afc4b9", GIT_OID_SHA1); cl_git_pass(git_index_conflict_remove(rebase_index, "asparagus.txt")); cl_git_pass(git_index_add(rebase_index, &resolution)); /* and finally create a commit for the resolved rebase operation */ cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, NULL, NULL)); - cl_git_pass(git_oid__fromstr(&expected_commit_id, "db7af47222181e548810da2ab5fec0e9357c5637", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_commit_id, "db7af47222181e548810da2ab5fec0e9357c5637", GIT_OID_SHA1)); cl_assert_equal_oid(&commit_id, &expected_commit_id); git_status_list_free(status_list); @@ -156,7 +156,7 @@ void test_rebase_inmemory__no_common_ancestor(void) cl_git_pass(git_rebase_finish(rebase, signature)); - git_oid__fromstr(&expected_final_id, "71e7ee8d4fe7d8bf0d107355197e0a953dfdb7f3", GIT_OID_SHA1); + git_oid_from_string(&expected_final_id, "71e7ee8d4fe7d8bf0d107355197e0a953dfdb7f3", GIT_OID_SHA1); cl_assert_equal_oid(&expected_final_id, &commit_id); git_annotated_commit_free(branch_head); @@ -178,7 +178,7 @@ void test_rebase_inmemory__with_directories(void) opts.inmemory = true; - git_oid__fromstr(&tree_id, "a4d6d9c3d57308fd8e320cf2525bae8f1adafa57", GIT_OID_SHA1); + git_oid_from_string(&tree_id, "a4d6d9c3d57308fd8e320cf2525bae8f1adafa57", GIT_OID_SHA1); cl_git_pass(git_reference_lookup(&branch_ref, repo, "refs/heads/deep_gravy")); cl_git_pass(git_reference_lookup(&upstream_ref, repo, "refs/heads/veal")); diff --git a/tests/libgit2/rebase/iterator.c b/tests/libgit2/rebase/iterator.c index 79e9f3e58b9..ab930bde063 100644 --- a/tests/libgit2/rebase/iterator.c +++ b/tests/libgit2/rebase/iterator.c @@ -30,11 +30,11 @@ static void test_operations(git_rebase *rebase, size_t expected_current) git_oid expected_oid[5]; git_rebase_operation *operation; - git_oid__fromstr(&expected_oid[0], "da9c51a23d02d931a486f45ad18cda05cf5d2b94", GIT_OID_SHA1); - git_oid__fromstr(&expected_oid[1], "8d1f13f93c4995760ac07d129246ac1ff64c0be9", GIT_OID_SHA1); - git_oid__fromstr(&expected_oid[2], "3069cc907e6294623e5917ef6de663928c1febfb", GIT_OID_SHA1); - git_oid__fromstr(&expected_oid[3], "588e5d2f04d49707fe4aab865e1deacaf7ef6787", GIT_OID_SHA1); - git_oid__fromstr(&expected_oid[4], "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1); + git_oid_from_string(&expected_oid[0], "da9c51a23d02d931a486f45ad18cda05cf5d2b94", GIT_OID_SHA1); + git_oid_from_string(&expected_oid[1], "8d1f13f93c4995760ac07d129246ac1ff64c0be9", GIT_OID_SHA1); + git_oid_from_string(&expected_oid[2], "3069cc907e6294623e5917ef6de663928c1febfb", GIT_OID_SHA1); + git_oid_from_string(&expected_oid[3], "588e5d2f04d49707fe4aab865e1deacaf7ef6787", GIT_OID_SHA1); + git_oid_from_string(&expected_oid[4], "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1); cl_assert_equal_i(expected_count, git_rebase_operation_entrycount(rebase)); cl_assert_equal_i(expected_current, git_rebase_operation_current(rebase)); @@ -78,7 +78,7 @@ static void test_iterator(bool inmemory) NULL, NULL)); test_operations(rebase, 0); - git_oid__fromstr(&expected_id, "776e4c48922799f903f03f5f6e51da8b01e4cce0", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "776e4c48922799f903f03f5f6e51da8b01e4cce0", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_rebase_next(&rebase_operation, rebase)); @@ -86,7 +86,7 @@ static void test_iterator(bool inmemory) NULL, NULL)); test_operations(rebase, 1); - git_oid__fromstr(&expected_id, "ba1f9b4fd5cf8151f7818be2111cc0869f1eb95a", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "ba1f9b4fd5cf8151f7818be2111cc0869f1eb95a", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_rebase_next(&rebase_operation, rebase)); @@ -94,7 +94,7 @@ static void test_iterator(bool inmemory) NULL, NULL)); test_operations(rebase, 2); - git_oid__fromstr(&expected_id, "948b12fe18b84f756223a61bece4c307787cd5d4", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "948b12fe18b84f756223a61bece4c307787cd5d4", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); if (!inmemory) { @@ -107,7 +107,7 @@ static void test_iterator(bool inmemory) NULL, NULL)); test_operations(rebase, 3); - git_oid__fromstr(&expected_id, "d9d5d59d72c9968687f9462578d79878cd80e781", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "d9d5d59d72c9968687f9462578d79878cd80e781", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_rebase_next(&rebase_operation, rebase)); @@ -115,7 +115,7 @@ static void test_iterator(bool inmemory) NULL, NULL)); test_operations(rebase, 4); - git_oid__fromstr(&expected_id, "9cf383c0a125d89e742c5dec58ed277dd07588b3", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "9cf383c0a125d89e742c5dec58ed277dd07588b3", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_fail(error = git_rebase_next(&rebase_operation, rebase)); diff --git a/tests/libgit2/rebase/merge.c b/tests/libgit2/rebase/merge.c index 870c3ea2fd6..615b986b971 100644 --- a/tests/libgit2/rebase/merge.c +++ b/tests/libgit2/rebase/merge.c @@ -46,8 +46,8 @@ void test_rebase_merge__next(void) git_oid pick_id, file1_id; git_oid master_id, beef_id; - git_oid__fromstr(&master_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); - git_oid__fromstr(&beef_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1); + git_oid_from_string(&master_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&beef_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1); cl_git_pass(git_reference_lookup(&branch_ref, repo, "refs/heads/beef")); cl_git_pass(git_reference_lookup(&upstream_ref, repo, "refs/heads/master")); @@ -65,7 +65,7 @@ void test_rebase_merge__next(void) cl_git_pass(git_rebase_next(&rebase_operation, rebase)); - git_oid__fromstr(&pick_id, "da9c51a23d02d931a486f45ad18cda05cf5d2b94", GIT_OID_SHA1); + git_oid_from_string(&pick_id, "da9c51a23d02d931a486f45ad18cda05cf5d2b94", GIT_OID_SHA1); cl_assert_equal_i(GIT_REBASE_OPERATION_PICK, rebase_operation->type); cl_assert_equal_oid(&pick_id, &rebase_operation->id); @@ -78,7 +78,7 @@ void test_rebase_merge__next(void) cl_assert_equal_s("beef.txt", status_entry->head_to_index->new_file.path); - git_oid__fromstr(&file1_id, "8d95ea62e621f1d38d230d9e7d206e41096d76af", GIT_OID_SHA1); + git_oid_from_string(&file1_id, "8d95ea62e621f1d38d230d9e7d206e41096d76af", GIT_OID_SHA1); cl_assert_equal_oid(&file1_id, &status_entry->head_to_index->new_file.id); git_status_list_free(status_list); @@ -129,7 +129,7 @@ void test_rebase_merge__next_with_conflicts(void) cl_git_pass(git_rebase_next(&rebase_operation, rebase)); - git_oid__fromstr(&pick_id, "33f915f9e4dbd9f4b24430e48731a59b45b15500", GIT_OID_SHA1); + git_oid_from_string(&pick_id, "33f915f9e4dbd9f4b24430e48731a59b45b15500", GIT_OID_SHA1); cl_assert_equal_i(GIT_REBASE_OPERATION_PICK, rebase_operation->type); cl_assert_equal_oid(&pick_id, &rebase_operation->id); @@ -230,11 +230,11 @@ void test_rebase_merge__commit(void) cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); - git_oid__fromstr(&parent_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&parent_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_assert_equal_i(1, git_commit_parentcount(commit)); cl_assert_equal_oid(&parent_id, git_commit_parent_id(commit, 0)); - git_oid__fromstr(&tree_id, "4461379789c777d2a6c1f2ee0e9d6c86731b9992", GIT_OID_SHA1); + git_oid_from_string(&tree_id, "4461379789c777d2a6c1f2ee0e9d6c86731b9992", GIT_OID_SHA1); cl_assert_equal_oid(&tree_id, git_commit_tree_id(commit)); cl_assert_equal_s(NULL, git_commit_message_encoding(commit)); @@ -275,8 +275,8 @@ void test_rebase_merge__commit_with_id(void) git_reflog *reflog; const git_reflog_entry *reflog_entry; - cl_git_pass(git_oid__fromstr(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&upstream_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&upstream_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); cl_git_pass(git_annotated_commit_lookup(&upstream_head, repo, &upstream_id)); @@ -289,11 +289,11 @@ void test_rebase_merge__commit_with_id(void) cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); - git_oid__fromstr(&parent_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&parent_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_assert_equal_i(1, git_commit_parentcount(commit)); cl_assert_equal_oid(&parent_id, git_commit_parent_id(commit, 0)); - git_oid__fromstr(&tree_id, "4461379789c777d2a6c1f2ee0e9d6c86731b9992", GIT_OID_SHA1); + git_oid_from_string(&tree_id, "4461379789c777d2a6c1f2ee0e9d6c86731b9992", GIT_OID_SHA1); cl_assert_equal_oid(&tree_id, git_commit_tree_id(commit)); cl_assert_equal_s(NULL, git_commit_message_encoding(commit)); @@ -551,8 +551,8 @@ void test_rebase_merge__finish_with_ids(void) const git_reflog_entry *reflog_entry; int error; - cl_git_pass(git_oid__fromstr(&branch_id, "d616d97082eb7bb2dc6f180a7cca940993b7a56f", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&upstream_id, "f87d14a4a236582a0278a916340a793714256864", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&branch_id, "d616d97082eb7bb2dc6f180a7cca940993b7a56f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&upstream_id, "f87d14a4a236582a0278a916340a793714256864", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); cl_git_pass(git_annotated_commit_lookup(&upstream_head, repo, &upstream_id)); @@ -627,7 +627,7 @@ void test_rebase_merge__no_common_ancestor(void) cl_git_pass(git_rebase_finish(rebase, signature)); - git_oid__fromstr(&expected_final_id, "71e7ee8d4fe7d8bf0d107355197e0a953dfdb7f3", GIT_OID_SHA1); + git_oid_from_string(&expected_final_id, "71e7ee8d4fe7d8bf0d107355197e0a953dfdb7f3", GIT_OID_SHA1); cl_assert_equal_oid(&expected_final_id, &commit_id); git_annotated_commit_free(branch_head); @@ -823,7 +823,7 @@ void test_rebase_merge__with_directories(void) git_oid commit_id, tree_id; git_commit *commit; - git_oid__fromstr(&tree_id, "a4d6d9c3d57308fd8e320cf2525bae8f1adafa57", GIT_OID_SHA1); + git_oid_from_string(&tree_id, "a4d6d9c3d57308fd8e320cf2525bae8f1adafa57", GIT_OID_SHA1); cl_git_pass(git_reference_lookup(&branch_ref, repo, "refs/heads/deep_gravy")); cl_git_pass(git_reference_lookup(&upstream_ref, repo, "refs/heads/veal")); diff --git a/tests/libgit2/rebase/setup.c b/tests/libgit2/rebase/setup.c index ac0d087ea6e..10cc306de34 100644 --- a/tests/libgit2/rebase/setup.c +++ b/tests/libgit2/rebase/setup.c @@ -74,7 +74,7 @@ void test_rebase_setup__merge(void) cl_assert_equal_i(GIT_REPOSITORY_STATE_REBASE_MERGE, git_repository_state(repo)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -120,7 +120,7 @@ void test_rebase_setup__merge_root(void) cl_git_pass(git_rebase_init(&rebase, repo, branch_head, NULL, onto_head, NULL)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -170,7 +170,7 @@ void test_rebase_setup__merge_onto_and_upstream(void) cl_git_pass(git_rebase_init(&rebase, repo, branch1_head, branch2_head, onto_head, NULL)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -224,7 +224,7 @@ void test_rebase_setup__merge_onto_upstream_and_branch(void) cl_git_pass(git_rebase_init(&rebase, repo, branch_head, upstream_head, onto_head, NULL)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -272,9 +272,9 @@ void test_rebase_setup__merge_onto_upstream_and_branch_by_id(void) cl_git_pass(git_repository_set_head(repo, "refs/heads/beef")); cl_git_pass(git_checkout_head(repo, &checkout_opts)); - cl_git_pass(git_oid__fromstr(&upstream_id, "f87d14a4a236582a0278a916340a793714256864", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&branch_id, "d616d97082eb7bb2dc6f180a7cca940993b7a56f", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&upstream_id, "f87d14a4a236582a0278a916340a793714256864", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&branch_id, "d616d97082eb7bb2dc6f180a7cca940993b7a56f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&onto_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&upstream_head, repo, &upstream_id)); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); @@ -282,7 +282,7 @@ void test_rebase_setup__merge_onto_upstream_and_branch_by_id(void) cl_git_pass(git_rebase_init(&rebase, repo, branch_head, upstream_head, onto_head, NULL)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -328,7 +328,7 @@ void test_rebase_setup__branch_with_merges(void) cl_assert_equal_i(GIT_REPOSITORY_STATE_REBASE_MERGE, git_repository_state(repo)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -376,7 +376,7 @@ void test_rebase_setup__orphan_branch(void) cl_assert_equal_i(GIT_REPOSITORY_STATE_REBASE_MERGE, git_repository_state(repo)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -427,7 +427,7 @@ void test_rebase_setup__merge_null_branch_uses_HEAD(void) cl_assert_equal_i(GIT_REPOSITORY_STATE_REBASE_MERGE, git_repository_state(repo)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -465,7 +465,7 @@ void test_rebase_setup__merge_from_detached(void) cl_git_pass(git_reference_lookup(&upstream_ref, repo, "refs/heads/master")); - cl_git_pass(git_oid__fromstr(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&branch_id, "b146bd7608eac53d9bf9e1a6963543588b555c64", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_lookup(&branch_head, repo, &branch_id)); cl_git_pass(git_annotated_commit_from_ref(&upstream_head, repo, upstream_ref)); @@ -474,7 +474,7 @@ void test_rebase_setup__merge_from_detached(void) cl_assert_equal_i(GIT_REPOSITORY_STATE_REBASE_MERGE, git_repository_state(repo)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); @@ -513,7 +513,7 @@ void test_rebase_setup__merge_branch_by_id(void) cl_git_pass(git_reference_lookup(&branch_ref, repo, "refs/heads/beef")); - cl_git_pass(git_oid__fromstr(&upstream_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&upstream_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1)); cl_git_pass(git_annotated_commit_from_ref(&branch_head, repo, branch_ref)); cl_git_pass(git_annotated_commit_lookup(&upstream_head, repo, &upstream_id)); @@ -522,7 +522,7 @@ void test_rebase_setup__merge_branch_by_id(void) cl_assert_equal_i(GIT_REPOSITORY_STATE_REBASE_MERGE, git_repository_state(repo)); - git_oid__fromstr(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); + git_oid_from_string(&head_id, "efad0b11c47cb2f0220cbd6f5b0f93bb99064b00", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head, GIT_OBJECT_COMMIT)); cl_assert_equal_oid(&head_id, git_commit_id(head_commit)); diff --git a/tests/libgit2/rebase/sign.c b/tests/libgit2/rebase/sign.c index 69bb1c6f998..869f5674a61 100644 --- a/tests/libgit2/rebase/sign.c +++ b/tests/libgit2/rebase/sign.c @@ -70,7 +70,7 @@ committer Rebaser 1405694510 +0000\n"; cl_git_pass(git_rebase_next(&rebase_operation, rebase)); cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, NULL, NULL)); - git_oid__fromstr(&expected_id, "129183968a65abd6c52da35bff43325001bfc630", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "129183968a65abd6c52da35bff43325001bfc630", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); @@ -178,7 +178,7 @@ gpgsig -----BEGIN PGP SIGNATURE-----\n\ cl_git_pass(git_rebase_next(&rebase_operation, rebase)); cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, NULL, NULL)); - git_oid__fromstr(&expected_id, "bf78348e45c8286f52b760f1db15cb6da030f2ef", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "bf78348e45c8286f52b760f1db15cb6da030f2ef", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); @@ -300,7 +300,7 @@ committer Rebaser 1405694510 +0000\n"; cl_git_pass(git_rebase_next(&rebase_operation, rebase)); cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, NULL, NULL)); - git_oid__fromstr(&expected_id, "129183968a65abd6c52da35bff43325001bfc630", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "129183968a65abd6c52da35bff43325001bfc630", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); @@ -398,7 +398,7 @@ gpgsig -----BEGIN PGP SIGNATURE-----\n\ cl_git_pass(git_rebase_next(&rebase_operation, rebase)); cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, NULL, NULL)); - git_oid__fromstr(&expected_id, "bf78348e45c8286f52b760f1db15cb6da030f2ef", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "bf78348e45c8286f52b760f1db15cb6da030f2ef", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); @@ -473,7 +473,7 @@ magicsig magic word: pretty please\n"; cl_git_pass(git_rebase_next(&rebase_operation, rebase)); cl_git_pass(git_rebase_commit(&commit_id, rebase, NULL, signature, NULL, NULL)); - git_oid__fromstr(&expected_id, "f46a4a8d26ae411b02aa61b7d69576627f4a1e1c", GIT_OID_SHA1); + git_oid_from_string(&expected_id, "f46a4a8d26ae411b02aa61b7d69576627f4a1e1c", GIT_OID_SHA1); cl_assert_equal_oid(&expected_id, &commit_id); cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); diff --git a/tests/libgit2/refs/basic.c b/tests/libgit2/refs/basic.c index 5e41ca07443..b1f770b99a8 100644 --- a/tests/libgit2/refs/basic.c +++ b/tests/libgit2/refs/basic.c @@ -53,7 +53,7 @@ void test_refs_basic__longpaths(void) git_reference *one = NULL, *two = NULL; git_oid id; - cl_git_pass(git_oid__fromstr(&id, "099fabac3a9ea935598528c27f866e34089c2eff", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "099fabac3a9ea935598528c27f866e34089c2eff", GIT_OID_SHA1)); base = git_repository_path(g_repo); base_len = git_utf8_char_length(base, strlen(base)); diff --git a/tests/libgit2/refs/branches/delete.c b/tests/libgit2/refs/branches/delete.c index 63f8c5d95c7..2c28dd294fa 100644 --- a/tests/libgit2/refs/branches/delete.c +++ b/tests/libgit2/refs/branches/delete.c @@ -14,7 +14,7 @@ void test_refs_branches_delete__initialize(void) repo = cl_git_sandbox_init("testrepo.git"); - cl_git_pass(git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_reference_create(&fake_remote, repo, "refs/remotes/nulltoken/master", &id, 0, NULL)); } @@ -172,7 +172,7 @@ void test_refs_branches_delete__removes_empty_folders(void) git_str reflog_folder = GIT_STR_INIT; /* Create a new branch with a nested name */ - cl_git_pass(git_oid__fromstr(&commit_id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&commit_id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, repo, &commit_id)); cl_git_pass(git_branch_create(&branch, repo, "some/deep/ref", commit, 0)); git_commit_free(commit); diff --git a/tests/libgit2/refs/branches/iterator.c b/tests/libgit2/refs/branches/iterator.c index a295d553b80..e4913642888 100644 --- a/tests/libgit2/refs/branches/iterator.c +++ b/tests/libgit2/refs/branches/iterator.c @@ -11,7 +11,7 @@ void test_refs_branches_iterator__initialize(void) cl_fixture_sandbox("testrepo.git"); cl_git_pass(git_repository_open(&repo, "testrepo.git")); - cl_git_pass(git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_reference_create(&fake_remote, repo, "refs/remotes/nulltoken/master", &id, 0, NULL)); } diff --git a/tests/libgit2/refs/create.c b/tests/libgit2/refs/create.c index 1dafcf61a8f..aca6ecd63b5 100644 --- a/tests/libgit2/refs/create.c +++ b/tests/libgit2/refs/create.c @@ -34,7 +34,7 @@ void test_refs_create__symbolic(void) const char *new_head_tracker = "ANOTHER_HEAD_TRACKER"; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); /* Create and write the new symbolic reference */ cl_git_pass(git_reference_symbolic_create(&new_reference, g_repo, new_head_tracker, current_head_target, 0, NULL)); @@ -77,7 +77,7 @@ void test_refs_create__symbolic_with_arbitrary_content(void) const char *new_head_tracker = "ANOTHER_HEAD_TRACKER"; const char *arbitrary_target = "ARBITRARY DATA"; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); /* Attempt to create symbolic ref with arbitrary data in target * fails by default @@ -124,7 +124,7 @@ void test_refs_create__deep_symbolic(void) const char *new_head_tracker = "deep/rooted/tracker"; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_symbolic_create(&new_reference, g_repo, new_head_tracker, current_head_target, 0, NULL)); cl_git_pass(git_reference_lookup(&looked_up_ref, g_repo, new_head_tracker)); @@ -145,7 +145,7 @@ void test_refs_create__oid(void) const char *new_head = "refs/heads/new-head"; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); /* Create and write the new object id reference */ cl_git_pass(git_reference_create(&new_reference, g_repo, new_head, &id, 0, NULL)); @@ -180,7 +180,7 @@ void test_refs_create__oid_unknown_succeeds_without_strict(void) const char *new_head = "refs/heads/new-head"; - git_oid__fromstr(&id, "deadbeef3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&id, "deadbeef3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); cl_git_pass(git_libgit2_opts(GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, 0)); @@ -201,7 +201,7 @@ void test_refs_create__oid_unknown_fails_by_default(void) const char *new_head = "refs/heads/new-head"; - git_oid__fromstr(&id, "deadbeef3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&id, "deadbeef3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); /* Create and write the new object id reference */ cl_git_fail(git_reference_create(&new_reference, g_repo, new_head, &id, 0, NULL)); @@ -215,7 +215,7 @@ void test_refs_create__propagate_eexists(void) git_oid oid; /* Make sure it works for oid and for symbolic both */ - cl_git_pass(git_oid__fromstr(&oid, current_master_tip, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, current_master_tip, GIT_OID_SHA1)); cl_git_fail_with(GIT_EEXISTS, git_reference_create(NULL, g_repo, current_head_target, &oid, false, NULL)); cl_git_fail_with(GIT_EEXISTS, git_reference_symbolic_create(NULL, g_repo, "HEAD", current_head_target, false, NULL)); } @@ -227,7 +227,7 @@ void test_refs_create__existing_dir_propagates_edirectory(void) const char *dir_head = "refs/heads/new-dir/new-head", *fail_head = "refs/heads/new-dir"; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); /* Create and write the new object id reference */ cl_git_pass(git_reference_create(&new_reference, g_repo, dir_head, &id, 1, NULL)); @@ -242,7 +242,7 @@ static void test_invalid_name(const char *name) git_reference *new_reference; git_oid id; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_assert_equal_i(GIT_EINVALIDSPEC, git_reference_create( &new_reference, g_repo, name, &id, 0, NULL)); @@ -272,7 +272,7 @@ static void test_win32_name(const char *name) git_oid id; int ret; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); ret = git_reference_create(&new_reference, g_repo, name, &id, 0, NULL); @@ -314,7 +314,7 @@ static void count_fsyncs(size_t *create_count, size_t *compress_count) p_fsync__cnt = 0; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/fsync_test", &id, 0, "log message")); git_reference_free(ref); diff --git a/tests/libgit2/refs/delete.c b/tests/libgit2/refs/delete.c index edb521f4a2f..b420bb157a9 100644 --- a/tests/libgit2/refs/delete.c +++ b/tests/libgit2/refs/delete.c @@ -63,7 +63,7 @@ void test_refs_delete__packed_only(void) git_oid id; const char *new_ref = "refs/heads/new_ref"; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); /* Create and write the new object id reference */ cl_git_pass(git_reference_create(&ref, g_repo, new_ref, &id, 0, NULL)); diff --git a/tests/libgit2/refs/foreachglob.c b/tests/libgit2/refs/foreachglob.c index a586ca08c30..4f0b91325f1 100644 --- a/tests/libgit2/refs/foreachglob.c +++ b/tests/libgit2/refs/foreachglob.c @@ -11,7 +11,7 @@ void test_refs_foreachglob__initialize(void) cl_fixture_sandbox("testrepo.git"); cl_git_pass(git_repository_open(&repo, "testrepo.git")); - cl_git_pass(git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); cl_git_pass(git_reference_create(&fake_remote, repo, "refs/remotes/nulltoken/master", &id, 0, NULL)); } diff --git a/tests/libgit2/refs/lookup.c b/tests/libgit2/refs/lookup.c index 2b8be77f830..16684ce60ca 100644 --- a/tests/libgit2/refs/lookup.c +++ b/tests/libgit2/refs/lookup.c @@ -43,7 +43,7 @@ void test_refs_lookup__oid(void) git_oid tag, expected; cl_git_pass(git_reference_name_to_id(&tag, g_repo, "refs/tags/point_to_blob")); - cl_git_pass(git_oid__fromstr(&expected, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); cl_assert_equal_oid(&expected, &tag); } diff --git a/tests/libgit2/refs/peel.c b/tests/libgit2/refs/peel.c index fefd2d26030..7de0508f02f 100644 --- a/tests/libgit2/refs/peel.c +++ b/tests/libgit2/refs/peel.c @@ -32,7 +32,7 @@ static void assert_peel_generic( cl_git_pass(git_reference_peel(&peeled, ref, requested_type)); - cl_git_pass(git_oid__fromstr(&expected_oid, expected_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected_oid, expected_sha, GIT_OID_SHA1)); cl_assert_equal_oid(&expected_oid, git_object_id(peeled)); cl_assert_equal_i(expected_type, git_object_type(peeled)); diff --git a/tests/libgit2/refs/races.c b/tests/libgit2/refs/races.c index bf46b760eac..243e04f65c8 100644 --- a/tests/libgit2/refs/races.c +++ b/tests/libgit2/refs/races.c @@ -27,8 +27,8 @@ void test_refs_races__create_matching_zero_old(void) git_reference *ref; git_oid id, zero_id; - git_oid__fromstr(&id, commit_id, GIT_OID_SHA1); - git_oid__fromstr(&zero_id, "0000000000000000000000000000000000000000", GIT_OID_SHA1); + git_oid_from_string(&id, commit_id, GIT_OID_SHA1); + git_oid_from_string(&zero_id, "0000000000000000000000000000000000000000", GIT_OID_SHA1); cl_git_fail(git_reference_create_matching(&ref, g_repo, refname, &id, 1, &zero_id, NULL)); git_reference_free(ref); @@ -45,8 +45,8 @@ void test_refs_races__create_matching(void) git_reference *ref, *ref2, *ref3; git_oid id, other_id; - git_oid__fromstr(&id, commit_id, GIT_OID_SHA1); - git_oid__fromstr(&other_id, other_commit_id, GIT_OID_SHA1); + git_oid_from_string(&id, commit_id, GIT_OID_SHA1); + git_oid_from_string(&other_id, other_commit_id, GIT_OID_SHA1); cl_git_fail_with(GIT_EMODIFIED, git_reference_create_matching(&ref, g_repo, refname, &other_id, 1, &other_id, NULL)); @@ -64,8 +64,8 @@ void test_refs_races__symbolic_create_matching(void) git_reference *ref, *ref2, *ref3; git_oid id, other_id; - git_oid__fromstr(&id, commit_id, GIT_OID_SHA1); - git_oid__fromstr(&other_id, other_commit_id, GIT_OID_SHA1); + git_oid_from_string(&id, commit_id, GIT_OID_SHA1); + git_oid_from_string(&other_id, other_commit_id, GIT_OID_SHA1); cl_git_fail_with(GIT_EMODIFIED, git_reference_symbolic_create_matching(&ref, g_repo, "HEAD", other_refname, 1, other_refname, NULL)); @@ -83,8 +83,8 @@ void test_refs_races__delete(void) git_reference *ref, *ref2; git_oid id, other_id; - git_oid__fromstr(&id, commit_id, GIT_OID_SHA1); - git_oid__fromstr(&other_id, other_commit_id, GIT_OID_SHA1); + git_oid_from_string(&id, commit_id, GIT_OID_SHA1); + git_oid_from_string(&other_id, other_commit_id, GIT_OID_SHA1); /* We can delete a value that matches */ cl_git_pass(git_reference_lookup(&ref, g_repo, refname)); @@ -116,8 +116,8 @@ void test_refs_races__switch_oid_to_symbolic(void) git_reference *ref, *ref2, *ref3; git_oid id, other_id; - git_oid__fromstr(&id, commit_id, GIT_OID_SHA1); - git_oid__fromstr(&other_id, other_commit_id, GIT_OID_SHA1); + git_oid_from_string(&id, commit_id, GIT_OID_SHA1); + git_oid_from_string(&other_id, other_commit_id, GIT_OID_SHA1); /* Removing a direct ref when it's currently symbolic should fail */ cl_git_pass(git_reference_lookup(&ref, g_repo, refname)); @@ -145,8 +145,8 @@ void test_refs_races__switch_symbolic_to_oid(void) git_reference *ref, *ref2, *ref3; git_oid id, other_id; - git_oid__fromstr(&id, commit_id, GIT_OID_SHA1); - git_oid__fromstr(&other_id, other_commit_id, GIT_OID_SHA1); + git_oid_from_string(&id, commit_id, GIT_OID_SHA1); + git_oid_from_string(&other_id, other_commit_id, GIT_OID_SHA1); /* Removing a symbolic ref when it's currently direct should fail */ cl_git_pass(git_reference_lookup(&ref, g_repo, "refs/symref")); diff --git a/tests/libgit2/refs/read.c b/tests/libgit2/refs/read.c index 7253cf1373c..5bfe781e3aa 100644 --- a/tests/libgit2/refs/read.c +++ b/tests/libgit2/refs/read.c @@ -82,7 +82,7 @@ void test_refs_read__symbolic(void) cl_assert(object != NULL); cl_assert(git_object_type(object) == GIT_OBJECT_COMMIT); - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_assert_equal_oid(&id, git_object_id(object)); git_object_free(object); @@ -110,7 +110,7 @@ void test_refs_read__nested_symbolic(void) cl_assert(object != NULL); cl_assert(git_object_type(object) == GIT_OBJECT_COMMIT); - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_assert_equal_oid(&id, git_object_id(object)); git_object_free(object); diff --git a/tests/libgit2/refs/reflog/messages.c b/tests/libgit2/refs/reflog/messages.c index 647c00d0dfd..b9a10f9b818 100644 --- a/tests/libgit2/refs/reflog/messages.c +++ b/tests/libgit2/refs/reflog/messages.c @@ -87,7 +87,7 @@ void test_refs_reflog_messages__detaching_writes_reflog(void) const char *msg; msg = "checkout: moving from master to e90810b8df3e80c413d903f631643c716887138d"; - git_oid__fromstr(&id, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); + git_oid_from_string(&id, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); cl_git_pass(git_repository_set_head_detached(g_repo, &id)); cl_reflog_check_entry(g_repo, GIT_HEAD_FILE, 0, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", @@ -109,7 +109,7 @@ void test_refs_reflog_messages__orphan_branch_does_not_count(void) /* Have something known */ msg = "checkout: moving from master to e90810b8df3e80c413d903f631643c716887138d"; - git_oid__fromstr(&id, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); + git_oid_from_string(&id, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1); cl_git_pass(git_repository_set_head_detached(g_repo, &id)); cl_reflog_check_entry(g_repo, GIT_HEAD_FILE, 0, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", @@ -280,7 +280,7 @@ void test_refs_reflog_messages__newline_gets_replaced(void) git_oid oid; cl_git_pass(git_signature_now(&signature, "me", "foo@example.com")); - cl_git_pass(git_oid__fromstr(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); cl_git_pass(git_reflog_read(&reflog, g_repo, "HEAD")); cl_assert_equal_sz(7, git_reflog_entrycount(reflog)); diff --git a/tests/libgit2/refs/reflog/reflog.c b/tests/libgit2/refs/reflog/reflog.c index 774ec6c93b2..674b809a362 100644 --- a/tests/libgit2/refs/reflog/reflog.c +++ b/tests/libgit2/refs/reflog/reflog.c @@ -80,7 +80,7 @@ void test_refs_reflog_reflog__append_then_read(void) git_reflog *reflog; /* Create a new branch pointing at the HEAD */ - git_oid__fromstr(&oid, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&oid, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, new_ref, &oid, 0, NULL)); git_reference_free(ref); @@ -147,7 +147,7 @@ void test_refs_reflog_reflog__removes_empty_reflog_dir(void) git_oid id; /* Create a new branch pointing at the HEAD */ - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/new-dir/new-head", &id, 0, NULL)); git_str_joinpath(&log_path, git_repository_path(g_repo), GIT_REFLOG_DIR); @@ -159,7 +159,7 @@ void test_refs_reflog_reflog__removes_empty_reflog_dir(void) git_reference_free(ref); /* new ref creation should succeed since new-dir is empty */ - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/new-dir", &id, 0, NULL)); git_reference_free(ref); @@ -173,7 +173,7 @@ void test_refs_reflog_reflog__fails_gracefully_on_nonempty_reflog_dir(void) git_oid id; /* Create a new branch pointing at the HEAD */ - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/new-dir/new-head", &id, 0, NULL)); git_reference_free(ref); @@ -186,7 +186,7 @@ void test_refs_reflog_reflog__fails_gracefully_on_nonempty_reflog_dir(void) cl_must_pass(p_unlink("testrepo.git/refs/heads/new-dir/new-head")); /* new ref creation should fail since new-dir contains reflogs still */ - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_fail_with(GIT_EDIRECTORY, git_reference_create(&ref, g_repo, "refs/heads/new-dir", &id, 0, NULL)); git_reference_free(ref); @@ -235,7 +235,7 @@ void test_refs_reflog_reflog__reading_a_reflog_with_invalid_format_succeeds(void char *star; /* Create a new branch. */ - cl_git_pass(git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1)); cl_git_pass(git_reference_create(&ref, g_repo, refname, &id, 1, refmessage)); /* @@ -298,7 +298,7 @@ void test_refs_reflog_reflog__write_only_std_locations(void) git_reference *ref; git_oid id; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/foo", &id, 1, NULL)); git_reference_free(ref); @@ -318,7 +318,7 @@ void test_refs_reflog_reflog__write_when_explicitly_active(void) git_reference *ref; git_oid id; - git_oid__fromstr(&id, current_master_tip, GIT_OID_SHA1); + git_oid_from_string(&id, current_master_tip, GIT_OID_SHA1); git_reference_ensure_log(g_repo, "refs/tags/foo"); cl_git_pass(git_reference_create(&ref, g_repo, "refs/tags/foo", &id, 1, NULL)); @@ -338,7 +338,7 @@ void test_refs_reflog_reflog__append_to_HEAD_when_changing_current_branch(void) git_reflog_free(log); /* Move it back */ - git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/master", &id, 1, NULL)); git_reference_free(ref); @@ -390,7 +390,7 @@ static void assert_no_reflog_update(void) git_reflog_free(log); /* Move it back */ - git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/heads/master", &id, 1, NULL)); git_reference_free(ref); @@ -431,7 +431,7 @@ void test_refs_reflog_reflog__logallrefupdates_bare_set_always(void) cl_git_pass(git_config_set_string(config, "core.logallrefupdates", "always")); git_config_free(config); - git_oid__fromstr(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); + git_oid_from_string(&id, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1); cl_git_pass(git_reference_create(&ref, g_repo, "refs/bork", &id, 1, "message")); cl_git_pass(git_reflog_read(&log, g_repo, "refs/bork")); diff --git a/tests/libgit2/refs/reflog/reflog_helpers.c b/tests/libgit2/refs/reflog/reflog_helpers.c index 6a7e706d6c6..56051d256c6 100644 --- a/tests/libgit2/refs/reflog/reflog_helpers.c +++ b/tests/libgit2/refs/reflog/reflog_helpers.c @@ -53,7 +53,7 @@ void cl_reflog_check_entry_(git_repository *repo, const char *reflog, size_t idx git_object_free(obj); } else { git_oid *oid = git__calloc(1, sizeof(*oid)); - git_oid__fromstr(oid, old_spec, GIT_OID_SHA1); + git_oid_from_string(oid, old_spec, GIT_OID_SHA1); if (git_oid_cmp(oid, git_reflog_entry_id_old(entry)) != 0) { git_object__write_oid_header(&result, "\tOld OID: \"", oid); git_object__write_oid_header(&result, "\" != \"", git_reflog_entry_id_old(entry)); @@ -73,7 +73,7 @@ void cl_reflog_check_entry_(git_repository *repo, const char *reflog, size_t idx git_object_free(obj); } else { git_oid *oid = git__calloc(1, sizeof(*oid)); - git_oid__fromstr(oid, new_spec, GIT_OID_SHA1); + git_oid_from_string(oid, new_spec, GIT_OID_SHA1); if (git_oid_cmp(oid, git_reflog_entry_id_new(entry)) != 0) { git_object__write_oid_header(&result, "\tNew OID: \"", oid); git_object__write_oid_header(&result, "\" != \"", git_reflog_entry_id_new(entry)); diff --git a/tests/libgit2/refs/transactions.c b/tests/libgit2/refs/transactions.c index 98ae6f73ae2..17c0b22ed21 100644 --- a/tests/libgit2/refs/transactions.c +++ b/tests/libgit2/refs/transactions.c @@ -21,7 +21,7 @@ void test_refs_transactions__single_ref_oid(void) git_reference *ref; git_oid id; - git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_transaction_lock_ref(g_tx, "refs/heads/master")); cl_git_pass(git_transaction_set_target(g_tx, "refs/heads/master", &id, NULL, NULL)); @@ -52,7 +52,7 @@ void test_refs_transactions__single_ref_mix_types(void) git_reference *ref; git_oid id; - git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_transaction_lock_ref(g_tx, "refs/heads/master")); cl_git_pass(git_transaction_lock_ref(g_tx, "HEAD")); @@ -90,7 +90,7 @@ void test_refs_transactions__single_create(void) cl_git_pass(git_transaction_lock_ref(g_tx, name)); - git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_pass(git_transaction_set_target(g_tx, name, &id, NULL, NULL)); cl_git_pass(git_transaction_commit(g_tx)); @@ -104,7 +104,7 @@ void test_refs_transactions__unlocked_set(void) git_oid id; cl_git_pass(git_transaction_lock_ref(g_tx, "refs/heads/master")); - git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); + git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1); cl_git_fail_with(GIT_ENOTFOUND, git_transaction_set_target(g_tx, "refs/heads/foo", &id, NULL, NULL)); cl_git_pass(git_transaction_commit(g_tx)); } @@ -122,7 +122,7 @@ void test_refs_transactions__error_on_locking_locked_ref(void) cl_git_pass(git_transaction_lock_ref(g_tx_with_lock, "refs/heads/master")); /* lock reference for set_target */ - cl_git_pass(git_oid__fromstr(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&id, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); cl_git_fail_with(GIT_ELOCKED, git_transaction_lock_ref(g_tx, "refs/heads/master")); cl_git_fail_with(GIT_ENOTFOUND, git_transaction_set_target(g_tx, "refs/heads/master", &id, NULL, NULL)); diff --git a/tests/libgit2/repo/env.c b/tests/libgit2/repo/env.c index 0e6cc59d5e2..c9e60d901bf 100644 --- a/tests/libgit2/repo/env.c +++ b/tests/libgit2/repo/env.c @@ -99,9 +99,9 @@ static void env_check_objects_(bool a, bool t, bool p, const char *file, const c git_repository *repo; git_oid oid_a, oid_t, oid_p; git_object *object; - cl_git_pass(git_oid__fromstr(&oid_a, "45141a79a77842c59a63229403220a4e4be74e3d", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&oid_t, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&oid_p, "0df1a5865c8abfc09f1f2182e6a31be550e99f07", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid_a, "45141a79a77842c59a63229403220a4e4be74e3d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid_t, "1385f264afb75a56a5bec74243be9b367ba4ca08", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid_p, "0df1a5865c8abfc09f1f2182e6a31be550e99f07", GIT_OID_SHA1)); cl_git_expect(git_repository_open_ext(&repo, "attr", GIT_REPOSITORY_OPEN_FROM_ENV, NULL), 0, file, func, line); if (a) { diff --git a/tests/libgit2/repo/getters.c b/tests/libgit2/repo/getters.c index 8e21d35b512..b1b41690fc4 100644 --- a/tests/libgit2/repo/getters.c +++ b/tests/libgit2/repo/getters.c @@ -59,7 +59,7 @@ void test_repo_getters__commit_parents(void) git_oid first_parent; git_oid merge_parents[4]; - git_oid__fromstr(&first_parent, "099fabac3a9ea935598528c27f866e34089c2eff", GIT_OID_SHA1); + git_oid_from_string(&first_parent, "099fabac3a9ea935598528c27f866e34089c2eff", GIT_OID_SHA1); /* A commit on a new repository has no parents */ @@ -96,13 +96,13 @@ void test_repo_getters__commit_parents(void) cl_assert_equal_oid(&first_parent, git_commit_id(parents.commits[0])); - git_oid__fromstr(&merge_parents[0], "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1); + git_oid_from_string(&merge_parents[0], "8496071c1b46c854b31185ea97743be6a8774479", GIT_OID_SHA1); cl_assert_equal_oid(&merge_parents[0], git_commit_id(parents.commits[1])); - git_oid__fromstr(&merge_parents[1], "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); + git_oid_from_string(&merge_parents[1], "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); cl_assert_equal_oid(&merge_parents[1], git_commit_id(parents.commits[2])); - git_oid__fromstr(&merge_parents[2], "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1); + git_oid_from_string(&merge_parents[2], "4a202b346bb0fb0db7eff3cffeb3c70babbd2045", GIT_OID_SHA1); cl_assert_equal_oid(&merge_parents[2], git_commit_id(parents.commits[3])); - git_oid__fromstr(&merge_parents[3], "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1); + git_oid_from_string(&merge_parents[3], "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1); cl_assert_equal_oid(&merge_parents[3], git_commit_id(parents.commits[4])); git_commitarray_dispose(&parents); diff --git a/tests/libgit2/repo/head.c b/tests/libgit2/repo/head.c index c886c3f79d0..7dea91efeb7 100644 --- a/tests/libgit2/repo/head.c +++ b/tests/libgit2/repo/head.c @@ -99,7 +99,7 @@ void test_repo_head__set_head_detached_Return_ENOTFOUND_when_the_object_doesnt_e { git_oid oid; - cl_git_pass(git_oid__fromstr(&oid, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef", GIT_OID_SHA1)); cl_assert_equal_i(GIT_ENOTFOUND, git_repository_set_head_detached(repo, &oid)); } diff --git a/tests/libgit2/reset/hard.c b/tests/libgit2/reset/hard.c index fa7c0b3e633..db1ea471352 100644 --- a/tests/libgit2/reset/hard.c +++ b/tests/libgit2/reset/hard.c @@ -123,9 +123,9 @@ static void unmerged_index_init(git_index *index, int entries) int write_theirs = 4; git_oid ancestor, ours, theirs; - git_oid__fromstr(&ancestor, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); - git_oid__fromstr(&ours, "32504b727382542f9f089e24fddac5e78533e96c", GIT_OID_SHA1); - git_oid__fromstr(&theirs, "061d42a44cacde5726057b67558821d95db96f19", GIT_OID_SHA1); + git_oid_from_string(&ancestor, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); + git_oid_from_string(&ours, "32504b727382542f9f089e24fddac5e78533e96c", GIT_OID_SHA1); + git_oid_from_string(&theirs, "061d42a44cacde5726057b67558821d95db96f19", GIT_OID_SHA1); cl_git_rewritefile("status/conflicting_file", "conflicting file\n"); diff --git a/tests/libgit2/revert/bare.c b/tests/libgit2/revert/bare.c index db443024ed6..eb811898796 100644 --- a/tests/libgit2/revert/bare.c +++ b/tests/libgit2/revert/bare.c @@ -34,10 +34,10 @@ void test_revert_bare__automerge(void) { 0100644, "0f5bfcf58c558d865da6be0281d7795993646cee", 0, "file6.txt" }, }; - git_oid__fromstr(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head_commit, repo, &head_oid)); - git_oid__fromstr(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&revert_commit, repo, &revert_oid)); cl_git_pass(git_revert_commit(&index, repo, revert_commit, head_commit, 0, NULL)); @@ -64,7 +64,7 @@ void test_revert_bare__conflicts(void) { 0100644, "0f5bfcf58c558d865da6be0281d7795993646cee", 0, "file6.txt" }, }; - git_oid__fromstr(&revert_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head_ref, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head_ref, GIT_OBJECT_COMMIT)); @@ -91,10 +91,10 @@ void test_revert_bare__orphan(void) { 0100644, "296a6d3be1dff05c5d1f631d2459389fa7b619eb", 0, "file-mainline.txt" }, }; - git_oid__fromstr(&head_oid, "39467716290f6df775a91cdb9a4eb39295018145", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "39467716290f6df775a91cdb9a4eb39295018145", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head_commit, repo, &head_oid)); - git_oid__fromstr(&revert_oid, "ebb03002cee5d66c7732dd06241119fe72ab96a5", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "ebb03002cee5d66c7732dd06241119fe72ab96a5", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&revert_commit, repo, &revert_oid)); cl_git_pass(git_revert_commit(&index, repo, revert_commit, head_commit, 0, NULL)); diff --git a/tests/libgit2/revert/rename.c b/tests/libgit2/revert/rename.c index be7a9804143..ab9303bc4eb 100644 --- a/tests/libgit2/revert/rename.c +++ b/tests/libgit2/revert/rename.c @@ -36,7 +36,7 @@ void test_revert_rename__automerge(void) cl_git_pass(git_repository_head(&head_ref, repo)); cl_git_pass(git_reference_peel((git_object **)&head_commit, head_ref, GIT_OBJECT_COMMIT)); - cl_git_pass(git_oid__fromstr(&revert_oid, "7b4d7c3789b3581973c04087cb774c3c3576de2f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&revert_oid, "7b4d7c3789b3581973c04087cb774c3c3576de2f", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&revert_commit, repo, &revert_oid)); cl_git_pass(git_revert_commit(&index, repo, revert_commit, head_commit, 0, NULL)); diff --git a/tests/libgit2/revert/workdir.c b/tests/libgit2/revert/workdir.c index 8d1246efe0d..15bada85c1d 100644 --- a/tests/libgit2/revert/workdir.c +++ b/tests/libgit2/revert/workdir.c @@ -45,11 +45,11 @@ void test_revert_workdir__automerge(void) { 0100644, "0f5bfcf58c558d865da6be0281d7795993646cee", 0, "file6.txt" }, }; - git_oid__fromstr(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, NULL)); @@ -76,7 +76,7 @@ void test_revert_workdir__conflicts(void) { 0100644, "0f5bfcf58c558d865da6be0281d7795993646cee", 0, "file6.txt" }, }; - git_oid__fromstr(&revert_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); cl_git_pass(git_repository_head(&head_ref, repo)); cl_git_pass(git_reference_peel((git_object **)&head, head_ref, GIT_OBJECT_COMMIT)); @@ -141,11 +141,11 @@ void test_revert_workdir__orphan(void) { 0100644, "296a6d3be1dff05c5d1f631d2459389fa7b619eb", 0, "file-mainline.txt" }, }; - git_oid__fromstr(&head_oid, "39467716290f6df775a91cdb9a4eb39295018145", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "39467716290f6df775a91cdb9a4eb39295018145", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&revert_oid, "ebb03002cee5d66c7732dd06241119fe72ab96a5", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "ebb03002cee5d66c7732dd06241119fe72ab96a5", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, NULL)); @@ -224,11 +224,11 @@ void test_revert_workdir__again_after_automerge(void) { 0100644, "0f5bfcf58c558d865da6be0281d7795993646cee", 0, "file6.txt" }, }; - git_oid__fromstr(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, NULL)); @@ -272,11 +272,11 @@ void test_revert_workdir__again_after_edit(void) cl_git_pass(git_repository_head(&head_ref, repo)); - cl_git_pass(git_oid__fromstr(&orig_head_oid, "399fb3aba3d9d13f7d40a9254ce4402067ef3149", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&orig_head_oid, "399fb3aba3d9d13f7d40a9254ce4402067ef3149", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&orig_head, repo, &orig_head_oid)); cl_git_pass(git_reset(repo, (git_object *)orig_head, GIT_RESET_HARD, NULL)); - cl_git_pass(git_oid__fromstr(&revert_oid, "2d440f2b3147d3dc7ad1085813478d6d869d5a4d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&revert_oid, "2d440f2b3147d3dc7ad1085813478d6d869d5a4d", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, NULL)); @@ -321,11 +321,11 @@ void test_revert_workdir__again_after_edit_two(void) cl_git_pass(git_repository_config(&config, repo)); cl_git_pass(git_config_set_bool(config, "core.autocrlf", 0)); - cl_git_pass(git_oid__fromstr(&head_commit_oid, "75ec9929465623f17ff3ad68c0438ea56faba815", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&head_commit_oid, "75ec9929465623f17ff3ad68c0438ea56faba815", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&head_commit, repo, &head_commit_oid)); cl_git_pass(git_reset(repo, (git_object *)head_commit, GIT_RESET_HARD, NULL)); - cl_git_pass(git_oid__fromstr(&revert_commit_oid, "97e52d5e81f541080cd6b92829fb85bc4d81d90b", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&revert_commit_oid, "97e52d5e81f541080cd6b92829fb85bc4d81d90b", GIT_OID_SHA1)); cl_git_pass(git_commit_lookup(&revert_commit, repo, &revert_commit_oid)); cl_git_pass(git_revert(repo, revert_commit, NULL)); @@ -376,11 +376,11 @@ void test_revert_workdir__conflict_use_ours(void) opts.checkout_opts.checkout_strategy = GIT_CHECKOUT_USE_OURS; - git_oid__fromstr(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "72333f47d4e83616630ff3b0ffe4c0faebcc3c45", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "d1d403d22cbe24592d725f442835cf46fe60c8ac", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, &opts)); @@ -412,11 +412,11 @@ void test_revert_workdir__rename_1_of_2(void) opts.merge_opts.flags |= GIT_MERGE_FIND_RENAMES; opts.merge_opts.rename_threshold = 50; - git_oid__fromstr(&head_oid, "cef56612d71a6af8d8015691e4865f7fece905b5", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "cef56612d71a6af8d8015691e4865f7fece905b5", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&revert_oid, "55568c8de5322ff9a95d72747a239cdb64a19965", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "55568c8de5322ff9a95d72747a239cdb64a19965", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, &opts)); @@ -446,11 +446,11 @@ void test_revert_workdir__rename(void) opts.merge_opts.flags |= GIT_MERGE_FIND_RENAMES; opts.merge_opts.rename_threshold = 50; - git_oid__fromstr(&head_oid, "55568c8de5322ff9a95d72747a239cdb64a19965", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "55568c8de5322ff9a95d72747a239cdb64a19965", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); - git_oid__fromstr(&revert_oid, "0aa8c7e40d342fff78d60b29a4ba8e993ed79c51", GIT_OID_SHA1); + git_oid_from_string(&revert_oid, "0aa8c7e40d342fff78d60b29a4ba8e993ed79c51", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&commit, repo, &revert_oid)); cl_git_pass(git_revert(repo, commit, &opts)); @@ -512,7 +512,7 @@ void test_revert_workdir__merge_fails_without_mainline_specified(void) git_commit *head; git_oid head_oid; - git_oid__fromstr(&head_oid, "5acdc74af27172ec491d213ee36cea7eb9ef2579", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "5acdc74af27172ec491d213ee36cea7eb9ef2579", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); @@ -539,7 +539,7 @@ void test_revert_workdir__merge_first_parent(void) opts.mainline = 1; - git_oid__fromstr(&head_oid, "5acdc74af27172ec491d213ee36cea7eb9ef2579", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "5acdc74af27172ec491d213ee36cea7eb9ef2579", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); @@ -564,7 +564,7 @@ void test_revert_workdir__merge_second_parent(void) opts.mainline = 2; - git_oid__fromstr(&head_oid, "5acdc74af27172ec491d213ee36cea7eb9ef2579", GIT_OID_SHA1); + git_oid_from_string(&head_oid, "5acdc74af27172ec491d213ee36cea7eb9ef2579", GIT_OID_SHA1); cl_git_pass(git_commit_lookup(&head, repo, &head_oid)); cl_git_pass(git_reset(repo, (git_object *)head, GIT_RESET_HARD, NULL)); diff --git a/tests/libgit2/revwalk/basic.c b/tests/libgit2/revwalk/basic.c index 41090a1dac8..b4cf76d262e 100644 --- a/tests/libgit2/revwalk/basic.c +++ b/tests/libgit2/revwalk/basic.c @@ -139,7 +139,7 @@ void test_revwalk_basic__sorting_modes(void) revwalk_basic_setup_walk(NULL); - git_oid__fromstr(&id, commit_head, GIT_OID_SHA1); + git_oid_from_string(&id, commit_head, GIT_OID_SHA1); cl_git_pass(test_walk(_walk, &id, GIT_SORT_TIME, commit_sorting_time, 1)); cl_git_pass(test_walk(_walk, &id, GIT_SORT_TOPOLOGICAL, commit_sorting_topo, 2)); @@ -221,7 +221,7 @@ void test_revwalk_basic__sorted_after_reset(void) revwalk_basic_setup_walk(NULL); - git_oid__fromstr(&oid, commit_head, GIT_OID_SHA1); + git_oid_from_string(&oid, commit_head, GIT_OID_SHA1); /* push, sort, and test the walk */ cl_git_pass(git_revwalk_push(_walk, &oid)); @@ -299,7 +299,7 @@ void test_revwalk_basic__multiple_push_1(void) cl_git_pass(git_revwalk_hide_ref(_walk, "refs/heads/packed-test")); - cl_git_pass(git_oid__fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); cl_git_pass(git_revwalk_push(_walk, &oid)); while (git_revwalk_next(&oid, _walk) == 0) @@ -333,7 +333,7 @@ void test_revwalk_basic__multiple_push_2(void) revwalk_basic_setup_walk(NULL); - cl_git_pass(git_oid__fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); cl_git_pass(git_revwalk_push(_walk, &oid)); cl_git_pass(git_revwalk_hide_ref(_walk, "refs/heads/packed-test")); @@ -352,7 +352,7 @@ void test_revwalk_basic__disallow_non_commit(void) revwalk_basic_setup_walk(NULL); - cl_git_pass(git_oid__fromstr(&oid, "521d87c1ec3aef9824daf6d96cc0ae3710766d91", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "521d87c1ec3aef9824daf6d96cc0ae3710766d91", GIT_OID_SHA1)); cl_git_fail(git_revwalk_push(_walk, &oid)); } @@ -362,7 +362,7 @@ void test_revwalk_basic__hide_then_push(void) int i = 0; revwalk_basic_setup_walk(NULL); - cl_git_pass(git_oid__fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); cl_git_pass(git_revwalk_hide(_walk, &oid)); cl_git_pass(git_revwalk_push(_walk, &oid)); @@ -376,7 +376,7 @@ void test_revwalk_basic__hide_then_push(void) void test_revwalk_basic__topo_crash(void) { git_oid oid; - git_oid__fromstr(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); + git_oid_from_string(&oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1); revwalk_basic_setup_walk(NULL); git_revwalk_sorting(_walk, GIT_SORT_TOPOLOGICAL); @@ -395,8 +395,8 @@ void test_revwalk_basic__from_new_to_old(void) revwalk_basic_setup_walk(NULL); git_revwalk_sorting(_walk, GIT_SORT_TIME); - cl_git_pass(git_oid__fromstr(&to_oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&from_oid, "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&to_oid, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&from_oid, "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); cl_git_pass(git_revwalk_push(_walk, &to_oid)); cl_git_pass(git_revwalk_hide(_walk, &from_oid)); @@ -496,7 +496,7 @@ void test_revwalk_basic__mimic_git_rev_list(void) cl_git_pass(git_revwalk_push_ref(_walk, "refs/heads/br2")); cl_git_pass(git_revwalk_push_ref(_walk, "refs/heads/master")); - cl_git_pass(git_oid__fromstr(&oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1)); cl_git_pass(git_revwalk_push(_walk, &oid)); cl_git_pass(git_revwalk_next(&oid, _walk)); @@ -580,10 +580,10 @@ void test_revwalk_basic__old_hidden_commit_one(void) revwalk_basic_setup_walk("testrepo.git"); - cl_git_pass(git_oid__fromstr(&new_id, "bd758010071961f28336333bc41e9c64c9a64866", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&new_id, "bd758010071961f28336333bc41e9c64c9a64866", GIT_OID_SHA1)); cl_git_pass(git_revwalk_push(_walk, &new_id)); - cl_git_pass(git_oid__fromstr(&old_id, "8e73b769e97678d684b809b163bebdae2911720f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&old_id, "8e73b769e97678d684b809b163bebdae2911720f", GIT_OID_SHA1)); cl_git_pass(git_revwalk_hide(_walk, &old_id)); cl_git_pass(git_revwalk_next(&oid, _walk)); @@ -604,10 +604,10 @@ void test_revwalk_basic__old_hidden_commit_two(void) revwalk_basic_setup_walk("testrepo.git"); - cl_git_pass(git_oid__fromstr(&new_id, "bd758010071961f28336333bc41e9c64c9a64866", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&new_id, "bd758010071961f28336333bc41e9c64c9a64866", GIT_OID_SHA1)); cl_git_pass(git_revwalk_push(_walk, &new_id)); - cl_git_pass(git_oid__fromstr(&old_id, "b91e763008b10db366442469339f90a2b8400d0a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&old_id, "b91e763008b10db366442469339f90a2b8400d0a", GIT_OID_SHA1)); cl_git_pass(git_revwalk_hide(_walk, &old_id)); cl_git_pass(git_revwalk_next(&oid, _walk)); diff --git a/tests/libgit2/revwalk/hidecb.c b/tests/libgit2/revwalk/hidecb.c index 2100a54f26c..132b6a837ba 100644 --- a/tests/libgit2/revwalk/hidecb.c +++ b/tests/libgit2/revwalk/hidecb.c @@ -32,10 +32,10 @@ void test_revwalk_hidecb__initialize(void) int i; cl_git_pass(git_repository_open(&_repo, cl_fixture("testrepo.git"))); - cl_git_pass(git_oid__fromstr(&_head_id, commit_head, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&_head_id, commit_head, GIT_OID_SHA1)); for (i = 0; i < commit_count; i++) - cl_git_pass(git_oid__fromstr(&commit_ids[i], commit_strs[i], GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&commit_ids[i], commit_strs[i], GIT_OID_SHA1)); } diff --git a/tests/libgit2/revwalk/mergebase.c b/tests/libgit2/revwalk/mergebase.c index d413a1f6edb..1d7f6908a47 100644 --- a/tests/libgit2/revwalk/mergebase.c +++ b/tests/libgit2/revwalk/mergebase.c @@ -25,9 +25,9 @@ void test_revwalk_mergebase__single1(void) git_oid result, one, two, expected; size_t ahead, behind; - cl_git_pass(git_oid__fromstr(&one, "c47800c7266a2be04c571c04d5a6614691ea99bd ", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, "5b5b025afb0b4c913b4c338a42934a3863bf3644", GIT_OID_SHA1)); cl_git_pass(git_merge_base(&result, _repo, &one, &two)); cl_assert_equal_oid(&expected, &result); @@ -46,9 +46,9 @@ void test_revwalk_mergebase__single2(void) git_oid result, one, two, expected; size_t ahead, behind; - cl_git_pass(git_oid__fromstr(&one, "763d71aadf09a7951596c9746c024e7eece7c7af", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "763d71aadf09a7951596c9746c024e7eece7c7af", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); cl_git_pass(git_merge_base(&result, _repo, &one, &two)); cl_assert_equal_oid(&expected, &result); @@ -67,9 +67,9 @@ void test_revwalk_mergebase__merged_branch(void) git_oid result, one, two, expected; size_t ahead, behind; - cl_git_pass(git_oid__fromstr(&one, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); cl_git_pass(git_merge_base(&result, _repo, &one, &two)); cl_assert_equal_oid(&expected, &result); @@ -91,8 +91,8 @@ void test_revwalk_mergebase__two_way_merge(void) git_oid one, two; size_t ahead, behind; - cl_git_pass(git_oid__fromstr(&one, "9b219343610c88a1187c996d0dc58330b55cee28", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "a953a018c5b10b20c86e69fef55ebc8ad4c5a417", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "9b219343610c88a1187c996d0dc58330b55cee28", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "a953a018c5b10b20c86e69fef55ebc8ad4c5a417", GIT_OID_SHA1)); cl_git_pass(git_graph_ahead_behind(&ahead, &behind, _repo2, &one, &two)); cl_assert_equal_sz(ahead, 8); @@ -110,8 +110,8 @@ void test_revwalk_mergebase__no_common_ancestor_returns_ENOTFOUND(void) size_t ahead, behind; int error; - cl_git_pass(git_oid__fromstr(&one, "763d71aadf09a7951596c9746c024e7eece7c7af", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "763d71aadf09a7951596c9746c024e7eece7c7af", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "e90810b8df3e80c413d903f631643c716887138d", GIT_OID_SHA1)); error = git_merge_base(&result, _repo, &one, &two); cl_git_fail(error); @@ -127,9 +127,9 @@ void test_revwalk_mergebase__prefer_youngest_merge_base(void) { git_oid result, one, two, expected; - cl_git_pass(git_oid__fromstr(&one, "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); cl_git_pass(git_merge_base(&result, _repo, &one, &two)); cl_assert_equal_oid(&expected, &result); @@ -140,10 +140,10 @@ void test_revwalk_mergebase__multiple_merge_bases(void) git_oid one, two, expected1, expected2; git_oidarray result = {NULL, 0}; - cl_git_pass(git_oid__fromstr(&one, "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected1, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected2, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected1, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected2, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); cl_git_pass(git_merge_bases(&result, _repo, &one, &two)); cl_assert_equal_i(2, result.count); @@ -160,10 +160,10 @@ void test_revwalk_mergebase__multiple_merge_bases_many_commits(void) git_oid *input = git__malloc(sizeof(git_oid) * 2); - cl_git_pass(git_oid__fromstr(&input[0], "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&input[1], "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected1, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&expected2, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&input[0], "a4a7dce85cf63874e984719f4fdd239f5145052f", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&input[1], "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected1, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected2, "9fd738e8f7967c078dceed8190330fc8648ee56a", GIT_OID_SHA1)); cl_git_pass(git_merge_bases_many(&result, _repo, 2, input)); cl_assert_equal_i(2, result.count); @@ -178,8 +178,8 @@ void test_revwalk_mergebase__no_off_by_one_missing(void) { git_oid result, one, two; - cl_git_pass(git_oid__fromstr(&one, "1a443023183e3f2bfbef8ac923cd81c1018a18fd", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "9f13f7d0a9402c681f91dc590cf7b5470e6a77d2", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "1a443023183e3f2bfbef8ac923cd81c1018a18fd", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "9f13f7d0a9402c681f91dc590cf7b5470e6a77d2", GIT_OID_SHA1)); cl_git_pass(git_merge_base(&result, _repo, &one, &two)); } @@ -201,7 +201,7 @@ static void assert_mergebase_many(const char *expected_sha, int count, ...) for (i = 0; i < count; ++i) { partial_oid = va_arg(ap, char *); - cl_git_pass(git_oid__fromstrn(&oid, partial_oid, strlen(partial_oid), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, partial_oid, strlen(partial_oid), GIT_OID_SHA1)); cl_git_pass(git_object_lookup_prefix(&object, _repo, &oid, strlen(partial_oid), GIT_OBJECT_COMMIT)); git_oid_cpy(&oids[i], git_object_id(object)); @@ -214,7 +214,7 @@ static void assert_mergebase_many(const char *expected_sha, int count, ...) cl_assert_equal_i(GIT_ENOTFOUND, git_merge_base_many(&oid, _repo, count, oids)); else { cl_git_pass(git_merge_base_many(&oid, _repo, count, oids)); - cl_git_pass(git_oid__fromstr(&expected, expected_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, expected_sha, GIT_OID_SHA1)); cl_assert_equal_oid(&expected, &oid); } @@ -265,7 +265,7 @@ static void assert_mergebase_octopus(const char *expected_sha, int count, ...) for (i = 0; i < count; ++i) { partial_oid = va_arg(ap, char *); - cl_git_pass(git_oid__fromstrn(&oid, partial_oid, strlen(partial_oid), GIT_OID_SHA1)); + cl_git_pass(git_oid_from_prefix(&oid, partial_oid, strlen(partial_oid), GIT_OID_SHA1)); cl_git_pass(git_object_lookup_prefix(&object, _repo, &oid, strlen(partial_oid), GIT_OBJECT_COMMIT)); git_oid_cpy(&oids[i], git_object_id(object)); @@ -278,7 +278,7 @@ static void assert_mergebase_octopus(const char *expected_sha, int count, ...) cl_assert_equal_i(GIT_ENOTFOUND, git_merge_base_octopus(&oid, _repo, count, oids)); else { cl_git_pass(git_merge_base_octopus(&oid, _repo, count, oids)); - cl_git_pass(git_oid__fromstr(&expected, expected_sha, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&expected, expected_sha, GIT_OID_SHA1)); cl_assert_equal_oid(&expected, &oid); } @@ -501,9 +501,9 @@ void test_revwalk_mergebase__remove_redundant(void) cl_git_pass(git_repository_open(&repo, cl_fixture("redundant.git"))); - cl_git_pass(git_oid__fromstr(&one, "d89137c93ba1ee749214ff4ce52ae9137bc833f9", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&two, "91f4b95df4a59504a9813ba66912562931d990e3", GIT_OID_SHA1)); - cl_git_pass(git_oid__fromstr(&base, "6cb1f2352d974e1c5a776093017e8772416ac97a", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&one, "d89137c93ba1ee749214ff4ce52ae9137bc833f9", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&two, "91f4b95df4a59504a9813ba66912562931d990e3", GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&base, "6cb1f2352d974e1c5a776093017e8772416ac97a", GIT_OID_SHA1)); cl_git_pass(git_merge_bases(&result, repo, &one, &two)); cl_assert_equal_i(1, result.count); diff --git a/tests/libgit2/revwalk/simplify.c b/tests/libgit2/revwalk/simplify.c index 824496d7eb9..70c1a666124 100644 --- a/tests/libgit2/revwalk/simplify.c +++ b/tests/libgit2/revwalk/simplify.c @@ -32,13 +32,13 @@ void test_revwalk_simplify__first_parent(void) int i, error; for (i = 0; i < 4; i++) { - git_oid__fromstr(&expected[i], expected_str[i], GIT_OID_SHA1); + git_oid_from_string(&expected[i], expected_str[i], GIT_OID_SHA1); } repo = cl_git_sandbox_init("testrepo.git"); cl_git_pass(git_revwalk_new(&walk, repo)); - git_oid__fromstr(&id, commit_head, GIT_OID_SHA1); + git_oid_from_string(&id, commit_head, GIT_OID_SHA1); cl_git_pass(git_revwalk_push(walk, &id)); git_revwalk_sorting(walk, GIT_SORT_TOPOLOGICAL); git_revwalk_simplify_first_parent(walk); diff --git a/tests/libgit2/status/single.c b/tests/libgit2/status/single.c index b9659a0315d..d217064b582 100644 --- a/tests/libgit2/status/single.c +++ b/tests/libgit2/status/single.c @@ -18,7 +18,7 @@ void test_status_single__hash_single_file(void) git_oid expected_id, actual_id; /* initialization */ - git_oid__fromstr(&expected_id, file_hash, GIT_OID_SHA1); + git_oid_from_string(&expected_id, file_hash, GIT_OID_SHA1); cl_git_mkfile(file_name, file_contents); cl_set_cleanup(&cleanup__remove_file, (void *)file_name); @@ -36,7 +36,7 @@ void test_status_single__hash_single_empty_file(void) git_oid expected_id, actual_id; /* initialization */ - git_oid__fromstr(&expected_id, file_hash, GIT_OID_SHA1); + git_oid_from_string(&expected_id, file_hash, GIT_OID_SHA1); cl_git_mkfile(file_name, file_contents); cl_set_cleanup(&cleanup__remove_file, (void *)file_name); diff --git a/tests/libgit2/status/submodules.c b/tests/libgit2/status/submodules.c index 90d56d9cc8e..9c901144592 100644 --- a/tests/libgit2/status/submodules.c +++ b/tests/libgit2/status/submodules.c @@ -142,7 +142,7 @@ void test_status_submodules__moved_head(void) /* move submodule HEAD to c47800c7266a2be04c571c04d5a6614691ea99bd */ cl_git_pass( - git_oid__fromstr(&oid, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); + git_oid_from_string(&oid, "c47800c7266a2be04c571c04d5a6614691ea99bd", GIT_OID_SHA1)); cl_git_pass(git_repository_set_head_detached(smrepo, &oid)); /* first do a normal status, which should now include the submodule */ diff --git a/tests/libgit2/status/worktree.c b/tests/libgit2/status/worktree.c index 8a2ea9cb674..9e3623361bf 100644 --- a/tests/libgit2/status/worktree.c +++ b/tests/libgit2/status/worktree.c @@ -515,19 +515,19 @@ void test_status_worktree__conflict_with_diff3(void) ancestor_entry.path = "modified_file"; ancestor_entry.mode = 0100644; - git_oid__fromstr(&ancestor_entry.id, + git_oid_from_string(&ancestor_entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); our_entry.path = "modified_file"; our_entry.mode = 0100644; - git_oid__fromstr(&our_entry.id, + git_oid_from_string(&our_entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); their_entry.path = "modified_file"; their_entry.mode = 0100644; - git_oid__fromstr(&their_entry.id, + git_oid_from_string(&their_entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); @@ -714,19 +714,19 @@ void test_status_worktree__conflicted_item(void) ancestor_entry.mode = 0100644; ancestor_entry.path = "modified_file"; - git_oid__fromstr(&ancestor_entry.id, + git_oid_from_string(&ancestor_entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); our_entry.mode = 0100644; our_entry.path = "modified_file"; - git_oid__fromstr(&our_entry.id, + git_oid_from_string(&our_entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); their_entry.mode = 0100644; their_entry.path = "modified_file"; - git_oid__fromstr(&their_entry.id, + git_oid_from_string(&their_entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); @@ -754,7 +754,7 @@ void test_status_worktree__conflict_has_no_oid(void) entry.mode = 0100644; entry.path = "modified_file"; - git_oid__fromstr(&entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "452e4244b5d083ddf0460acf1ecc74db9dcfa11a", GIT_OID_SHA1); cl_git_pass(git_repository_index(&index, repo)); cl_git_pass(git_index_conflict_add(index, &entry, &entry, &entry)); diff --git a/tests/libgit2/submodule/add.c b/tests/libgit2/submodule/add.c index 5208c7fcaa5..915ccf415dc 100644 --- a/tests/libgit2/submodule/add.c +++ b/tests/libgit2/submodule/add.c @@ -139,7 +139,7 @@ static void test_add_entry( { git_index_entry entry = {{0}}; - cl_git_pass(git_oid__fromstr(&entry.id, idstr, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&entry.id, idstr, GIT_OID_SHA1)); entry.path = path; entry.mode = mode; diff --git a/tests/libgit2/transports/smart/packet.c b/tests/libgit2/transports/smart/packet.c index a775a4cfab4..3fb0bf6b305 100644 --- a/tests/libgit2/transports/smart/packet.c +++ b/tests/libgit2/transports/smart/packet.c @@ -73,7 +73,7 @@ static void assert_ack_parses(const char *line, const char *expected_oid, enum g git_oid oid; git_pkt_parse_data pkt_parse_data = { 1, GIT_OID_SHA1 }; - cl_git_pass(git_oid__fromstr(&oid, expected_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, expected_oid, GIT_OID_SHA1)); cl_git_pass(git_pkt_parse_line((git_pkt **) &pkt, &endptr, line, linelen, &pkt_parse_data)); cl_assert_equal_i(pkt->type, GIT_PKT_ACK); @@ -165,7 +165,7 @@ static void assert_ref_parses_(const char *line, size_t linelen, const char *exp git_oid oid; git_pkt_parse_data pkt_parse_data = { 0 }; - cl_git_pass(git_oid__fromstr(&oid, expected_oid, GIT_OID_SHA1)); + cl_git_pass(git_oid_from_string(&oid, expected_oid, GIT_OID_SHA1)); cl_git_pass(git_pkt_parse_line((git_pkt **) &pkt, &endptr, line, linelen, &pkt_parse_data)); cl_assert_equal_i(pkt->type, GIT_PKT_REF); diff --git a/tests/libgit2/win32/forbidden.c b/tests/libgit2/win32/forbidden.c index c4e82e90deb..bcdcdc3a7c2 100644 --- a/tests/libgit2/win32/forbidden.c +++ b/tests/libgit2/win32/forbidden.c @@ -37,7 +37,7 @@ void test_win32_forbidden__can_add_forbidden_filename_with_entry(void) entry.path = "aux"; entry.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&entry.id, "da623abd956bb2fd8052c708c7ed43f05d192d37", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "da623abd956bb2fd8052c708c7ed43f05d192d37", GIT_OID_SHA1); cl_git_pass(git_index_add(index, &entry)); @@ -53,7 +53,7 @@ void test_win32_forbidden__cannot_add_dot_git_even_with_entry(void) entry.path = "foo/.git"; entry.mode = GIT_FILEMODE_BLOB; - git_oid__fromstr(&entry.id, "da623abd956bb2fd8052c708c7ed43f05d192d37", GIT_OID_SHA1); + git_oid_from_string(&entry.id, "da623abd956bb2fd8052c708c7ed43f05d192d37", GIT_OID_SHA1); cl_git_fail(git_index_add(index, &entry)); From 2fa13adf09c8dd1f334f57023390043ea3f71cb2 Mon Sep 17 00:00:00 2001 From: Florian Pircher Date: Thu, 2 Jan 2025 17:19:58 +0100 Subject: [PATCH 24/58] include: Fix code comment termination --- include/git2/stdint.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/git2/stdint.h b/include/git2/stdint.h index 4b235c73f87..4f532e13c85 100644 --- a/include/git2/stdint.h +++ b/include/git2/stdint.h @@ -221,7 +221,7 @@ typedef uint64_t uintmax_t; #endif /* __STDC_LIMIT_MACROS ] */ -/* 7.18.4 Limits of other integer types +/* 7.18.4 Limits of other integer types */ #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) /* [ See footnote 224 at page 260 */ From 01c16e6aa7a2377f115375aa9fdebd30f0f9f797 Mon Sep 17 00:00:00 2001 From: peter15914 <48548636+peter15914@users.noreply.github.com> Date: Fri, 3 Jan 2025 01:22:53 +0500 Subject: [PATCH 25/58] =?UTF-8?q?transport:=20=D1=81heck=20a=20pointer=20a?= =?UTF-8?q?llocation=20result?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GIT_ERROR_CHECK_ALLOC was added to check the return value of git__calloc(). --- tests/libgit2/transport/register.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/libgit2/transport/register.c b/tests/libgit2/transport/register.c index 4d3c09726da..1554afc23c2 100644 --- a/tests/libgit2/transport/register.c +++ b/tests/libgit2/transport/register.c @@ -144,6 +144,7 @@ static int custom_subtransport__action( git_remote_connect_options_dispose(&opts); *out = git__calloc(1, sizeof(git_smart_subtransport_stream)); + GIT_ERROR_CHECK_ALLOC(*out); (*out)->subtransport = transport; (*out)->read = custom_subtransport_stream__read; (*out)->write = custom_subtransport_stream__write; @@ -169,6 +170,7 @@ static void custom_subtransport__free(git_smart_subtransport *transport) static int custom_transport_callback(git_smart_subtransport **out, git_transport *owner, void *param) { struct custom_subtransport *subtransport = git__calloc(1, sizeof(struct custom_subtransport)); + GIT_ERROR_CHECK_ALLOC(subtransport); subtransport->called = (int *)param; subtransport->owner = owner; subtransport->subtransport.action = custom_subtransport__action; From a7c4c7d8c8e139073988daaa628d605b61435552 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jan 2025 21:13:11 +0000 Subject: [PATCH 26/58] deps: remove chromium-zlib Remove the ability to compile-in chromium zlib. If users want to supply their own zlib implementation, it should be external to our build environment. --- deps/chromium-zlib/CMakeLists.txt | 101 ------------------------------ 1 file changed, 101 deletions(-) delete mode 100644 deps/chromium-zlib/CMakeLists.txt diff --git a/deps/chromium-zlib/CMakeLists.txt b/deps/chromium-zlib/CMakeLists.txt deleted file mode 100644 index 55d67948dbe..00000000000 --- a/deps/chromium-zlib/CMakeLists.txt +++ /dev/null @@ -1,101 +0,0 @@ -# CMake build script for the bundled Chromium zlib implementation. So far, it -# is only supported for x86_64 processors with CLMUL, SSE3, SSE4.2. -# -# TODO: The Chromium build file (in deps/chromium-zlib/zlib/BUILD.gn) supports -# more platforms (like ARM with NEON), more can be enabled as needed. - -cmake_minimum_required(VERSION 3.11) - -include(FetchContent) -include(FindGit) - -# Ensure that the git binary is present to download the sources. -find_package(Git) -if(NOT Git_FOUND) - message(FATAL_ERROR "git is required to download the Chromium zlib sources") -endif() - -fetchcontent_populate(chromium_zlib_src - GIT_REPOSITORY https://chromium.googlesource.com/chromium/src/third_party/zlib.git - GIT_TAG 2c183c9f93a328bfb3121284da13cf89a0f7e64a - QUIET -) - -# The Chromium build globally disables some warnings. -disable_warnings(implicit-fallthrough) -disable_warnings(unused-function) -disable_warnings(unused-parameter) -disable_warnings(sign-compare) -disable_warnings(declaration-after-statement) -disable_warnings(missing-declarations) - -# -O3 is also set by the Chromium configuration and has been deemed safe enough -# for them. -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG") -set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") - -# Common definitions. -add_definitions( - -DSTDC - -DNO_GZIP - -DZLIB_IMPLEMENTATION -) -list(APPEND SRC_ZLIB - "${chromium_zlib_src_SOURCE_DIR}/adler32.c" - "${chromium_zlib_src_SOURCE_DIR}/chromeconf.h" - "${chromium_zlib_src_SOURCE_DIR}/compress.c" - "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/insert_string.h" - "${chromium_zlib_src_SOURCE_DIR}/cpu_features.c" - "${chromium_zlib_src_SOURCE_DIR}/cpu_features.h" - "${chromium_zlib_src_SOURCE_DIR}/crc32.c" - "${chromium_zlib_src_SOURCE_DIR}/crc32.h" - "${chromium_zlib_src_SOURCE_DIR}/deflate.c" - "${chromium_zlib_src_SOURCE_DIR}/deflate.h" - "${chromium_zlib_src_SOURCE_DIR}/gzclose.c" - "${chromium_zlib_src_SOURCE_DIR}/gzguts.h" - "${chromium_zlib_src_SOURCE_DIR}/gzlib.c" - "${chromium_zlib_src_SOURCE_DIR}/gzread.c" - "${chromium_zlib_src_SOURCE_DIR}/gzwrite.c" - "${chromium_zlib_src_SOURCE_DIR}/infback.c" - "${chromium_zlib_src_SOURCE_DIR}/inffast.c" - "${chromium_zlib_src_SOURCE_DIR}/inffast.h" - "${chromium_zlib_src_SOURCE_DIR}/inffixed.h" - "${chromium_zlib_src_SOURCE_DIR}/inflate.h" - "${chromium_zlib_src_SOURCE_DIR}/inftrees.c" - "${chromium_zlib_src_SOURCE_DIR}/inftrees.h" - "${chromium_zlib_src_SOURCE_DIR}/trees.c" - "${chromium_zlib_src_SOURCE_DIR}/trees.h" - "${chromium_zlib_src_SOURCE_DIR}/uncompr.c" - "${chromium_zlib_src_SOURCE_DIR}/zconf.h" - "${chromium_zlib_src_SOURCE_DIR}/zlib.h" - "${chromium_zlib_src_SOURCE_DIR}/zutil.c" - "${chromium_zlib_src_SOURCE_DIR}/zutil.h" -) - -# x86_64-specific optimizations -string(APPEND CMAKE_C_FLAGS " -mssse3 -msse4.2 -mpclmul") -add_definitions( - -DCHROMIUM_ZLIB_NO_CHROMECONF - -DX86_NOT_WINDOWS - -DADLER32_SIMD_SSSE3 - -DCRC32_SIMD_SSE42_PCLMUL - -DDEFLATE_FILL_WINDOW_SSE2 - -DINFLATE_CHUNK_READ_64LE - -DINFLATE_CHUNK_SIMD_SSE2 -) -list(APPEND SRC_ZLIB - "${chromium_zlib_src_SOURCE_DIR}/adler32_simd.c" - "${chromium_zlib_src_SOURCE_DIR}/adler32_simd.h" - "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/chunkcopy.h" - "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/inffast_chunk.c" - "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/inffast_chunk.h" - "${chromium_zlib_src_SOURCE_DIR}/contrib/optimizations/inflate.c" - "${chromium_zlib_src_SOURCE_DIR}/crc32_simd.c" - "${chromium_zlib_src_SOURCE_DIR}/crc32_simd.h" - "${chromium_zlib_src_SOURCE_DIR}/crc_folding.c" - "${chromium_zlib_src_SOURCE_DIR}/fill_window_sse.c" -) - -list(SORT SRC_ZLIB) -include_directories("${chromium_zlib_src_SOURCE_DIR}") -add_library(chromium_zlib OBJECT ${SRC_ZLIB}) From 4802272f6801c74f03f0ae3f1ab1b4b946c34b5c Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 2 Jan 2025 21:13:50 +0000 Subject: [PATCH 27/58] cmake: remove "embedded libssh2" Compiling libssh2 into libgit2 directly is madness. If users want to create a single library that contains libssh2, then they should link a static library. --- CMakeLists.txt | 4 ---- cmake/SelectSSH.cmake | 9 --------- 2 files changed, 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e884db5034..335901d1fb0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,10 +74,6 @@ if(MSVC) # This option must match the settings used in your program, in particular if you # are linking statically option(STATIC_CRT "Link the static CRT libraries" ON) - - # If you want to embed a copy of libssh2 into libgit2, pass a - # path to libssh2 - option(EMBED_SSH_PATH "Path to libssh2 to embed (Windows)" OFF) endif() if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) diff --git a/cmake/SelectSSH.cmake b/cmake/SelectSSH.cmake index b0d747114da..35dfc901f47 100644 --- a/cmake/SelectSSH.cmake +++ b/cmake/SelectSSH.cmake @@ -27,15 +27,6 @@ elseif(USE_SSH STREQUAL ON OR USE_SSH STREQUAL "libssh2") set(GIT_SSH_LIBSSH2_MEMORY_CREDENTIALS 1) endif() - if(WIN32 AND EMBED_SSH_PATH) - file(GLOB SSH_SRC "${EMBED_SSH_PATH}/src/*.c") - list(SORT SSH_SRC) - list(APPEND LIBGIT2_DEPENDENCY_OBJECTS ${SSH_SRC}) - - list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${EMBED_SSH_PATH}/include") - file(WRITE "${EMBED_SSH_PATH}/src/libssh2_config.h" "#define HAVE_WINCNG\n#define LIBSSH2_WINCNG\n#include \"../win32/libssh2_config.h\"") - endif() - set(GIT_SSH 1) set(GIT_SSH_LIBSSH2 1) add_feature_info(SSH ON "using libssh2") From 2d5942571c9056213e1e370be5e8d6b24fe8b148 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Fri, 3 Jan 2025 09:21:16 +0000 Subject: [PATCH 28/58] object: introduce `type_is_valid` There's no such thing as a "loose object type" or a "packed object type". There are only object types. Introduce `type_is_valid` and deprecate `typeisloose`. --- include/git2/deprecated.h | 10 +++++++++ include/git2/object.h | 7 +++---- src/libgit2/object.c | 20 +++++++++--------- src/libgit2/odb.c | 4 ++-- src/libgit2/odb_loose.c | 10 ++++----- tests/libgit2/object/raw/type2string.c | 28 +++++++++++++------------- 6 files changed, 44 insertions(+), 35 deletions(-) diff --git a/include/git2/deprecated.h b/include/git2/deprecated.h index d10143a5cbb..994503c7da7 100644 --- a/include/git2/deprecated.h +++ b/include/git2/deprecated.h @@ -665,6 +665,16 @@ GIT_EXTERN(int) git_index_add_frombuffer( */ GIT_EXTERN(size_t) git_object__size(git_object_t type); +/** + * Determine if the given git_object_t is a valid object type. + * + * @deprecated use `git_object_type_is_valid` + * + * @param type object type to test. + * @return 1 if the type represents a valid object type, 0 otherwise + */ +GIT_EXTERN(int) git_object_typeisloose(git_object_t type); + /**@}*/ /** @name Deprecated Remote Functions diff --git a/include/git2/object.h b/include/git2/object.h index 8a50239fe8d..f923f81edfb 100644 --- a/include/git2/object.h +++ b/include/git2/object.h @@ -180,13 +180,12 @@ GIT_EXTERN(const char *) git_object_type2string(git_object_t type); GIT_EXTERN(git_object_t) git_object_string2type(const char *str); /** - * Determine if the given git_object_t is a valid loose object type. + * Determine if the given git_object_t is a valid object type. * * @param type object type to test. - * @return true if the type represents a valid loose object type, - * false otherwise. + * @return 1 if the type represents a valid loose object type, 0 otherwise */ -GIT_EXTERN(int) git_object_typeisloose(git_object_t type); +GIT_EXTERN(int) git_object_type_is_valid(git_object_t type); /** * Recursively peel an object until an object of the specified type is met. diff --git a/src/libgit2/object.c b/src/libgit2/object.c index 1fff9de2917..f20dbb6cf36 100644 --- a/src/libgit2/object.c +++ b/src/libgit2/object.c @@ -33,7 +33,7 @@ typedef struct { } git_object_def; static git_object_def git_objects_table[] = { - /* 0 = GIT_OBJECT__EXT1 */ + /* 0 = unused */ { "", 0, NULL, NULL, NULL }, /* 1 = GIT_OBJECT_COMMIT */ @@ -46,14 +46,7 @@ static git_object_def git_objects_table[] = { { "blob", sizeof(git_blob), git_blob__parse, git_blob__parse_raw, git_blob__free }, /* 4 = GIT_OBJECT_TAG */ - { "tag", sizeof(git_tag), git_tag__parse, git_tag__parse_raw, git_tag__free }, - - /* 5 = GIT_OBJECT__EXT2 */ - { "", 0, NULL, NULL, NULL }, - /* 6 = GIT_OBJECT_OFS_DELTA */ - { "OFS_DELTA", 0, NULL, NULL, NULL }, - /* 7 = GIT_OBJECT_REF_DELTA */ - { "REF_DELTA", 0, NULL, NULL, NULL }, + { "tag", sizeof(git_tag), git_tag__parse, git_tag__parse_raw, git_tag__free } }; int git_object__from_raw( @@ -342,7 +335,7 @@ git_object_t git_object_stringn2type(const char *str, size_t len) return GIT_OBJECT_INVALID; } -int git_object_typeisloose(git_object_t type) +int git_object_type_is_valid(git_object_t type) { if (type < 0 || ((size_t) type) >= ARRAY_SIZE(git_objects_table)) return 0; @@ -350,6 +343,13 @@ int git_object_typeisloose(git_object_t type) return (git_objects_table[type].size > 0) ? 1 : 0; } +#ifndef GIT_DEPRECATE_HARD +int git_object_typeisloose(git_object_t type) +{ + return git_object_type_is_valid(type); +} +#endif + size_t git_object__size(git_object_t type) { if (type < 0 || ((size_t) type) >= ARRAY_SIZE(git_objects_table)) diff --git a/src/libgit2/odb.c b/src/libgit2/odb.c index 5678524c4d0..6ed072b354d 100644 --- a/src/libgit2/odb.c +++ b/src/libgit2/odb.c @@ -116,7 +116,7 @@ int git_odb__hashobj(git_oid *id, git_rawobj *obj, git_oid_t oid_type) GIT_ASSERT_ARG(id); GIT_ASSERT_ARG(obj); - if (!git_object_typeisloose(obj->type)) { + if (!git_object_type_is_valid(obj->type)) { git_error_set(GIT_ERROR_INVALID, "invalid object type"); return -1; } @@ -219,7 +219,7 @@ int git_odb__hashfd( ssize_t read_len = 0; int error = 0; - if (!git_object_typeisloose(object_type)) { + if (!git_object_type_is_valid(object_type)) { git_error_set(GIT_ERROR_INVALID, "invalid object type for hash"); return -1; } diff --git a/src/libgit2/odb_loose.c b/src/libgit2/odb_loose.c index c772511a6ea..a91e296ae67 100644 --- a/src/libgit2/odb_loose.c +++ b/src/libgit2/odb_loose.c @@ -243,7 +243,7 @@ static int read_loose_packlike(git_rawobj *out, git_str *obj) if ((error = parse_header_packlike(&hdr, &head_len, obj_data, obj_len)) < 0) goto done; - if (!git_object_typeisloose(hdr.type) || head_len > obj_len) { + if (!git_object_type_is_valid(hdr.type) || head_len > obj_len) { git_error_set(GIT_ERROR_ODB, "failed to inflate loose object"); error = -1; goto done; @@ -296,7 +296,7 @@ static int read_loose_standard(git_rawobj *out, git_str *obj) (error = parse_header(&hdr, &head_len, head, decompressed)) < 0) goto done; - if (!git_object_typeisloose(hdr.type)) { + if (!git_object_type_is_valid(hdr.type)) { git_error_set(GIT_ERROR_ODB, "failed to inflate disk object"); error = -1; goto done; @@ -436,7 +436,7 @@ static int read_header_loose(git_rawobj *out, git_str *loc) else error = read_header_loose_standard(out, obj, (size_t)obj_len); - if (!error && !git_object_typeisloose(out->type)) { + if (!error && !git_object_type_is_valid(out->type)) { git_error_set(GIT_ERROR_ZLIB, "failed to read loose object header"); error = -1; goto done; @@ -954,7 +954,7 @@ static int loose_backend__readstream_packlike( if ((error = parse_header_packlike(hdr, &head_len, data, data_len)) < 0) return error; - if (!git_object_typeisloose(hdr->type)) { + if (!git_object_type_is_valid(hdr->type)) { git_error_set(GIT_ERROR_ODB, "failed to inflate loose object"); return -1; } @@ -986,7 +986,7 @@ static int loose_backend__readstream_standard( (error = parse_header(hdr, &head_len, head, init)) < 0) return error; - if (!git_object_typeisloose(hdr->type)) { + if (!git_object_type_is_valid(hdr->type)) { git_error_set(GIT_ERROR_ODB, "failed to inflate disk object"); return -1; } diff --git a/tests/libgit2/object/raw/type2string.c b/tests/libgit2/object/raw/type2string.c index ebd81f552ae..6f0b4760303 100644 --- a/tests/libgit2/object/raw/type2string.c +++ b/tests/libgit2/object/raw/type2string.c @@ -36,19 +36,19 @@ void test_object_raw_type2string__convert_string_to_type(void) cl_assert(git_object_string2type("hohoho") == GIT_OBJECT_INVALID); } -void test_object_raw_type2string__check_type_is_loose(void) +void test_object_raw_type2string__check_type_is_valid(void) { - cl_assert(git_object_typeisloose(GIT_OBJECT_INVALID) == 0); - cl_assert(git_object_typeisloose(0) == 0); /* EXT1 */ - cl_assert(git_object_typeisloose(GIT_OBJECT_COMMIT) == 1); - cl_assert(git_object_typeisloose(GIT_OBJECT_TREE) == 1); - cl_assert(git_object_typeisloose(GIT_OBJECT_BLOB) == 1); - cl_assert(git_object_typeisloose(GIT_OBJECT_TAG) == 1); - cl_assert(git_object_typeisloose(5) == 0); /* EXT2 */ - cl_assert(git_object_typeisloose(GIT_OBJECT_OFS_DELTA) == 0); - cl_assert(git_object_typeisloose(GIT_OBJECT_REF_DELTA) == 0); - - cl_assert(git_object_typeisloose(-2) == 0); - cl_assert(git_object_typeisloose(8) == 0); - cl_assert(git_object_typeisloose(1234) == 0); + cl_assert(git_object_type_is_valid(GIT_OBJECT_INVALID) == 0); + cl_assert(git_object_type_is_valid(0) == 0); /* EXT1 */ + cl_assert(git_object_type_is_valid(GIT_OBJECT_COMMIT) == 1); + cl_assert(git_object_type_is_valid(GIT_OBJECT_TREE) == 1); + cl_assert(git_object_type_is_valid(GIT_OBJECT_BLOB) == 1); + cl_assert(git_object_type_is_valid(GIT_OBJECT_TAG) == 1); + cl_assert(git_object_type_is_valid(5) == 0); /* EXT2 */ + cl_assert(git_object_type_is_valid(GIT_OBJECT_OFS_DELTA) == 0); + cl_assert(git_object_type_is_valid(GIT_OBJECT_REF_DELTA) == 0); + + cl_assert(git_object_type_is_valid(-2) == 0); + cl_assert(git_object_type_is_valid(8) == 0); + cl_assert(git_object_type_is_valid(1234) == 0); } From 23da3a8f3cc5594eae075f4fcf0d61f827236e7e Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Fri, 3 Jan 2025 09:43:32 +0000 Subject: [PATCH 29/58] object: remove OFS_DELTA and REF_DELTA values Deltas are not objects, they're entries in a packfile. Remove them from the object enum. --- include/git2/types.h | 4 +--- src/libgit2/indexer.c | 8 ++++---- src/libgit2/pack-objects.c | 4 ++-- src/libgit2/pack.c | 20 ++++++++++---------- src/libgit2/pack.h | 4 ++++ tests/libgit2/object/raw/hash.c | 8 ++++---- tests/libgit2/object/raw/type2string.c | 20 ++++++++++---------- tests/libgit2/repo/hashfile.c | 2 +- 8 files changed, 36 insertions(+), 34 deletions(-) diff --git a/include/git2/types.h b/include/git2/types.h index a4afd18c3bc..fdccd9646d7 100644 --- a/include/git2/types.h +++ b/include/git2/types.h @@ -76,9 +76,7 @@ typedef enum { GIT_OBJECT_COMMIT = 1, /**< A commit object. */ GIT_OBJECT_TREE = 2, /**< A tree (directory listing) object. */ GIT_OBJECT_BLOB = 3, /**< A file revision object. */ - GIT_OBJECT_TAG = 4, /**< An annotated tag object. */ - GIT_OBJECT_OFS_DELTA = 6, /**< A delta, base is given by an offset. */ - GIT_OBJECT_REF_DELTA = 7 /**< A delta, base is given by object id. */ + GIT_OBJECT_TAG = 4 /**< An annotated tag object. */ } git_object_t; /** diff --git a/src/libgit2/indexer.c b/src/libgit2/indexer.c index f1c85cb88bf..cdd2b243134 100644 --- a/src/libgit2/indexer.c +++ b/src/libgit2/indexer.c @@ -319,9 +319,9 @@ static int advance_delta_offset(git_indexer *idx, git_object_t type) { git_mwindow *w = NULL; - GIT_ASSERT_ARG(type == GIT_OBJECT_REF_DELTA || type == GIT_OBJECT_OFS_DELTA); + GIT_ASSERT_ARG(type == GIT_PACKFILE_REF_DELTA || type == GIT_PACKFILE_OFS_DELTA); - if (type == GIT_OBJECT_REF_DELTA) { + if (type == GIT_PACKFILE_REF_DELTA) { idx->off += git_oid_size(idx->oid_type); } else { off64_t base_off; @@ -813,7 +813,7 @@ static int read_stream_object(git_indexer *idx, git_indexer_progress *stats) git_hash_init(&idx->hash_ctx); git_str_clear(&idx->entry_data); - if (type == GIT_OBJECT_REF_DELTA || type == GIT_OBJECT_OFS_DELTA) { + if (type == GIT_PACKFILE_REF_DELTA || type == GIT_PACKFILE_OFS_DELTA) { error = advance_delta_offset(idx, type); if (error == GIT_EBUFS) { idx->off = entry_start; @@ -1094,7 +1094,7 @@ static int fix_thin_pack(git_indexer *idx, git_indexer_progress *stats) if (error < 0) return error; - if (type == GIT_OBJECT_REF_DELTA) { + if (type == GIT_PACKFILE_REF_DELTA) { found_ref_delta = 1; break; } diff --git a/src/libgit2/pack-objects.c b/src/libgit2/pack-objects.c index ced98e8c86d..efdd68aea0c 100644 --- a/src/libgit2/pack-objects.c +++ b/src/libgit2/pack-objects.c @@ -338,7 +338,7 @@ static int write_object( goto done; data_len = po->delta_size; - type = GIT_OBJECT_REF_DELTA; + type = GIT_PACKFILE_REF_DELTA; } else { if ((error = git_odb_read(&obj, pb->odb, &po->id)) < 0) goto done; @@ -354,7 +354,7 @@ static int write_object( (error = git_hash_update(&pb->ctx, hdr, hdr_len)) < 0) goto done; - if (type == GIT_OBJECT_REF_DELTA) { + if (type == GIT_PACKFILE_REF_DELTA) { if ((error = write_cb(po->delta->id.id, oid_size, cb_data)) < 0 || (error = git_hash_update(&pb->ctx, po->delta->id.id, oid_size)) < 0) goto done; diff --git a/src/libgit2/pack.c b/src/libgit2/pack.c index cf63b204e31..a70975a75bf 100644 --- a/src/libgit2/pack.c +++ b/src/libgit2/pack.c @@ -390,7 +390,7 @@ int git_packfile__object_header(size_t *out, unsigned char *hdr, size_t size, gi unsigned char *hdr_base; unsigned char c; - GIT_ASSERT_ARG(type >= GIT_OBJECT_COMMIT && type <= GIT_OBJECT_REF_DELTA); + GIT_ASSERT_ARG(type >= GIT_OBJECT_COMMIT && type <= GIT_PACKFILE_REF_DELTA); /* TODO: add support for chunked objects; see git.git 6c0d19b1 */ @@ -532,7 +532,7 @@ int git_packfile_resolve_header( if (error < 0) return error; - if (type == GIT_OBJECT_OFS_DELTA || type == GIT_OBJECT_REF_DELTA) { + if (type == GIT_PACKFILE_OFS_DELTA || type == GIT_PACKFILE_REF_DELTA) { size_t base_size; git_packfile_stream stream; @@ -553,12 +553,12 @@ int git_packfile_resolve_header( base_offset = 0; } - while (type == GIT_OBJECT_OFS_DELTA || type == GIT_OBJECT_REF_DELTA) { + while (type == GIT_PACKFILE_OFS_DELTA || type == GIT_PACKFILE_REF_DELTA) { curpos = base_offset; error = git_packfile_unpack_header(&size, &type, p, &w_curs, &curpos); if (error < 0) return error; - if (type != GIT_OBJECT_OFS_DELTA && type != GIT_OBJECT_REF_DELTA) + if (type != GIT_PACKFILE_OFS_DELTA && type != GIT_PACKFILE_REF_DELTA) break; error = get_delta_base(&base_offset, p, &w_curs, &curpos, type, base_offset); @@ -635,7 +635,7 @@ static int pack_dependency_chain(git_dependency_chain *chain_out, elem->type = type; elem->base_key = obj_offset; - if (type != GIT_OBJECT_OFS_DELTA && type != GIT_OBJECT_REF_DELTA) + if (type != GIT_PACKFILE_OFS_DELTA && type != GIT_PACKFILE_REF_DELTA) break; error = get_delta_base(&base_offset, p, &w_curs, &curpos, type, obj_offset); @@ -675,7 +675,7 @@ int git_packfile_unpack( git_pack_cache_entry *cached = NULL; struct pack_chain_elem small_stack[SMALL_STACK_SIZE]; size_t stack_size = 0, elem_pos, alloclen; - git_object_t base_type; + int base_type; error = git_mutex_lock(&p->lock); if (error < 0) { @@ -735,8 +735,8 @@ int git_packfile_unpack( if (error < 0) goto cleanup; break; - case GIT_OBJECT_OFS_DELTA: - case GIT_OBJECT_REF_DELTA: + case GIT_PACKFILE_OFS_DELTA: + case GIT_PACKFILE_REF_DELTA: error = packfile_error("dependency chain ends in a delta"); goto cleanup; default: @@ -983,7 +983,7 @@ int get_delta_base( * than the hash size is stupid, as then a REF_DELTA would be * smaller to store. */ - if (type == GIT_OBJECT_OFS_DELTA) { + if (type == GIT_PACKFILE_OFS_DELTA) { unsigned used = 0; unsigned char c = base_info[used++]; size_t unsigned_base_offset = c & 127; @@ -1000,7 +1000,7 @@ int get_delta_base( return packfile_error("out of bounds"); base_offset = delta_obj_offset - unsigned_base_offset; *curpos += used; - } else if (type == GIT_OBJECT_REF_DELTA) { + } else if (type == GIT_PACKFILE_REF_DELTA) { git_oid base_oid; git_oid_from_raw(&base_oid, base_info, p->oid_type); diff --git a/src/libgit2/pack.h b/src/libgit2/pack.h index 4fd092149b3..e802d60747c 100644 --- a/src/libgit2/pack.h +++ b/src/libgit2/pack.h @@ -33,6 +33,10 @@ typedef int git_pack_foreach_entry_offset_cb( #define PACK_SIGNATURE 0x5041434b /* "PACK" */ #define PACK_VERSION 2 #define pack_version_ok(v) ((v) == htonl(2)) + +#define GIT_PACKFILE_OFS_DELTA 6 +#define GIT_PACKFILE_REF_DELTA 7 + struct git_pack_header { uint32_t hdr_signature; uint32_t hdr_version; diff --git a/tests/libgit2/object/raw/hash.c b/tests/libgit2/object/raw/hash.c index 3bfaddaa23c..914096f6a5e 100644 --- a/tests/libgit2/object/raw/hash.c +++ b/tests/libgit2/object/raw/hash.c @@ -87,16 +87,16 @@ void test_object_raw_hash__hash_junk_data(void) junk_obj.data = some_data; hash_object_fail(&id, &junk_obj); - junk_obj.type = 0; /* EXT1 */ + junk_obj.type = 0; /* unused */ hash_object_fail(&id, &junk_obj); - junk_obj.type = 5; /* EXT2 */ + junk_obj.type = 5; /* unused */ hash_object_fail(&id, &junk_obj); - junk_obj.type = GIT_OBJECT_OFS_DELTA; + junk_obj.type = 6; /* packfile offset delta */ hash_object_fail(&id, &junk_obj); - junk_obj.type = GIT_OBJECT_REF_DELTA; + junk_obj.type = 7; /* packfile ref delta */ hash_object_fail(&id, &junk_obj); junk_obj.type = 42; diff --git a/tests/libgit2/object/raw/type2string.c b/tests/libgit2/object/raw/type2string.c index 6f0b4760303..e3a0764e55a 100644 --- a/tests/libgit2/object/raw/type2string.c +++ b/tests/libgit2/object/raw/type2string.c @@ -7,14 +7,14 @@ void test_object_raw_type2string__convert_type_to_string(void) { cl_assert_equal_s(git_object_type2string(GIT_OBJECT_INVALID), ""); - cl_assert_equal_s(git_object_type2string(0), ""); /* EXT1 */ + cl_assert_equal_s(git_object_type2string(0), ""); /* unused */ cl_assert_equal_s(git_object_type2string(GIT_OBJECT_COMMIT), "commit"); cl_assert_equal_s(git_object_type2string(GIT_OBJECT_TREE), "tree"); cl_assert_equal_s(git_object_type2string(GIT_OBJECT_BLOB), "blob"); cl_assert_equal_s(git_object_type2string(GIT_OBJECT_TAG), "tag"); - cl_assert_equal_s(git_object_type2string(5), ""); /* EXT2 */ - cl_assert_equal_s(git_object_type2string(GIT_OBJECT_OFS_DELTA), "OFS_DELTA"); - cl_assert_equal_s(git_object_type2string(GIT_OBJECT_REF_DELTA), "REF_DELTA"); + cl_assert_equal_s(git_object_type2string(5), ""); /* unused */ + cl_assert_equal_s(git_object_type2string(6), ""); /* packfile offset delta */ + cl_assert_equal_s(git_object_type2string(7), ""); /* packfile ref delta */ cl_assert_equal_s(git_object_type2string(-2), ""); cl_assert_equal_s(git_object_type2string(8), ""); @@ -29,8 +29,8 @@ void test_object_raw_type2string__convert_string_to_type(void) cl_assert(git_object_string2type("tree") == GIT_OBJECT_TREE); cl_assert(git_object_string2type("blob") == GIT_OBJECT_BLOB); cl_assert(git_object_string2type("tag") == GIT_OBJECT_TAG); - cl_assert(git_object_string2type("OFS_DELTA") == GIT_OBJECT_OFS_DELTA); - cl_assert(git_object_string2type("REF_DELTA") == GIT_OBJECT_REF_DELTA); + cl_assert(git_object_string2type("OFS_DELTA") == GIT_OBJECT_INVALID); + cl_assert(git_object_string2type("REF_DELTA") == GIT_OBJECT_INVALID); cl_assert(git_object_string2type("CoMmIt") == GIT_OBJECT_INVALID); cl_assert(git_object_string2type("hohoho") == GIT_OBJECT_INVALID); @@ -39,14 +39,14 @@ void test_object_raw_type2string__convert_string_to_type(void) void test_object_raw_type2string__check_type_is_valid(void) { cl_assert(git_object_type_is_valid(GIT_OBJECT_INVALID) == 0); - cl_assert(git_object_type_is_valid(0) == 0); /* EXT1 */ + cl_assert(git_object_type_is_valid(0) == 0); /* unused */ cl_assert(git_object_type_is_valid(GIT_OBJECT_COMMIT) == 1); cl_assert(git_object_type_is_valid(GIT_OBJECT_TREE) == 1); cl_assert(git_object_type_is_valid(GIT_OBJECT_BLOB) == 1); cl_assert(git_object_type_is_valid(GIT_OBJECT_TAG) == 1); - cl_assert(git_object_type_is_valid(5) == 0); /* EXT2 */ - cl_assert(git_object_type_is_valid(GIT_OBJECT_OFS_DELTA) == 0); - cl_assert(git_object_type_is_valid(GIT_OBJECT_REF_DELTA) == 0); + cl_assert(git_object_type_is_valid(5) == 0); /* unused */ + cl_assert(git_object_type_is_valid(6) == 0); /* packfile offset delta */ + cl_assert(git_object_type_is_valid(7) == 0); /* packfile ref delta */ cl_assert(git_object_type_is_valid(-2) == 0); cl_assert(git_object_type_is_valid(8) == 0); diff --git a/tests/libgit2/repo/hashfile.c b/tests/libgit2/repo/hashfile.c index f053cb950d4..64b8dfa460c 100644 --- a/tests/libgit2/repo/hashfile.c +++ b/tests/libgit2/repo/hashfile.c @@ -34,7 +34,7 @@ void test_repo_hashfile__simple(void) /* hash with invalid type */ cl_git_fail(git_odb__hashfile(&a, full.ptr, GIT_OBJECT_ANY, GIT_OID_SHA1)); - cl_git_fail(git_repository_hashfile(&b, _repo, full.ptr, GIT_OBJECT_OFS_DELTA, NULL)); + cl_git_fail(git_repository_hashfile(&b, _repo, full.ptr, 6, NULL)); git_str_dispose(&full); } From 904c8f266db7cecfc4601ef05a31853c3c39f6ef Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 7 Jan 2025 18:56:19 +0100 Subject: [PATCH 30/58] src/libgit2/CMakeLists.txt: install cmake files into configured libdir libdir can be something else than /usr/lib, e.g. /usr/lib64 or similar. --- src/libgit2/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt index a7d3c7ca400..16b3a23d9a8 100644 --- a/src/libgit2/CMakeLists.txt +++ b/src/libgit2/CMakeLists.txt @@ -119,11 +119,11 @@ configure_file(config.cmake.in install(FILES "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake" "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" - DESTINATION "lib/cmake/${PROJECT_NAME}") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") install( EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME} NAMESPACE "${PROJECT_NAME}::" - DESTINATION "lib/cmake/${PROJECT_NAME}") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") # Install From 1c6d51142d6873546f309c1362a1b6cddfd54147 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 7 Jan 2025 20:29:44 +0000 Subject: [PATCH 31/58] docs: add `update_refs` as ABI breaking change In v1.9, we failed to document that `update_refs` was a breaking change. Add information about this change to the ABI breaking changes section. --- docs/changelog.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index 9824d994bc7..591e515113a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -71,6 +71,13 @@ maintainers of bindings or FFI users, may want to be aware of. to provide a mechanism to nicely free the configuration entries that they provide. +* **`update_refs` callback for remotes** (ABI breaking change) + The `update_refs` callback was added to the `git_remote_callbacks` + structure to provide additional information about updated refs; + in particular, the `git_refspec` is included for more information + about the remote ref. The `update_refs` callback will be + preferred over the now deprecated `update_tips` callback. + ## What's Changed ### New features From 436f4e7d96f94caf7e4cc8103775f3d16fa35569 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 9 Jan 2025 21:45:11 +0000 Subject: [PATCH 32/58] benchmarks: update path to baseline cli The `fullpath` function takes the cli, but doesn't keep the cli. --- tests/benchmarks/benchmark.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/benchmarks/benchmark.sh b/tests/benchmarks/benchmark.sh index 6830064e776..944f26bc52a 100755 --- a/tests/benchmarks/benchmark.sh +++ b/tests/benchmarks/benchmark.sh @@ -100,11 +100,11 @@ SYSTEM_KERNEL=$(uname -v) fullpath() { if [[ "$(uname -s)" == "MINGW"* && $(cygpath -u "${TEST_CLI}") == "/"* ]]; then - echo "${TEST_CLI}" + echo "$1" elif [[ "${TEST_CLI}" == "/"* ]]; then - echo "${TEST_CLI}" + echo "$1" else - which "${TEST_CLI}" + which "$1" fi } From 343c2cbae87f119eaac5fc9d49699ad07f06e473 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 9 Jan 2025 23:44:23 +0000 Subject: [PATCH 33/58] benchmarks: report commit of build It can be useful to report the commit ID during benchmarks to track down regressions; leverage the addition of that in `git version` during benchmark runs. --- tests/benchmarks/benchmark.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/benchmarks/benchmark.sh b/tests/benchmarks/benchmark.sh index 944f26bc52a..2c18e50cef6 100755 --- a/tests/benchmarks/benchmark.sh +++ b/tests/benchmarks/benchmark.sh @@ -116,9 +116,20 @@ cli_version() { fi } +cli_commit() { + if [[ "$(uname -s)" == "MINGW"* ]]; then + BUILD_OPTIONS=$($(cygpath -u "$1") version --build-options) + else + BUILD_OPTIONS=$("$1" version --build-options) + fi + + echo "${BUILD_OPTIONS}" | grep '^built from commit: ' | sed -e 's/^built from commit: //' +} + TEST_CLI_NAME=$(basename "${TEST_CLI}") TEST_CLI_PATH=$(fullpath "${TEST_CLI}") TEST_CLI_VERSION=$(cli_version "${TEST_CLI}") +TEST_CLI_COMMIT=$(cli_commit "${TEST_CLI}") if [ "${BASELINE_CLI}" != "" ]; then if [[ "${BASELINE_CLI}" == "/"* ]]; then @@ -130,6 +141,7 @@ if [ "${BASELINE_CLI}" != "" ]; then BASELINE_CLI_NAME=$(basename "${BASELINE_CLI}") BASELINE_CLI_PATH=$(fullpath "${BASELINE_CLI}") BASELINE_CLI_VERSION=$(cli_version "${BASELINE_CLI}") + BASELINE_CLI_COMMIT=$(cli_commit "${BASELINE_CLI}") fi # @@ -281,8 +293,8 @@ if [ "${JSON_RESULT}" != "" ]; then SYSTEM_JSON="{ \"os\": \"${SYSTEM_OS}\", \"kernel\": \"${SYSTEM_KERNEL}\" }" TIME_JSON="{ \"start\": ${TIME_START}, \"end\": ${TIME_END} }" - TEST_CLI_JSON="{ \"name\": \"${TEST_CLI_NAME}\", \"path\": \"$(escape "${TEST_CLI_PATH}")\", \"version\": \"${TEST_CLI_VERSION}\" }" - BASELINE_CLI_JSON="{ \"name\": \"${BASELINE_CLI_NAME}\", \"path\": \"$(escape "${BASELINE_CLI_PATH}")\", \"version\": \"${BASELINE_CLI_VERSION}\" }" + TEST_CLI_JSON="{ \"name\": \"${TEST_CLI_NAME}\", \"path\": \"$(escape "${TEST_CLI_PATH}")\", \"version\": \"${TEST_CLI_VERSION}\", \"commit\": \"${TEST_CLI_COMMIT}\" }" + BASELINE_CLI_JSON="{ \"name\": \"${BASELINE_CLI_NAME}\", \"path\": \"$(escape "${BASELINE_CLI_PATH}")\", \"version\": \"${BASELINE_CLI_VERSION}\", \"commit\": \"${BASELINE_CLI_COMMIT}\" }" if [ "${BASELINE_CLI}" != "" ]; then EXECUTOR_JSON="{ \"baseline\": ${BASELINE_CLI_JSON}, \"cli\": ${TEST_CLI_JSON} }" From 6fedfd3237f4e9066bdb64f38b8366b40298d476 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Tue, 29 Oct 2024 15:23:39 -0400 Subject: [PATCH 34/58] Add benchmark for large-ish (250mb) index-pack --- .github/workflows/benchmark.yml | 14 ++++-- tests/benchmarks/benchmark_helpers.sh | 65 ++++++++++++++++++++++++--- tests/benchmarks/indexpack__250mb | 11 +++++ 3 files changed, 80 insertions(+), 10 deletions(-) create mode 100755 tests/benchmarks/indexpack__250mb diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 3fb912d40d0..8299c3e56e3 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -70,9 +70,14 @@ jobs: if: matrix.platform.setup-script != '' - name: Clone resource repositories run: | - mkdir resources + # we need a superior way to package the benchmark resources; lfs + # is too expensive + # git lfs install + # git clone https://github.com/libgit2/benchmark-resources resources git clone --bare https://github.com/git/git resources/git - git clone --bare https://github.com/torvalds/linux resources/linux + # avoid linux temporarily; the linux blame benchmarks are simply + # too slow to use + # git clone --bare https://github.com/torvalds/linux resources/linux - name: Build run: | mkdir build && cd build @@ -80,10 +85,11 @@ jobs: shell: bash - name: Benchmark run: | - export BENCHMARK_GIT_REPOSITORY="$(pwd)/resources/git" + export BENCHMARK_RESOURCES_PATH="$(pwd)/resources" + export BENCHMARK_GIT_PATH="$(pwd)/resources/git" # avoid linux temporarily; the linux blame benchmarks are simply # too slow to use - # export BENCHMARK_LINUX_REPOSITORY="$(pwd)/resources/linux" + # export BENCHMARK_LINUX_PATH="$(pwd)/resources/linux" if [[ "$(uname -s)" == MINGW* ]]; then GIT2_CLI="$(cygpath -w $(pwd))\\build\\Release\\git2" diff --git a/tests/benchmarks/benchmark_helpers.sh b/tests/benchmarks/benchmark_helpers.sh index 5143a01fcfd..0ff6b03ef35 100644 --- a/tests/benchmarks/benchmark_helpers.sh +++ b/tests/benchmarks/benchmark_helpers.sh @@ -23,6 +23,7 @@ fi HELP_GIT_REMOTE="https://github.com/git/git" HELP_LINUX_REMOTE="https://github.com/torvalds/linux" +HELP_RESOURCE_REPO="https://github.com/libgit2/benchmark-resources" # # parse the arguments to the outer script that's including us; these are arguments that @@ -205,6 +206,30 @@ create_preparescript() { cp -R "\${RESOURCES_DIR}/\${RESOURCE}" "\${SANDBOX_DIR}/" } + sandbox_resource() { + RESOURCE="\${1}" + + if [ "\${RESOURCE}" = "" ]; then + echo "usage: sandbox_resource " 1>&2 + exit 1 + fi + + RESOURCE_UPPER=\$(echo "\${RESOURCE}" | tr '[:lower:]' '[:upper:]' | sed -e "s/-/_/g") + RESOURCE_PATH=\$(eval echo "\\\${BENCHMARK_\${RESOURCE_UPPER}_PATH}") + + if [ "\${RESOURCE_PATH}" = "" -a "\${BENCHMARK_RESOURCES_PATH}" != "" ]; then + RESOURCE_PATH="\${BENCHMARK_RESOURCES_PATH}/\${RESOURCE}" + fi + + if [ ! -f "\${RESOURCE_PATH}" ]; then + echo "sandbox: the resource \"\${RESOURCE}\" does not exist" + exit 1 + fi + + rm -rf "\${SANDBOX_DIR:?}/\${RESOURCE}" + cp -R "\${RESOURCE_PATH}" "\${SANDBOX_DIR}/\${RESOURCE}" + } + sandbox_repo() { RESOURCE="\${1}" @@ -229,8 +254,8 @@ create_preparescript() { exit 1 fi - REPO_UPPER=\$(echo "\${1}" | tr '[:lower:]' '[:upper:]') - REPO_URL=\$(eval echo "\\\${BENCHMARK_\${REPO_UPPER}_REPOSITORY}") + REPO_UPPER=\$(echo "\${REPO}" | tr '[:lower:]' '[:upper:]') + REPO_URL=\$(eval echo "\\\${BENCHMARK_\${REPO_UPPER}_PATH}") if [ "\${REPO_URL}" = "" ]; then echo "\$0: unknown repository '\${REPO}'" 1>&2 @@ -397,17 +422,45 @@ needs_repo() { exit 1 fi - REPO_UPPER=$(echo "${1}" | tr '[:lower:]' '[:upper:]') - REPO_URL=$(eval echo "\${BENCHMARK_${REPO_UPPER}_REPOSITORY}") + REPO_UPPER=$(echo "${REPO}" | tr '[:lower:]' '[:upper:]') + REPO_PATH=$(eval echo "\${BENCHMARK_${REPO_UPPER}_PATH}") REPO_REMOTE_URL=$(eval echo "\${HELP_${REPO_UPPER}_REMOTE}") - if [ "${REPO_URL}" = "" ]; then + if [ "${REPO_PATH}" = "" ]; then echo "$0: '${REPO}' repository not configured" 1>&2 echo "" 1>&2 echo "This benchmark needs an on-disk '${REPO}' repository. First, clone the" 1>&2 - echo "remote repository ('${REPO_REMOTE_URL}') locally then set," 1>&2 + echo "remote repository ('${REPO_REMOTE_URL}') locally then set" 1>&2 echo "the 'BENCHMARK_${REPO_UPPER}_REPOSITORY' environment variable to the path that" 1>&2 echo "contains the repository locally, then run this benchmark again." 1>&2 exit 2 fi } + +# helper script to give useful error messages about configuration +needs_resource() { + RESOURCE="${1}" + + if [ "${RESOURCE}" = "" ]; then + echo "usage: needs_resource " 1>&2 + exit 1 + fi + + RESOURCE_UPPER=$(echo "${RESOURCE}" | tr '[:lower:]' '[:upper:]' | sed -e "s/-/_/g") + RESOURCE_PATH=$(eval echo "\${BENCHMARK_${RESOURCE_UPPER}_PATH}") + + if [ "${RESOURCE_PATH}" = "" -a "${BENCHMARK_RESOURCES_PATH}" != "" ]; then + RESOURCE_PATH="${BENCHMARK_RESOURCES_PATH}/${RESOURCE}" + fi + + if [ "${RESOURCE_PATH}" = "" ]; then + echo "$0: '${RESOURCE}' resource path not configured" 1>&2 + echo "" 1>&2 + echo "This benchmark needs an on-disk resource named '${RESOURCE}'." 1>&2 + echo "First, clone the additional benchmark resources locally (from" 1>&2 + echo "'${HELP_RESOURCE_REPO}'), then set the" 1>& 2 + echo "'BENCHMARK_RESOURCES_PATH' environment variable to the path that" 1>&2 + echo "contains the resources locally, then run this benchmark again." 1>&2 + exit 2 + fi +} diff --git a/tests/benchmarks/indexpack__250mb b/tests/benchmarks/indexpack__250mb new file mode 100755 index 00000000000..5bd964786ae --- /dev/null +++ b/tests/benchmarks/indexpack__250mb @@ -0,0 +1,11 @@ +#!/bin/bash -e + +. "$(dirname "$0")/benchmark_helpers.sh" + +needs_resource packfile-250mb + +gitbench --prepare "git init --bare dest.git && sandbox_resource packfile-250mb && mv packfile-250mb dest.git/packfile-250mb.pack" \ + --warmup 5 \ + --chdir "dest.git" \ + -- \ + index-pack packfile-250mb.pack From 1d2bdab7f808a3be46ad137187d80af3bb99395e Mon Sep 17 00:00:00 2001 From: Laurence McGlashan Date: Mon, 13 Jan 2025 12:16:44 +0000 Subject: [PATCH 35/58] Update SelectSSH.cmake --- cmake/SelectSSH.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/SelectSSH.cmake b/cmake/SelectSSH.cmake index 35dfc901f47..e655c3eccb4 100644 --- a/cmake/SelectSSH.cmake +++ b/cmake/SelectSSH.cmake @@ -33,5 +33,5 @@ elseif(USE_SSH STREQUAL ON OR USE_SSH STREQUAL "libssh2") elseif(USE_SSH STREQUAL OFF OR USE_SSH STREQUAL "") add_feature_info(SSH OFF "SSH transport support") else() - message(FATAL_ERROR "unknown SSH option: ${USE_HTTP_PARSER}") + message(FATAL_ERROR "unknown SSH option: ${USE_SSH}") endif() From dfbdaa28a545ad2374b9912f462ea9140e42b3f5 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Thu, 31 Oct 2024 11:47:43 -0400 Subject: [PATCH 36/58] benchmark: introduce profiling support Introduce `--profile` support to the benchmark helper script, which will invoke `perf` on Linux. Additionally, add a `--flamegraph` output option based on that. --- tests/benchmarks/_script/flamegraph/README.md | 226 + .../benchmarks/_script/flamegraph/aix-perf.pl | 31 + .../_script/flamegraph/difffolded.pl | 115 + .../flamegraph/example-dtrace-stacks.txt | 41913 ++++++++++++++++ .../_script/flamegraph/example-dtrace.svg | 1842 + .../flamegraph/example-perf-stacks.txt.gz | Bin 0 -> 110532 bytes .../_script/flamegraph/example-perf.svg | 4895 ++ tests/benchmarks/_script/flamegraph/files.pl | 62 + .../_script/flamegraph/flamegraph.pl | 1303 + tests/benchmarks/_script/flamegraph/jmaps | 104 + .../_script/flamegraph/pkgsplit-perf.pl | 86 + .../_script/flamegraph/range-perf.pl | 137 + .../_script/flamegraph/record-test.sh | 21 + .../_script/flamegraph/stackcollapse-aix.pl | 61 + .../flamegraph/stackcollapse-bpftrace.pl | 72 + .../stackcollapse-chrome-tracing.py | 144 + .../flamegraph/stackcollapse-elfutils.pl | 98 + .../flamegraph/stackcollapse-faulthandler.pl | 61 + .../_script/flamegraph/stackcollapse-gdb.pl | 72 + .../_script/flamegraph/stackcollapse-go.pl | 150 + .../flamegraph/stackcollapse-ibmjava.pl | 145 + .../flamegraph/stackcollapse-instruments.pl | 34 + .../stackcollapse-java-exceptions.pl | 72 + .../flamegraph/stackcollapse-jstack.pl | 176 + .../_script/flamegraph/stackcollapse-ljp.awk | 74 + .../flamegraph/stackcollapse-perf-sched.awk | 228 + .../_script/flamegraph/stackcollapse-perf.pl | 435 + .../_script/flamegraph/stackcollapse-pmc.pl | 74 + .../flamegraph/stackcollapse-recursive.pl | 60 + .../flamegraph/stackcollapse-sample.awk | 231 + .../_script/flamegraph/stackcollapse-stap.pl | 84 + .../flamegraph/stackcollapse-vsprof.pl | 98 + .../flamegraph/stackcollapse-vtune-mc.pl | 103 + .../_script/flamegraph/stackcollapse-vtune.pl | 97 + .../_script/flamegraph/stackcollapse-wcp.pl | 69 + .../flamegraph/stackcollapse-xdebug.php | 197 + .../_script/flamegraph/stackcollapse.pl | 109 + tests/benchmarks/_script/flamegraph/test.sh | 26 + tests/benchmarks/benchmark_helpers.sh | 178 +- 39 files changed, 53845 insertions(+), 38 deletions(-) create mode 100644 tests/benchmarks/_script/flamegraph/README.md create mode 100755 tests/benchmarks/_script/flamegraph/aix-perf.pl create mode 100755 tests/benchmarks/_script/flamegraph/difffolded.pl create mode 100644 tests/benchmarks/_script/flamegraph/example-dtrace-stacks.txt create mode 100644 tests/benchmarks/_script/flamegraph/example-dtrace.svg create mode 100644 tests/benchmarks/_script/flamegraph/example-perf-stacks.txt.gz create mode 100644 tests/benchmarks/_script/flamegraph/example-perf.svg create mode 100755 tests/benchmarks/_script/flamegraph/files.pl create mode 100755 tests/benchmarks/_script/flamegraph/flamegraph.pl create mode 100755 tests/benchmarks/_script/flamegraph/jmaps create mode 100755 tests/benchmarks/_script/flamegraph/pkgsplit-perf.pl create mode 100755 tests/benchmarks/_script/flamegraph/range-perf.pl create mode 100755 tests/benchmarks/_script/flamegraph/record-test.sh create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-aix.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-bpftrace.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-chrome-tracing.py create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-elfutils.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-faulthandler.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-gdb.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-go.pl create mode 100644 tests/benchmarks/_script/flamegraph/stackcollapse-ibmjava.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-instruments.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-java-exceptions.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-jstack.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-ljp.awk create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-perf-sched.awk create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-perf.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-pmc.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-recursive.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-sample.awk create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-stap.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-vsprof.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-vtune-mc.pl create mode 100644 tests/benchmarks/_script/flamegraph/stackcollapse-vtune.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-wcp.pl create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse-xdebug.php create mode 100755 tests/benchmarks/_script/flamegraph/stackcollapse.pl create mode 100755 tests/benchmarks/_script/flamegraph/test.sh diff --git a/tests/benchmarks/_script/flamegraph/README.md b/tests/benchmarks/_script/flamegraph/README.md new file mode 100644 index 00000000000..ee1b3eee429 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/README.md @@ -0,0 +1,226 @@ +# Flame Graphs visualize profiled code + +Main Website: http://www.brendangregg.com/flamegraphs.html + +Example (click to zoom): + +[![Example](http://www.brendangregg.com/FlameGraphs/cpu-bash-flamegraph.svg)](http://www.brendangregg.com/FlameGraphs/cpu-bash-flamegraph.svg) + +Click a box to zoom the Flame Graph to this stack frame only. +To search and highlight all stack frames matching a regular expression, click the _search_ button in the upper right corner or press Ctrl-F. +By default, search is case sensitive, but this can be toggled by pressing Ctrl-I or by clicking the _ic_ button in the upper right corner. + +Other sites: +- The Flame Graph article in ACMQ and CACM: http://queue.acm.org/detail.cfm?id=2927301 http://cacm.acm.org/magazines/2016/6/202665-the-flame-graph/abstract +- CPU profiling using Linux perf\_events, DTrace, SystemTap, or ktap: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html +- CPU profiling using XCode Instruments: http://schani.wordpress.com/2012/11/16/flame-graphs-for-instruments/ +- CPU profiling using Xperf.exe: http://randomascii.wordpress.com/2013/03/26/summarizing-xperf-cpu-usage-with-flame-graphs/ +- Memory profiling: http://www.brendangregg.com/FlameGraphs/memoryflamegraphs.html +- Other examples, updates, and news: http://www.brendangregg.com/flamegraphs.html#Updates + +Flame graphs can be created in three steps: + +1. Capture stacks +2. Fold stacks +3. flamegraph.pl + +1\. Capture stacks +================= +Stack samples can be captured using Linux perf\_events, FreeBSD pmcstat (hwpmc), DTrace, SystemTap, and many other profilers. See the stackcollapse-\* converters. + +### Linux perf\_events + +Using Linux perf\_events (aka "perf") to capture 60 seconds of 99 Hertz stack samples, both user- and kernel-level stacks, all processes: + +``` +# perf record -F 99 -a -g -- sleep 60 +# perf script > out.perf +``` + +Now only capturing PID 181: + +``` +# perf record -F 99 -p 181 -g -- sleep 60 +# perf script > out.perf +``` + +### DTrace + +Using DTrace to capture 60 seconds of kernel stacks at 997 Hertz: + +``` +# dtrace -x stackframes=100 -n 'profile-997 /arg0/ { @[stack()] = count(); } tick-60s { exit(0); }' -o out.kern_stacks +``` + +Using DTrace to capture 60 seconds of user-level stacks for PID 12345 at 97 Hertz: + +``` +# dtrace -x ustackframes=100 -n 'profile-97 /pid == 12345 && arg1/ { @[ustack()] = count(); } tick-60s { exit(0); }' -o out.user_stacks +``` + +60 seconds of user-level stacks, including time spent in-kernel, for PID 12345 at 97 Hertz: + +``` +# dtrace -x ustackframes=100 -n 'profile-97 /pid == 12345/ { @[ustack()] = count(); } tick-60s { exit(0); }' -o out.user_stacks +``` + +Switch `ustack()` for `jstack()` if the application has a ustack helper to include translated frames (eg, node.js frames; see: http://dtrace.org/blogs/dap/2012/01/05/where-does-your-node-program-spend-its-time/). The rate for user-level stack collection is deliberately slower than kernel, which is especially important when using `jstack()` as it performs additional work to translate frames. + +2\. Fold stacks +============== +Use the stackcollapse programs to fold stack samples into single lines. The programs provided are: + +- `stackcollapse.pl`: for DTrace stacks +- `stackcollapse-perf.pl`: for Linux perf_events "perf script" output +- `stackcollapse-pmc.pl`: for FreeBSD pmcstat -G stacks +- `stackcollapse-stap.pl`: for SystemTap stacks +- `stackcollapse-instruments.pl`: for XCode Instruments +- `stackcollapse-vtune.pl`: for Intel VTune profiles +- `stackcollapse-ljp.awk`: for Lightweight Java Profiler +- `stackcollapse-jstack.pl`: for Java jstack(1) output +- `stackcollapse-gdb.pl`: for gdb(1) stacks +- `stackcollapse-go.pl`: for Golang pprof stacks +- `stackcollapse-vsprof.pl`: for Microsoft Visual Studio profiles +- `stackcollapse-wcp.pl`: for wallClockProfiler output + +Usage example: + +``` +For perf_events: +$ ./stackcollapse-perf.pl out.perf > out.folded + +For DTrace: +$ ./stackcollapse.pl out.kern_stacks > out.kern_folded +``` + +The output looks like this: + +``` +unix`_sys_sysenter_post_swapgs 1401 +unix`_sys_sysenter_post_swapgs;genunix`close 5 +unix`_sys_sysenter_post_swapgs;genunix`close;genunix`closeandsetf 85 +unix`_sys_sysenter_post_swapgs;genunix`close;genunix`closeandsetf;c2audit`audit_closef 26 +unix`_sys_sysenter_post_swapgs;genunix`close;genunix`closeandsetf;c2audit`audit_setf 5 +unix`_sys_sysenter_post_swapgs;genunix`close;genunix`closeandsetf;genunix`audit_getstate 6 +unix`_sys_sysenter_post_swapgs;genunix`close;genunix`closeandsetf;genunix`audit_unfalloc 2 +unix`_sys_sysenter_post_swapgs;genunix`close;genunix`closeandsetf;genunix`closef 48 +[...] +``` + +3\. flamegraph.pl +================ +Use flamegraph.pl to render a SVG. + +``` +$ ./flamegraph.pl out.kern_folded > kernel.svg +``` + +An advantage of having the folded input file (and why this is separate to flamegraph.pl) is that you can use grep for functions of interest. Eg: + +``` +$ grep cpuid out.kern_folded | ./flamegraph.pl > cpuid.svg +``` + +Provided Examples +================= + +### Linux perf\_events + +An example output from Linux "perf script" is included, gzip'd, as example-perf-stacks.txt.gz. The resulting flame graph is example-perf.svg: + +[![Example](http://www.brendangregg.com/FlameGraphs/example-perf.svg)](http://www.brendangregg.com/FlameGraphs/example-perf.svg) + +You can create this using: + +``` +$ gunzip -c example-perf-stacks.txt.gz | ./stackcollapse-perf.pl --all | ./flamegraph.pl --color=java --hash > example-perf.svg +``` + +This shows my typical workflow: I'll gzip profiles on the target, then copy them to my laptop for analysis. Since I have hundreds of profiles, I leave them gzip'd! + +Since this profile included Java, I used the flamegraph.pl --color=java palette. I've also used stackcollapse-perf.pl --all, which includes all annotations that help flamegraph.pl use separate colors for kernel and user level code. The resulting flame graph uses: green == Java, yellow == C++, red == user-mode native, orange == kernel. + +This profile was from an analysis of vert.x performance. The benchmark client, wrk, is also visible in the flame graph. + +### DTrace + +An example output from DTrace is also included, example-dtrace-stacks.txt, and the resulting flame graph, example-dtrace.svg: + +[![Example](http://www.brendangregg.com/FlameGraphs/example-dtrace.svg)](http://www.brendangregg.com/FlameGraphs/example-dtrace.svg) + +You can generate this using: + +``` +$ ./stackcollapse.pl example-stacks.txt | ./flamegraph.pl > example.svg +``` + +This was from a particular performance investigation: the Flame Graph identified that CPU time was spent in the lofs module, and quantified that time. + + +Options +======= +See the USAGE message (--help) for options: + +USAGE: ./flamegraph.pl [options] infile > outfile.svg + + --title TEXT # change title text + --subtitle TEXT # second level title (optional) + --width NUM # width of image (default 1200) + --height NUM # height of each frame (default 16) + --minwidth NUM # omit smaller functions. In pixels or use "%" for + # percentage of time (default 0.1 pixels) + --fonttype FONT # font type (default "Verdana") + --fontsize NUM # font size (default 12) + --countname TEXT # count type label (default "samples") + --nametype TEXT # name type label (default "Function:") + --colors PALETTE # set color palette. choices are: hot (default), mem, + # io, wakeup, chain, java, js, perl, red, green, blue, + # aqua, yellow, purple, orange + --bgcolors COLOR # set background colors. gradient choices are yellow + # (default), blue, green, grey; flat colors use "#rrggbb" + --hash # colors are keyed by function name hash + --cp # use consistent palette (palette.map) + --reverse # generate stack-reversed flame graph + --inverted # icicle graph + --flamechart # produce a flame chart (sort by time, do not merge stacks) + --negate # switch differential hues (blue<->red) + --notes TEXT # add notes comment in SVG (for debugging) + --help # this message + + eg, + ./flamegraph.pl --title="Flame Graph: malloc()" trace.txt > graph.svg + +As suggested in the example, flame graphs can process traces of any event, +such as malloc()s, provided stack traces are gathered. + + +Consistent Palette +================== +If you use the `--cp` option, it will use the $colors selection and randomly +generate the palette like normal. Any future flamegraphs created using the `--cp` +option will use the same palette map. Any new symbols from future flamegraphs +will have their colors randomly generated using the $colors selection. + +If you don't like the palette, just delete the palette.map file. + +This allows your to change your colorscheme between flamegraphs to make the +differences REALLY stand out. + +Example: + +Say we have 2 captures, one with a problem, and one when it was working +(whatever "it" is): + +``` +cat working.folded | ./flamegraph.pl --cp > working.svg +# this generates a palette.map, as per the normal random generated look. + +cat broken.folded | ./flamegraph.pl --cp --colors mem > broken.svg +# this svg will use the same palette.map for the same events, but a very +# different colorscheme for any new events. +``` + +Take a look at the demo directory for an example: + +palette-example-working.svg +palette-example-broken.svg diff --git a/tests/benchmarks/_script/flamegraph/aix-perf.pl b/tests/benchmarks/_script/flamegraph/aix-perf.pl new file mode 100755 index 00000000000..1edd082ecfc --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/aix-perf.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +use Getopt::Std; + +getopt('urt'); + +unless ($opt_r && $opt_t){ + print "Usage: $0 [ -u user] -r sample_count -t sleep_time\n"; + exit(0); +} + +my $i; +my @proc = ""; +for ($i = 0; $i < $opt_r ; $i++){ + if ($opt_u){ + $proc = `/usr/sysv/bin/ps -u $opt_u `; + $proc =~ s/^.*\n//; + $proc =~ s/\s*(\d+).*\n/\1 /g; + @proc = split(/\s+/,$proc); + } else { + opendir(my $dh, '/proc') || die "Cant't open /proc: $!"; + @proc = grep { /^[\d]+$/ } readdir($dh); + closedir ($dh); + } + + foreach my $pid (@proc){ + my $command = "/usr/bin/procstack $pid"; + print `$command 2>/dev/null`; + } + select(undef, undef, undef, $opt_t); +} diff --git a/tests/benchmarks/_script/flamegraph/difffolded.pl b/tests/benchmarks/_script/flamegraph/difffolded.pl new file mode 100755 index 00000000000..4c76c2ecf30 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/difffolded.pl @@ -0,0 +1,115 @@ +#!/usr/bin/perl -w +# +# difffolded.pl diff two folded stack files. Use this for generating +# flame graph differentials. +# +# USAGE: ./difffolded.pl [-hns] folded1 folded2 | ./flamegraph.pl > diff2.svg +# +# Options are described in the usage message (-h). +# +# The flamegraph will be colored based on higher samples (red) and smaller +# samples (blue). The frame widths will be based on the 2nd folded file. +# This might be confusing if stack frames disappear entirely; it will make +# the most sense to ALSO create a differential based on the 1st file widths, +# while switching the hues; eg: +# +# ./difffolded.pl folded2 folded1 | ./flamegraph.pl --negate > diff1.svg +# +# Here's what they mean when comparing a before and after profile: +# +# diff1.svg: widths show the before profile, colored by what WILL happen +# diff2.svg: widths show the after profile, colored by what DID happen +# +# INPUT: See stackcollapse* programs. +# +# OUTPUT: The full list of stacks, with two columns, one from each file. +# If a stack wasn't present in a file, the column value is zero. +# +# folded_stack_trace count_from_folded1 count_from_folded2 +# +# eg: +# +# funca;funcb;funcc 31 33 +# ... +# +# COPYRIGHT: Copyright (c) 2014 Brendan Gregg. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# (http://www.gnu.org/copyleft/gpl.html) +# +# 28-Oct-2014 Brendan Gregg Created this. + +use strict; +use Getopt::Std; + +# defaults +my $normalize = 0; # make sample counts equal +my $striphex = 0; # strip hex numbers + +sub usage { + print STDERR < diff2.svg + -h # help message + -n # normalize sample counts + -s # strip hex numbers (addresses) +See stackcollapse scripts for generating folded files. +Also consider flipping the files and hues to highlight reduced paths: +$0 folded2 folded1 | ./flamegraph.pl --negate > diff1.svg +USAGE_END + exit 2; +} + +usage() if @ARGV < 2; +our($opt_h, $opt_n, $opt_s); +getopts('ns') or usage(); +usage() if $opt_h; +$normalize = 1 if defined $opt_n; +$striphex = 1 if defined $opt_s; + +my ($total1, $total2) = (0, 0); +my %Folded; + +my $file1 = $ARGV[0]; +my $file2 = $ARGV[1]; + +open FILE, $file1 or die "ERROR: Can't read $file1\n"; +while () { + chomp; + my ($stack, $count) = (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + $stack =~ s/0x[0-9a-fA-F]+/0x.../g if $striphex; + $Folded{$stack}{1} += $count; + $total1 += $count; +} +close FILE; + +open FILE, $file2 or die "ERROR: Can't read $file2\n"; +while () { + chomp; + my ($stack, $count) = (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + $stack =~ s/0x[0-9a-fA-F]+/0x.../g if $striphex; + $Folded{$stack}{2} += $count; + $total2 += $count; +} +close FILE; + +foreach my $stack (keys %Folded) { + $Folded{$stack}{1} = 0 unless defined $Folded{$stack}{1}; + $Folded{$stack}{2} = 0 unless defined $Folded{$stack}{2}; + if ($normalize && $total1 != $total2) { + $Folded{$stack}{1} = int($Folded{$stack}{1} * $total2 / $total1); + } + print "$stack $Folded{$stack}{1} $Folded{$stack}{2}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/example-dtrace-stacks.txt b/tests/benchmarks/_script/flamegraph/example-dtrace-stacks.txt new file mode 100644 index 00000000000..04d84424719 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/example-dtrace-stacks.txt @@ -0,0 +1,41913 @@ +CPU ID FUNCTION:NAME + 0 64091 :tick-60s + + + genunix`kmem_cpu_reload+0x20 + genunix`kmem_cache_free+0xce + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_broadcast+0x1 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`tsc_gethrtimeunscaled+0x21 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 1 + + unix`mutex_exit+0x12 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_exit+0x12 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_init+0x32 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`tsc_read+0x3 + unix`mutex_vector_enter+0xcc + genunix`lookuppnatcred+0x89 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_lookup+0xa5 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookupnameatcred+0x76 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x16 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x46 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`crfree+0x76 + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x27 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x118 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`dispatch_hilevel+0x18 + unix`do_interrupt+0x120 + unix`_interrupt+0xba + unix`strlen+0x10 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cpu_reload+0x28 + genunix`kmem_cache_free+0xce + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cpu_reload+0x28 + genunix`kmem_cache_free+0xce + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + ufs`ufs_lookup+0x48 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x1f9 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x49 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x49 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_exit+0x19 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_init+0x39 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`ufalloc_file+0x4b + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`setf+0xfb + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_free+0xb + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x2c + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x1d + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cpu_reload+0x2d + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cpu_reload+0x2d + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x4e + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0xef + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`sigcheck+0x20 + genunix`post_syscall+0x3d3 + unix`0xfffffffffb800c91 + 1 + + ufs`ufs_getpage+0x1 + genunix`segvn_fault+0xdfa + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`dnlc_lookup+0xf2 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_get_buf+0x13 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`specvp_check+0x24 + zfs`zfs_lookup+0xf4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`openat+0x25 + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x56 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`post_syscall+0x1b7 + unix`0xfffffffffb800c91 + 1 + + genunix`cv_broadcast+0x17 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_fastaccesschk_execute+0x47 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`table_lock_enter+0x8 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_recycle+0x98 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`specvp_check+0x29 + zfs`zfs_lookup+0xf4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x129 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x5a + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`table_lock_enter+0xc + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x3d + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mtype_func+0x8e + unix`page_get_mnode_freelist+0x4f + unix`page_get_freelist+0x16d + unix`page_create_va+0x2ad + genunix`pvn_read_kluster+0x10c + ufs`ufs_getpage_ra+0x11c + ufs`ufs_getpage+0x866 + genunix`fop_getpage+0x7e + genunix`segvn_faulta+0x12b + genunix`as_faulta+0x143 + genunix`memcntl+0x53d + unix`sys_syscall+0x17a + 1 + + genunix`post_syscall+0x1bf + unix`0xfffffffffb800c91 + 1 + + genunix`lookuppnvp+0xf + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0x100 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0x104 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0x1a6 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_lookup+0xc7 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`setbackdq+0x258 + FSS`fss_preempt+0x241 + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`kmem_cache_alloc+0x6a + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fd_find+0x9c + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`thread_lock+0x3f + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 1 + + genunix`disp_lock_exit+0x20 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1 + + genunix`segvn_fault + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + lofs`lo_root+0x22 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x73 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`lo_lookup+0x54 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`open+0x14 + unix`sys_syscall+0x17a + 1 + + unix`htable_lookup+0x44 + unix`htable_walk+0x17e + unix`hat_unload_callback+0x138 + genunix`segvn_unmap+0x5b7 + genunix`as_unmap+0x19c + unix`mmapobj_map_elf+0x147 + unix`mmapobj_map_interpret+0x22c + unix`mmapobj+0x71 + genunix`mmapobjsys+0x1d0 + unix`sys_syscall+0x17a + 1 + + lofs`freelonode+0x1f9 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_free+0x3a + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_free+0x3a + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0xc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0x11e + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x60 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x330 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xb0 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_mountedvfs+0x1 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x13 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_getcomponent+0x84 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`bcopy+0x244 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x84 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xb4 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + ufs`ufs_lookup+0x84 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`audit_falloc+0x6 + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`bcopy+0x248 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x138 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x89 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x23a + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`disp_lock_exit+0x3b + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1 + + genunix`vn_vfslocks_getlock+0x1b + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fd_reserve+0xb + genunix`ufalloc_file+0x103 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`table_lock_enter+0x3c + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`table_lock_enter+0x3c + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x8d + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x8d + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xbd + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x1f + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_reinit+0xf + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0xff + unix`0xfffffffffb800c86 + 1 + + unix`page_numtopp_nolock+0x130 + unix`hat_pte_unmap+0xb8 + unix`hat_unload_callback+0x259 + genunix`segvn_unmap+0x5b7 + genunix`as_free+0xdc + genunix`relvm+0x220 + genunix`proc_exit+0x444 + genunix`exit+0x15 + genunix`rexit+0x18 + unix`sys_syscall+0x17a + 1 + + genunix`vn_mountedvfs+0x10 + genunix`lookuppnvp+0x217 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_exit + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_exit+0x1 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_free+0x52 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_openat+0x83 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`table_lock_enter+0x45 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_exists+0x15 + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`setbackdq+0x286 + FSS`fss_preempt+0x241 + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`vn_openat+0x486 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_openat+0x87 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_free+0x57 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_destroy+0x78 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x29 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_openat+0x48a + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnatcred+0x13a + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_init+0x1b + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_destroy+0x7b + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_init+0xd + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_init+0xd + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x2d + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xce + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`lwp_getdatamodel+0xf + genunix`post_syscall+0x2f5 + unix`0xfffffffffb800c91 + 1 + + unix`prunstop + unix`0xfffffffffb800c91 + 1 + + unix`hment_compare+0x10 + genunix`avl_find+0x72 + genunix`avl_add+0x27 + unix`hment_insert+0x8b + unix`hment_assign+0x3a + unix`hati_pte_map+0x343 + unix`hati_load_common+0x139 + unix`hat_memload+0x75 + unix`hat_memload_region+0x25 + genunix`segvn_fault+0x1079 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + unix`bcopy+0x260 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x10 + unix`sys_syscall+0x1a1 + 1 + + genunix`cv_init+0x11 + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_init+0x11 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_init+0x21 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_init+0x21 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0x1e2 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`membar_enter+0x3 + unix`disp+0x11e + unix`swtch+0xba + unix`preempt+0xec + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + lofs`table_lock_enter+0x54 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_openat+0x94 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_getcomponent+0xa5 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x35 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`cpucaps_charge+0x75 + FSS`fss_preempt+0x12f + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + unix`bcopy+0x268 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x58 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_enter_common+0x1e8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x39 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_alloc+0xd9 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`lwp_getdatamodel+0x19 + genunix`post_syscall+0x2f5 + unix`0xfffffffffb800c91 + 1 + + unix`lwp_getdatamodel+0x1a + unix`0xfffffffffb800c91 + 1 + + genunix`fop_lookup+0x7b + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x7b + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xdb + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`crgetuid+0xb + ufs`ufs_iaccess+0xe5 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x3c + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0xed + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_init+0x1d + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`freelonode+0x2f + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_getcomponent+0xb0 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`ufalloc_file+0xb0 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x22 + unix`0xfffffffffb800c86 + 1 + + genunix`audit_falloc+0x34 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_broadcast+0x76 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`lock_try+0x6 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 1 + + genunix`set_errno+0x17 + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0x1f8 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_getcomponent+0xba + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x2a + unix`0xfffffffffb800c86 + 1 + + genunix`post_syscall+0x21b + unix`0xfffffffffb800c91 + 1 + + genunix`lookuppnatcred+0x5b + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`post_syscall+0x1b + unix`0xfffffffffb800c91 + 1 + + unix`prunstop+0x1c + unix`0xfffffffffb800c91 + 1 + + genunix`dnlc_lookup+0x5c + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookuppn+0x38 + genunix`resolvepath+0x86 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xed + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xed + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xed + genunix`kmem_free+0x4e + genunix`removectx+0xf5 + genunix`schedctl_lwp_cleanup+0x8e + genunix`exitlwps+0x73 + genunix`proc_exit+0x59 + genunix`exit+0x15 + genunix`rexit+0x18 + unix`sys_syscall+0x17a + 1 + + lofs`freelonode+0x23f + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0x160 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0x1 + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_invalid+0x1 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_invalid+0x1 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_enter_common+0x1 + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`do_splx+0x1 + unix`preempt+0xec + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`crhold+0x11 + genunix`falloc+0xbc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0x65 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_lookup+0x25 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnatcred+0x66 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_destroy+0x8 + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_setpath+0xc9 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnatcred+0x6a + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xfa + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cv_destroy+0xc + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_recycle+0xc + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x9c + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x5d + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x7d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x13d + unix`0xfffffffffb800c86 + 1 + + genunix`syscall_mstate+0x13d + unix`sys_syscall+0x1a1 + 1 + + genunix`lookuppnatcred+0x6e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_reinit+0x4f + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_fixslash+0x40 + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`do_splx+0x10 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1 + + genunix`kmem_cache_free + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`thread_lock+0xa1 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 1 + + genunix`memcmp+0x1 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_exit+0x41 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + doorfs`door_close+0x1 + namefs`nm_close+0xac + genunix`fop_close+0x61 + genunix`closef+0x5e + genunix`close_exec+0xfd + genunix`exec_common+0x7e4 + genunix`exece+0x1b + unix`_sys_sysenter_post_swapgs+0x149 + 1 + + unix`cpucaps_charge+0xa2 + FSS`fss_preempt+0x12f + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`vn_vfslocks_rele+0x23 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`setf+0x83 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dotoprocs+0xc4 + genunix`doprio+0x77 + genunix`priocntl_common+0x616 + genunix`priocntlsys+0x24 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_alloc+0x4 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x45 + unix`sys_syscall+0x10e + 1 + + genunix`setf+0x87 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`lock_clear_splx+0x7 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1 + + genunix`fop_lookup+0xaa + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fd_find+0xb + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_fixslash+0x4c + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0xc + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_getlock+0x6e + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_zalloc+0x1e + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`post_syscall+0x13e + unix`0xfffffffffb800c91 + 1 + + genunix`copen+0x20 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`traverse+0x10 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x10 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x10 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x10 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + FSS`fss_preempt + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`vn_recycle+0x21 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`crfree+0x11 + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_enter_common+0x22 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`memcmp+0x13 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_lookup+0x43 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x153 + unix`sys_syscall+0x1a1 + 1 + + genunix`lookuppnatcred+0x84 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`crfree+0x15 + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`bitset_in_set+0x6 + unix`cpu_wakeup_mwait+0x40 + unix`setbackdq+0x200 + FSS`fss_preempt+0x241 + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`dnlc_lookup+0x186 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_zalloc+0x26 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`hment_insert+0x37 + unix`hment_assign+0x3a + unix`hati_pte_map+0x343 + unix`hati_load_common+0x139 + unix`hat_memload+0x75 + unix`hat_memload_region+0x25 + genunix`segvn_fault+0x1079 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`kmem_cache_free+0x17 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`setf+0x98 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`post_syscall+0x34b + unix`0xfffffffffb800c91 + 1 + + genunix`traverse+0x1c + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_enter_common+0x2d + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_zalloc+0x2d + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`setbackdq+0x3de + FSS`fss_preempt+0x241 + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + lofs`lo_inactive+0x1e + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_free+0x9e + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookupnameatcred+0x1e + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`falloc+0xaf + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fd_find+0x21 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`dnlc_lookup+0x92 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x22 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x22 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`secpolicy_vnode_access2+0x222 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_free+0xa3 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`cmt_balance+0xc3 + unix`setbackdq+0x3a3 + FSS`fss_preempt+0x241 + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`rwst_enter_common+0x335 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_recycle+0x36 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookuppnvp+0x3a7 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x167 + unix`sys_syscall+0x1a1 + 1 + + ufs`ufs_lookup+0xf7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_delay_default+0x7 + unix`mutex_vector_enter+0xcc + genunix`lookuppnatcred+0x89 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`page_create_va+0x218 + genunix`pvn_read_kluster+0x10c + ufs`ufs_getpage_ra+0x11c + ufs`ufs_getpage+0x866 + genunix`fop_getpage+0x7e + genunix`segvn_faulta+0x12b + genunix`as_faulta+0x143 + genunix`memcntl+0x53d + unix`sys_syscall+0x17a + 1 + + lofs`makelonode+0x6a + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`unfalloc+0x1a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x1cb + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0x1cb + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x2b + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vmem_free+0x2b + genunix`segkp_release_internal+0x1ab + genunix`segkp_release+0xa0 + genunix`schedctl_freepage+0x34 + genunix`schedctl_proc_cleanup+0x68 + genunix`proc_exit+0x1ab + genunix`exit+0x15 + genunix`rexit+0x18 + unix`sys_syscall+0x17a + 1 + + genunix`crgetmapped+0xb + genunix`fop_lookup+0x1dc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`copystr+0x2e + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x2f + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x2f + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`crgetmapped+0xf + genunix`fop_lookup+0x1dc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x100 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x100 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + ufs`ufs_lookup+0x100 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`makelonode+0x71 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_openat+0xf1 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfsrlock+0x31 + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`ufalloc_file+0x1 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`swtch+0x14 + unix`preempt+0xec + unix`kpreempt+0x98 + unix`sys_rtt_common+0x1ba + unix`_sys_rtt_ints_disabled+0x8 + genunix`audit_getstate + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_recycle+0x45 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfslocks_rele+0x57 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x37 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_lookup+0x68 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`lookupnameatcred+0x3a + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_free+0x3a + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`schedctl_save+0x1b + genunix`savectx+0x35 + unix`resume+0x5b + unix`swtch+0x141 + unix`preempt+0xec + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`dnlc_lookup+0xac + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vsd_free+0xdc + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vsd_free+0xdc + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`thread_lock+0xdd + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 1 + + lofs`freelonode+0x18e + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + ufs`ufs_lookup+0xf + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + ufs`ufs_lookup+0x10f + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pn_getcomponent+0x10 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x110 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_enter + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_enter + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`lgrp_mem_choose+0x1 + genunix`swap_getapage+0x113 + genunix`swap_getpage+0x90 + genunix`fop_getpage+0x7e + genunix`anon_zero+0xb6 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`audit_getstate+0x1 + unix`0xfffffffffb800c91 + 1 + + genunix`rwst_destroy+0x32 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`disp_lock_exit_high+0x33 + unix`swtch+0xba + unix`preempt+0xec + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`lookuppnvp+0x3c3 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + ufs`ufs_lookup+0x13 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x84 + unix`sys_syscall+0x1a1 + 1 + + zfs`zfs_lookup+0x76 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`unfalloc+0x37 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x118 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`lo_lookup+0x2f9 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vsd_free+0xe9 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_enter+0x9 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_enter+0x9 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_enter+0x9 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_enter+0x9 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_exit+0x8a + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_zalloc+0x5a + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x1b + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0x15c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`unfalloc+0x3c + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_fastaccesschk_execute+0xc + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`audit_getstate+0xd + genunix`setf+0x3f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`audit_getstate+0xd + genunix`lookuppnvp+0x82 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + zfs`zfs_lookup+0x7e + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`traverse+0x4e + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x1e + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`hwblkclr+0x3f + unix`pfnzero+0x78 + unix`pagezero+0x2d + genunix`anon_zero+0xd2 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + unix`tsc_gethrtimeunscaled + genunix`mstate_thread_onproc_time+0x59 + unix`caps_charge_adjust+0x32 + unix`cpucaps_charge+0x58 + FSS`fss_preempt+0x12f + unix`preempt+0xd6 + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + unix`page_lookup_create+0xf0 + unix`page_lookup+0x21 + genunix`swap_getapage+0xea + genunix`swap_getpage+0x90 + genunix`fop_getpage+0x7e + genunix`anon_zero+0xb6 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + unix`page_lookup_create+0xf0 + unix`page_lookup+0x21 + ufs`ufs_getpage+0x762 + genunix`fop_getpage+0x7e + genunix`segvn_fault+0xdfa + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + unix`mutex_enter+0x10 + unix`page_get_mnode_freelist+0x32c + unix`page_get_freelist+0x16d + unix`page_create_va+0x2ad + genunix`swap_getapage+0x113 + genunix`swap_getpage+0x90 + genunix`fop_getpage+0x7e + genunix`anon_zero+0xb6 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + unix`mutex_enter+0x10 + unix`page_get_mnode_freelist+0x32c + unix`page_get_freelist+0x16d + unix`page_create_va+0x2ad + genunix`pvn_read_kluster+0x10c + ufs`ufs_getpage_ra+0x11c + ufs`ufs_getpage+0x866 + genunix`fop_getpage+0x7e + genunix`segvn_faulta+0x12b + genunix`as_faulta+0x143 + genunix`memcntl+0x53d + unix`sys_syscall+0x17a + 1 + + ufs`ufs_iaccess+0x91 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x1 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`fop_lookup+0xf1 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_destroy+0x1 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_destroy+0x1 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`rwst_enter_common+0x162 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`pvn_plist_init+0x42 + genunix`swap_getapage+0x323 + genunix`swap_getpage+0x90 + genunix`fop_getpage+0x7e + genunix`anon_zero+0xb6 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`kmem_cache_alloc+0x22 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x22 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`copen+0x63 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`do_splx+0x65 + unix`swtch+0x17c + unix`preempt+0xec + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + unix`do_splx+0x65 + genunix`disp_lock_exit_nopreempt+0x42 + unix`preempt+0xe7 + unix`kpreempt+0x98 + genunix`disp_lock_exit+0x6f + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1 + + unix`mutex_enter+0x16 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`cpu_decay+0x27 + genunix`cpu_grow+0x24 + genunix`cpu_update_pct+0x86 + genunix`new_mstate+0x73 + unix`trap+0x63e + unix`sys_rtt_common+0x55 + unix`_sys_rtt_ints_disabled+0x8 + 1 + + unix`tsc_gethrtimeunscaled+0x8 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 1 + + unix`do_splx+0x68 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1 + + genunix`traverse+0x5a + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x2a + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_init+0x1b + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0xc + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_destroy+0xc + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_destroy+0xc + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`lo_lookup+0xf + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`freelonode+0x1b0 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x10 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`openat+0x1 + unix`sys_syscall+0x17a + 1 + + genunix`as_fault+0x381 + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`vn_vfsunlock+0x1 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`audit_getstate+0x21 + genunix`copen+0x59 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`hwblkclr+0x52 + unix`pfnzero+0x78 + unix`pagezero+0x2d + genunix`anon_zero+0xd2 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`fop_lookup+0x103 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x33 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`savectx+0x24 + unix`resume+0x5b + unix`swtch+0x141 + unix`preempt+0xec + genunix`post_syscall+0x4cd + unix`0xfffffffffb800c91 + 1 + + genunix`kmem_cache_alloc+0x37 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`kmem_cache_alloc+0x37 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`thread_lock+0x8 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 1 + + genunix`lookuppnvp+0xe9 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_exit+0x9 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_exit+0x9 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`mutex_exit+0x9 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + unix`hwblkclr+0x5b + unix`pfnzero+0x78 + unix`pagezero+0x2d + genunix`anon_zero+0xd2 + genunix`segvn_faultpage+0x6d2 + genunix`segvn_fault+0x8e6 + genunix`as_fault+0x36a + unix`pagefault+0x96 + unix`trap+0x2c7 + unix`0xfffffffffb8001d6 + 1 + + genunix`vn_vfsunlock+0xc + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`audit_getstate+0x2d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + lofs`lo_lookup+0x1e + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`syscall_mstate+0x1ae + unix`sys_syscall+0x1a1 + 1 + + genunix`kmem_cache_alloc+0x3e + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_rele+0x1f + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1 + + genunix`vn_vfsunlock+0x10 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfsunlock+0x10 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`audit_getstate+0x30 + unix`0xfffffffffb800c91 + 2 + + genunix`kmem_cache_free+0x70 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`pn_get_buf+0x1 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit+0x12 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fd_find+0x73 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`audit_getstate+0x33 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`audit_getstate+0x33 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x24 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_setpath+0x144 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0xb4 + unix`sys_syscall+0x10e + 2 + + genunix`lookuppnvp+0xf5 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_fastaccesschk_execute+0x35 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_setpath+0x46 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`tsc_read+0x7 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 2 + + genunix`cv_broadcast+0x8 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_broadcast+0x8 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit+0x19 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_init+0x39 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`bcopy+0xa + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x1ab + unix`0xfffffffffb800c91 + 2 + + genunix`kmem_free+0xb + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x8d + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookupnameatcred+0x7e + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`sys_syscall+0x104 + 2 + + genunix`kmem_free+0xf + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_free + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`disp_lock_exit+0x1 + unix`0xfffffffffb800c91 + 2 + + genunix`vn_rele+0x31 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x31 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_lookup+0x132 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookupnameatcred+0x82 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`traverse+0x82 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0x82 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`falloc+0x13 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`tsc_gethrtimeunscaled+0x34 + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 2 + + unix`tsc_gethrtimeunscaled+0x34 + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 2 + + genunix`falloc+0x15 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0xf6 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x56 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_broadcast+0x17 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_root+0x8 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`disp_lock_exit+0x8 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 2 + + genunix`setf+0x8 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnvp+0x209 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`pn_get_buf+0x1b + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0x4b + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_broadcast+0x1b + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x1b + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`disp_lock_exit+0xc + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 2 + + lofs`freelonode+0x1de + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x3e + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x19f + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`setf+0x10 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0x131 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x1a2 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`table_lock_enter+0x13 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x26 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x26 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x26 + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0x139 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnvp+0x1a + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`table_lock_enter+0x1b + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_root+0x1b + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fsop_root+0x3b + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`setf+0x1b + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnatcred+0xf + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_fastaccesschk_execute+0x5f + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x1 + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`open+0x12 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x113 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x1b4 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`ufalloc+0x6 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x77 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x77 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x77 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`bzero+0x188 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`ufalloc+0xe + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`freelonode + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`bcopy+0x240 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_free+0x32 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x63 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x13 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x43 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 2 + + genunix`fsop_root+0x56 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`rw_enter+0x26 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x1c7 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x17 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_lookup+0xe8 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnatcred+0x29 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnatcred+0x129 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x89 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x1b + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_lookup+0xec + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xbd + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`audit_falloc+0xe + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xc0 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`lwp_getdatamodel + unix`0xfffffffffb800c91 + 2 + + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`rwst_enter_common+0x2d3 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x203 + unix`0xfffffffffb800ca0 + 2 + + unix`mutex_destroy+0x74 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fd_reserve+0x17 + genunix`ufalloc_file+0x103 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x57 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_free+0x57 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`bcopy+0x258 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x108 + unix`0xfffffffffb800c86 + 2 + + genunix`rwst_exit+0x8 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`freelonode+0x1b + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`rwst_enter_common+0x2db + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_destroy+0x7b + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x2d + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_exists+0x1f + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`hment_compare+0x10 + genunix`avl_find+0x72 + unix`hment_remove+0xac + unix`hat_pte_unmap+0x159 + unix`hat_unload_callback+0xe8 + genunix`segvn_unmap+0x5b7 + genunix`as_free+0xdc + genunix`relvm+0x220 + genunix`proc_exit+0x444 + genunix`exit+0x15 + genunix`rexit+0x18 + unix`sys_syscall+0x17a + 2 + + lofs`lo_lookup+0x80 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`set_errno+0x1 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_init+0x11 + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + ufs`ufs_iaccess+0x12 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`rwst_enter_common+0x1e2 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_destroy+0x84 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_init+0x15 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`set_errno+0x6 + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnatcred+0x46 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_root+0x58 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x1e8 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`crgetuid+0x8 + zfs`zfs_fastaccesschk_execute+0x2e + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x39 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x39 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x39 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 2 + + lofs`freelonode+0x2b + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x1b + unix`0xfffffffffb800c86 + 2 + + genunix`kmem_cache_free+0xdb + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0xb + unix`0xfffffffffb800c91 + 2 + + genunix`vn_vfslocks_getlock+0x3c + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lsave+0x4e + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x1ef + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_getlock+0x41 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0xf2 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`bcopy+0x272 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x22 + unix`sys_syscall+0x1a1 + 2 + + genunix`fd_reserve+0x33 + genunix`ufalloc_file+0x103 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x13 + unix`0xfffffffffb800c91 + 2 + + genunix`dnlc_lookup+0x154 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0x85 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x56 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_broadcast+0x76 + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x26 + unix`sys_syscall+0x10e + 2 + + lofs`lsave+0x57 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`freelonode+0x37 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x17 + unix`0xfffffffffb800c91 + 2 + + genunix`vn_vfslocks_rele+0x8 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xe8 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_broadcast+0x7a + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xed + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xed + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`0xfffffffffb800c81 + 2 + + genunix`cv_destroy+0x1 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xf1 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0xf1 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnatcred+0x62 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x33 + unix`0xfffffffffb800ca0 + 2 + + genunix`copen+0x204 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0x97 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_destroy+0x8 + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnatcred+0x168 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`do_splx+0x8 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 2 + + genunix`vn_vfslocks_getlock+0x59 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`set_errno+0x2e + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x6e + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`setf+0x7f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_zalloc+0x10 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fd_find+0x1 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x75 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x175 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x45 + unix`0xfffffffffb800c86 + 2 + + zfs`zfs_lookup+0x37 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`memcmp+0x8 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0x8 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x19 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x79 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`bcopy+0x399 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_rele+0x29 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`memcmp+0xb + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`do_splx+0x1b + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 2 + + genunix`dnlc_lookup+0x17f + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_lookup+0x3f + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`secpolicy_vnode_access2+0xf + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_inactive+0x14 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`rwst_exit+0x54 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0xe4 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x55 + unix`0xfffffffffb800c86 + 2 + + unix`strlen+0x16 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fd_find+0x17 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`crfree+0x18 + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_recycle+0x2b + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_lookup+0x4b + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0xbb + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0x1b + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`setf+0x9c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`copystr+0x1d + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`rwst_exit+0x5d + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + ufs`ufs_lookup+0xed + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x14d + unix`0xfffffffffb800c91 + 2 + + genunix`dnlc_lookup+0x8f + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x4f + unix`0xfffffffffb800c91 + 2 + + genunix`unfalloc+0x10 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`secpolicy_vnode_access2+0x22 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`traverse+0x23 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x163 + unix`sys_syscall+0x1a1 + 2 + + genunix`syscall_mstate+0x167 + unix`0xfffffffffb800c86 + 2 + + genunix`traverse+0x28 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`ufalloc_file+0xf8 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`unfalloc+0x18 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`setf+0xa9 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnvp+0xaa + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`secpolicy_vnode_access2+0x22a + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_lookup+0x1db + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`copystr+0x2b + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0x2b + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0xfc + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookupnameatcred+0x2d + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x100 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x1 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x64 + unix`0xfffffffffb800c91 + 2 + + genunix`memcmp+0x35 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_inactive+0x35 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x46 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + ufs`ufs_lookup+0x106 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`copystr+0x37 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0xf7 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0x1a8 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`memcmp+0x38 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`freelonode+0x189 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_free+0x3a + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_vfslocks_rele+0x5c + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`falloc+0xcc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`syscall_mstate+0x17c + unix`sys_syscall+0x1a1 + 2 + + genunix`fd_find+0x40 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0xe0 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnvp+0xc1 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`post_syscall+0x173 + unix`0xfffffffffb800c91 + 2 + + genunix`fop_lookup+0xe4 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0x106 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnvp+0x3c7 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x17 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`freelonode+0x98 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + ufs`ufs_lookup+0x118 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter+0x9 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter+0x9 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_enter+0x9 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookupnameatcred+0x4b + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x1b + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`dnlc_lookup+0xbe + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + ufs`ufs_lookup+0x11e + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fd_find+0x4f + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookuppnvp+0x3cf + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x22 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fd_find+0x53 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`rwst_enter_common+0x165 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0x16 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`lookupnameatcred+0x56 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_alloc+0x27 + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x8 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`audit_getstate+0x18 + genunix`lookuppnvp+0x82 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x2a + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x16c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0xc + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0x1c + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_lookup+0xfc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`falloc+0xed + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_fastaccesschk_execute+0x11f + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cpu_reload+0x10 + genunix`kmem_cache_free+0xce + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_exit + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + lofs`lo_lookup+0x13 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0x24 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x17 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_rele+0x17 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x37 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`mutex_destroy+0x17 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`audit_getstate+0x28 + genunix`setf+0x3f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cpu_reload+0x18 + genunix`kmem_cache_alloc+0x118 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`ufalloc_file+0x3a + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + unix`tsc_gethrtimeunscaled+0x1b + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 2 + + unix`mutex_exit+0xc + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`copen+0x17d + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`vn_openat+0x2e + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`kmem_cache_alloc+0x3e + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + zfs`zfs_lookup+0x9f + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 2 + + genunix`cv_broadcast + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`audit_getstate+0x30 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`audit_getstate+0x30 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x70 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0xe1 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookupnameatcred+0x72 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0x12 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0x12 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_rele+0x24 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_rele+0x24 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`freelonode+0x1c5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`lo_lookup+0x25 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`openat+0x16 + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x36 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`freelonode+0xc7 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`ufalloc_file+0x48 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x118 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0x19 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`lo_lookup+0x12a + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x18b + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`copyinstr+0xc + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`cv_broadcast+0xc + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0xfd + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x4e + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`freelonode+0x1cf + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x90 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`pn_get_buf+0x10 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x120 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`setf+0x103 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`tsc_gethrtimeunscaled+0x34 + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 3 + + genunix`fd_find+0x85 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vsd_free+0x26 + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`pn_get_buf+0x17 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free+0x17 + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_free+0x8 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookupnameatcred+0x88 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x1c8 + unix`0xfffffffffb800c86 + 3 + + unix`sys_syscall+0x10e + 3 + + genunix`falloc+0x19 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free+0x1b + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x12d + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`post_syscall+0x2bf + unix`0xfffffffffb800c91 + 3 + + lofs`lo_root+0x10 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x1 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_find+0x91 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x111 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`falloc+0x24 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x55 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`thread_lock+0x36 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 3 + + genunix`vn_free+0x17 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_find+0x98 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`falloc+0x28 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x139 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`pn_get_buf+0x2a + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x6a + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free+0x2a + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free+0x2a + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0xb + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`clear_stale_fd+0xd + genunix`post_syscall+0x1fe + unix`0xfffffffffb800c91 + 3 + + genunix`fop_lookup+0x13d + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`falloc+0x2f + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0x110 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`ufalloc+0x1 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`table_lock_enter+0x22 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0x13 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x124 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`pn_get_buf+0x35 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`rw_enter+0x1c + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x2be + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0xce + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + zfs`zfs_fastaccesschk_execute+0x6e + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_reserve + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0xb0 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`thread_lock+0x53 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 3 + + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_getlock+0x13 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`setf+0x33 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free+0x43 + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x84 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x26 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x1f7 + unix`0xfffffffffb800ca0 + 3 + + lofs`freelonode+0x8 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0xf8 + unix`sys_syscall+0x10e + 3 + + genunix`kmem_cache_alloc+0x89 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x2ca + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_exists+0xc + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x43c + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0xbd + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x2ce + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x47f + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_getlock+0x1f + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_getlock+0x1f + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x1d0 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`rwst_exit + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`disp_lock_exit+0x42 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 3 + + genunix`kmem_cache_alloc+0x92 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x1d3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x203 + unix`sys_syscall+0x1a1 + 3 + + genunix`lookuppnatcred+0x34 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x444 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`audit_falloc+0x15 + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`freelonode+0x17 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x8 + unix`0xfffffffffb800c86 + 3 + + genunix`syscall_mstate+0x108 + unix`sys_syscall+0x10e + 3 + + genunix`rwst_exit+0x8 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`sys_syscall+0x14e + 3 + + genunix`fop_inactive+0xcb + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_inactive+0xcb + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_getlock+0x2d + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x8e + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`freelonode+0x1f + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`splr+0x1f + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 3 + + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`table_lock_enter+0x50 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x4e0 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x10 + unix`0xfffffffffb800c86 + 3 + + genunix`crgetuid + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`sys_syscall+0x156 + 3 + + genunix`rwst_enter_common+0x1e2 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0x147 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x17 + unix`0xfffffffffb800c86 + 3 + + genunix`dnlc_lookup+0x149 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x119 + unix`0xfffffffffb800ca0 + 3 + + genunix`syscall_mstate+0x1b + unix`0xfffffffffb800ca0 + 3 + + genunix`post_syscall+0x30c + unix`0xfffffffffb800c91 + 3 + + unix`sys_syscall+0x162 + 3 + + genunix`falloc+0x6f + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`crgetuid+0x10 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`lock_try + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 3 + + genunix`lookuppnatcred+0x151 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`cv_broadcast+0x72 + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + zfs`zfs_lookup+0x12 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x123 + unix`sys_syscall+0x10e + 3 + + zfs`zfs_lookup+0x16 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`pn_fixslash+0x28 + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0xe8 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x36b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`table_lock_enter+0x6d + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`set_errno+0x1e + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`cv_broadcast+0x7f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`cv_broadcast+0x7f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`cv_broadcast+0x7f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`atomic_add_32_nv + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`pn_fixslash+0x32 + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x33 + unix`sys_syscall+0x1a1 + 3 + + genunix`syscall_mstate+0x135 + unix`0xfffffffffb800c86 + 3 + + genunix`syscall_mstate+0x135 + unix`0xfffffffffb800ca0 + 3 + + genunix`rwst_exit+0x35 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_zalloc+0x5 + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`0xfffffffffb800c86 + 3 + + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x207 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0x17 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x97 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x2b8 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_free+0x78 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x16c + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x9c + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`do_splx+0xc + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 3 + + genunix`post_syscall+0x32d + unix`0xfffffffffb800c91 + 3 + + genunix`syscall_mstate+0x13d + unix`sys_syscall+0x10e + 3 + + genunix`memcmp + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + zfs`zfs_lookup+0x30 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`bcopy+0x391 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x41 + unix`0xfffffffffb800c86 + 3 + + genunix`lookuppnatcred+0x72 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`set_errno+0x35 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x45 + unix`sys_syscall+0x1a1 + 3 + + genunix`vn_vfslocks_getlock+0x66 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0x77 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`do_splx+0x17 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 3 + + genunix`audit_unfalloc+0x17 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0xc8 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_inactive+0x8 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0x29 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`crfree+0x9 + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`rwst_init+0x5a + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_inactive+0xc + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x1d + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_find+0xf + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`0xfffffffffb800ca0 + 3 + + genunix`rwst_destroy + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x10 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x157 + unix`0xfffffffffb800c86 + 3 + + genunix`kmem_cache_free+0x17 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x17 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`secpolicy_vnode_access2+0x17 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0x38 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`traverse+0x18 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`unfalloc+0x8 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x39a + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x8b + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x1b + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_getlock+0x7d + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`secpolicy_vnode_access2+0x21e + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x15f + unix`0xfffffffffb800c86 + 3 + + unix`bzero + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x92 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_inactive+0x22 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`copystr+0x24 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_find+0x24 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`rwst_enter_common+0x35 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0xc7 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x167 + unix`0xfffffffffb800ca0 + 3 + + genunix`rwst_destroy+0x17 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x99 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x69 + unix`0xfffffffffb800c86 + 3 + + genunix`syscall_mstate+0x69 + unix`sys_syscall+0x1a1 + 3 + + genunix`kmem_cache_free+0x2b + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`post_syscall+0x35c + 3 + + genunix`copen+0x3d + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`dnlc_lookup+0x9d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x2f + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + ufs`ufs_lookup+0x1 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0xd2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`ufalloc_file+0x103 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x3b5 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`crgetmapped+0x15 + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`bzero+0x16 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x37 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vsd_free+0xd8 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x8 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`post_syscall+0x6b + unix`0xfffffffffb800c91 + 3 + + genunix`vn_vfsrlock+0x3c + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_find+0x3c + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0xad + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`setf+0xbd + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`bcopy+0x3d0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_enter + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_enter + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_enter + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x84 + unix`0xfffffffffb800ca0 + 3 + + genunix`post_syscall+0x75 + unix`0xfffffffffb800c91 + 3 + + genunix`ufalloc_file+0x17 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_lookup+0x1e7 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`bcopy+0x3d8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fd_find+0x48 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x9 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_rele+0x6b + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`ufalloc_file+0x1b + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_setpath+0x11c + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + lofs`makelonode+0x8d + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnatcred+0xbe + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + zfs`zfs_lookup+0x7f + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`bcopy+0x3e0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookuppnvp+0x3d0 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_destroy + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`lookupnameatcred+0x52 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x193 + unix`sys_syscall+0x1a1 + 3 + + genunix`vn_openat+0x115 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`falloc+0xe5 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`copen+0x166 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`ufalloc_file+0x126 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x26 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_rele+0x8 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`tsc_gethrtimeunscaled+0x8 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 3 + + genunix`audit_getstate+0x18 + genunix`post_syscall+0xbe + unix`0xfffffffffb800c91 + 3 + + genunix`audit_getstate+0x18 + genunix`setf+0x3f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_openat+0x11b + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`traverse+0x5b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfslocks_getlock+0xbc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`tsc_gethrtimeunscaled+0xc + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 3 + + genunix`syscall_mstate+0x19d + unix`sys_syscall+0x1a1 + 3 + + unix`mutex_exit + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`syscall_mstate+0x1a1 + unix`0xfffffffffb800ca0 + 3 + + genunix`syscall_mstate+0xa2 + unix`sys_syscall+0x1a1 + 3 + + genunix`vn_rele+0x17 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_rele+0x17 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x37 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`openat+0x8 + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_vfsunlock+0x8 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_free+0x68 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0x9 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0x9 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`kmem_cache_alloc+0x3a + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`tsc_gethrtimeunscaled+0x1b + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 3 + + genunix`vn_vfsunlock+0xc + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`falloc+0xfc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + unix`mutex_exit+0xc + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`fop_inactive+0x6d + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`vn_rele+0x1f + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 3 + + genunix`post_syscall+0x19f + unix`0xfffffffffb800c91 + 3 + + genunix`pn_get_buf + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`cv_broadcast + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x70 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`freelonode+0x1c1 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0x12 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x12 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x5 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`pn_get_buf+0x6 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`bcopy+0x308 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`copyinstr+0x8 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit+0x19 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0x1a + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`tsc_read+0xa + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 4 + + genunix`fsop_root+0x1b + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`crfree+0x7b + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0x9e + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`ufalloc_file+0x50 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x1c0 + unix`0xfffffffffb800c86 + 4 + + zfs`zfs_fastaccesschk_execute+0x140 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_rele+0x31 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_rele+0x31 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`sys_syscall+0x109 + 4 + + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0xa6 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0xa6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x86 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x86 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookupnameatcred+0x87 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x17 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x1c8 + unix`sys_syscall+0x10e + 4 + + genunix`vn_rele+0x39 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_rele+0x39 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0xc9 + unix`0xfffffffffb800c86 + 4 + + genunix`post_syscall+0xb9 + unix`0xfffffffffb800c91 + 4 + + genunix`fsop_root+0x2a + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x1b + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x1b + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`zfs_lookup+0xbd + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0xbe + unix`0xfffffffffb800c91 + 4 + + genunix`clear_stale_fd+0x1 + unix`0xfffffffffb800c91 + 4 + + genunix`dnlc_lookup+0x104 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`open+0x6 + unix`sys_syscall+0x17a + 4 + + genunix`pn_get_buf+0x26 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`setf+0x116 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0x66 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_root+0x17 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookuppnatcred+0x109 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`specvp_check+0x3a + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x2a + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x9f + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0x2d0 + unix`0xfffffffffb800c91 + 4 + + genunix`pn_get_buf+0x31 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`setf+0x22 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0xa3 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`zfs_lookup+0xd4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0xc6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`setf+0x26 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`dnlc_lookup+0x118 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0x79 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0x79 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x1bd + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0xce + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookuppnatcred+0x1e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_free+0x2f + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x1ef + unix`0xfffffffffb800ca0 + 4 + + genunix`fd_reserve + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xb0 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x43 + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_lookup+0x64 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_lookup+0x67 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_getlock+0x17 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0x89 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fd_reserve+0xb + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0xbb + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xbd + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`dnlc_lookup+0x2e + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x2cf + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0x1f0 + unix`0xfffffffffb800c91 + 4 + + ufs`ufs_lookup+0x93 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`lwp_getdatamodel+0x8 + genunix`post_syscall+0x2f5 + unix`0xfffffffffb800c91 + 4 + + genunix`vn_vfslocks_getlock+0x29 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`splr+0x1b + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 4 + + genunix`pn_fixslash+0xc + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`clear_stale_fd+0x3c + genunix`post_syscall+0x1fe + unix`0xfffffffffb800c91 + 4 + + genunix`vn_rele+0x7d + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0x48e + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`set_errno + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + ufs`ufs_iaccess+0x110 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_setpath+0xa0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`gethrtime_unscaled + unix`0xfffffffffb800c86 + 4 + + genunix`cv_init+0x11 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookuppnvp+0x51 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_enter_common+0x1e4 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`cv_init+0x15 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`freelonode+0x27 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0x497 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0x77 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x17 + unix`sys_syscall+0x1a1 + 4 + + genunix`copen+0xe8 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_exit+0x18 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0x9a + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xdb + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xdb + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0x20c + unix`0xfffffffffb800c91 + 4 + + genunix`cv_init+0x1d + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`bcmp + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x22 + unix`0xfffffffffb800ca0 + 4 + + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`prunstop+0x14 + genunix`post_syscall+0x2d0 + unix`0xfffffffffb800c91 + 4 + + genunix`vn_vfslocks_rele+0x105 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0xa7 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fd_reserve+0x37 + genunix`ufalloc_file+0x103 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_root+0x68 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0x8 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xe8 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`zfs_lookup+0x1a + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x2a + unix`sys_syscall+0x10e + 4 + + lofs`lo_root+0x70 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_zalloc + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`membar_consumer + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`membar_consumer + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xf1 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xf1 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xf1 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0x93 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x135 + unix`sys_syscall+0x1a1 + 4 + + genunix`lookuppnvp+0x76 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`set_errno+0x27 + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0x17 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fd_reserve+0x48 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x139 + unix`0xfffffffffb800c86 + 4 + + genunix`kmem_cache_free+0xfa + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xfa + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0xfa + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`sys_syscall+0x180 + 4 + + genunix`copen+0xb + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0xbc + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`table_lock_enter+0x7d + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x13d + unix`0xfffffffffb800ca0 + 4 + + genunix`lookuppnvp+0x37f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookupnameatcred + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`audit_unfalloc+0x10 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_inactive+0x1 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x13 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_exit+0x44 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`ufalloc_file+0xd7 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fd_find+0x8 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x8 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_zalloc+0x1a + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_exit+0x4c + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`do_splx+0x1f + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 4 + + genunix`kmem_cache_free+0x10 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`strlen+0x10 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`strlen+0x13 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x24 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfsrlock+0x14 + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`setf+0x94 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_exit+0x54 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0xe4 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0xb6 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0x347 + unix`0xfffffffffb800c91 + 4 + + genunix`syscall_mstate+0x157 + unix`sys_syscall+0x10e + 4 + + genunix`kmem_cache_free+0x17 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x28 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_rele+0x38 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x58 + unix`sys_syscall+0x1a1 + 4 + + genunix`rwst_destroy+0x8 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0x2d9 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_zalloc+0x29 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x1b + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`sys_syscall+0x1a1 + 4 + + genunix`dnlc_lookup+0x18e + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`audit_unfalloc+0x2e + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x2f + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`setf+0xa0 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`crgetmapped + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x22 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x22 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0x353 + unix`0xfffffffffb800c91 + 4 + + genunix`falloc+0xb3 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`setf+0xa4 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_getlock+0x86 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_vfslocks_getlock+0x86 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x67 + unix`sys_syscall+0x1a1 + 4 + + genunix`syscall_mstate+0x167 + unix`sys_syscall+0x10e + 4 + + genunix`setf+0xa8 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_invalid+0x39 + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x69 + unix`0xfffffffffb800ca0 + 4 + + unix`splr+0x79 + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 4 + + genunix`lookuppnatcred+0x9b + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0xfc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x2d + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`splr+0x7e + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 4 + + genunix`syscall_mstate+0x170 + unix`0xfffffffffb800ca0 + 4 + + genunix`rwst_destroy+0x20 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x71 + unix`0xfffffffffb800ca0 + 4 + + unix`clear_int_flag+0x1 + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 4 + + genunix`lookuppnvp+0xb4 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0xd4 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x35 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`memcmp+0x37 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`freelonode+0x88 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`ufalloc_file+0x8 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vsd_free+0xd8 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`copystr+0x3c + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x3f + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`ufalloc_file+0x10 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`unfalloc+0x30 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`audit_getstate + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_alloc+0x10 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_enter + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_enter + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_enter + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`zfs_fastaccesschk_execute + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_destroy+0x32 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`traverse+0x43 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`syscall_mstate+0x84 + unix`0xfffffffffb800c86 + 4 + + genunix`rwst_exit+0x86 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`ufalloc_file+0x117 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x59 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_enter+0x9 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`bcopy+0x2db + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fd_find+0x4c + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`freelonode+0x9d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_inactive+0x4e + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + ufs`ufs_lookup+0x1e + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`zfs_fastaccesschk_execute+0x10f + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`freelonode+0xa0 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x160 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cpu_reload + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`i_ddi_splhigh + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 4 + + lofs`makelonode+0x91 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_lookup+0x1 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lsave+0xc4 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookuppnatcred+0xc5 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`bcopy+0x3e8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_rele+0x8 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_rele+0x8 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vn_openat+0x18 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vfs_matchops+0x8 + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`copen+0x169 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`copystr+0x5a + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`ufalloc_file+0x2a + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`falloc+0xee + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`post_syscall+0x18f + unix`0xfffffffffb800c91 + 4 + + unix`mutex_exit + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`mutex_exit + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookupnameatcred+0x61 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`unfalloc+0x52 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`lookuppnvp+0x1e4 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fop_lookup+0x107 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + zfs`specvp_check+0x8 + zfs`zfs_lookup+0xf4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`audit_getstate+0x28 + genunix`post_syscall+0xbe + unix`0xfffffffffb800c91 + 4 + + genunix`vsd_free+0x8 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`vsd_free+0x8 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x68 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`kmem_cache_free+0x68 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + lofs`lo_lookup+0x11b + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + unix`tsc_gethrtimeunscaled+0x1b + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 4 + + genunix`fd_find+0x6f + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 4 + + genunix`fsop_root+0x10 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_getstate+0x30 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`lo_lookup+0x122 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x1b2 + unix`0xfffffffffb800ca0 + 5 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit+0x12 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit+0x12 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_getstate+0x33 + unix`0xfffffffffb800c91 + 5 + + genunix`vn_rele+0x24 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0xb4 + unix`sys_syscall+0x1a1 + 5 + + genunix`fsop_root+0x17 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`traverse+0x77 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`tsc_read+0x7 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 5 + + unix`tsc_gethrtimeunscaled+0x28 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 5 + + unix`mutex_exit+0x19 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x1bb + unix`sys_syscall+0x1a1 + 5 + + genunix`kmem_free+0xb + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_free+0xf + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_free+0xf + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0xf0 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_rele+0x31 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`copyinstr+0x11 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`setf+0x1 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_init+0x41 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fsop_root+0x22 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fd_find+0x82 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0x47 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`bcopy+0x318 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnvp+0xb + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_free+0x1b + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`lo_root+0xc + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameatcred+0x8c + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fd_find+0x8d + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_rele+0x3e + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_rele+0x3e + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameatcred+0x93 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x1d4 + unix`0xfffffffffb800c86 + 5 + + genunix`kmem_free+0x26 + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`table_lock_enter+0x17 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0x59 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_free+0x2a + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`pn_get_buf+0x2d + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0x60 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`falloc+0x33 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0x64 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x15 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`lo_root+0x28 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`open+0x18 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x8 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_alloc+0x79 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0x6a + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`falloc+0x3a + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`thread_lock+0x4b + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 5 + + genunix`dnlc_lookup+0x11c + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0xb0 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0xb0 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_mountedvfs+0x1 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x22 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x13 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_alloc+0x84 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x17 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnvp+0x39 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x2a + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`setf+0x3a + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x1b + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_destroy+0x6b + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_alloc+0x8d + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x1f + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`rwst_enter_common+0x2cf + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0x10 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`pn_fixslash+0x1 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`cv_init+0x8 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x8 + unix`sys_syscall+0x10e + 5 + + genunix`syscall_mstate+0x108 + unix`sys_syscall+0x1a1 + 5 + + genunix`vn_vfslocks_getlock+0x29 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + ufs`ufs_iaccess+0xa + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0xc + unix`0xfffffffffb800c86 + 5 + + genunix`cv_init+0xd + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x2d + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0x6d + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_zalloc+0xdf + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`gethrtime_unscaled + unix`sys_syscall+0x1a1 + 5 + + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0x23 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_destroy+0x84 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`sys_syscall+0x15a + 5 + + genunix`fd_reserve+0x26 + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`table_lock_enter+0x57 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x17 + unix`0xfffffffffb800ca0 + 5 + + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 5 + + genunix`kmem_cache_free+0xdb + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0xdb + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0xdb + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`table_lock_enter+0x5c + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`pn_getcomponent+0xad + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnvp+0x35e + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_alloc+0xdf + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`crhold + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`cv_broadcast+0x72 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x22 + unix`sys_syscall+0x10e + 5 + + genunix`syscall_mstate+0x123 + unix`0xfffffffffb800c86 + 5 + + genunix`rwst_exit+0x23 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_falloc+0x33 + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x105 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0x85 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_free+0x66 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x26 + unix`sys_syscall+0x1a1 + 5 + + genunix`copen+0xf8 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0xe8 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0xe8 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x159 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`crhold+0x9 + genunix`falloc+0xbc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0x8e + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnvp+0x6f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`lo_lookup+0x1a0 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnatcred+0x60 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_unfalloc + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0x42 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`post_syscall+0x23 + unix`0xfffffffffb800c91 + 5 + + unix`sys_syscall+0x17a + 5 + + genunix`crhold+0x16 + genunix`falloc+0xbc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`cv_destroy+0x8 + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`ufalloc_file+0xc8 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x69 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_getlock+0x59 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x3a + unix`0xfffffffffb800ca0 + 5 + + genunix`post_syscall+0x2e + unix`0xfffffffffb800c91 + 5 + + lofs`freelonode+0x4f + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fd_find + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`crfree + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`table_lock_enter+0x82 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnvp+0x82 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x45 + unix`0xfffffffffb800ca0 + 5 + + unix`lock_clear_splx+0x5 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 5 + + genunix`post_syscall+0x338 + unix`0xfffffffffb800c91 + 5 + + genunix`lookuppnatcred+0x78 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`traverse+0x8 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x8 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x29 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x29 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`rwst_init+0x5b + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0xad + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_alloc+0xe4 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`lo_lookup+0x1c5 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameatcred+0x17 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + zfs`zfs_lookup+0x47 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x38 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x58 + unix`0xfffffffffb800c86 + 5 + + unix`rw_exit+0x8 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookuppnatcred+0x89 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`rwst_enter_common+0x29 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x8b + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x1b + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 5 + + genunix`crfree+0x1d + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameat+0x10 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_zalloc+0x31 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0xe2 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x22 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x22 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x46 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x46 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x46 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`post_syscall+0x357 + unix`0xfffffffffb800c91 + 5 + + genunix`rwst_destroy+0x17 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0x198 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameat+0x18 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x168 + 5 + + genunix`crgetmapped+0x8 + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_invalid+0x39 + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameatcred+0x29 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + zfs`zfs_lookup+0x59 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`post_syscall+0x35b + unix`0xfffffffffb800c91 + 5 + + genunix`kmem_cache_free+0x2b + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x2b + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`unfalloc+0x1d + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`atomic_add_32 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`atomic_add_32 + genunix`falloc+0xbc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_alloc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`clear_int_flag + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 5 + + genunix`syscall_mstate+0x71 + unix`sys_syscall+0x10e + 5 + + genunix`syscall_mstate+0x71 + unix`sys_syscall+0x1a1 + 5 + + genunix`fop_inactive+0x31 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0xd2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`bcopy+0x3c8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + zfs`zfs_lookup+0x6a + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfsrlock+0x3c + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0xdd + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x3f + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x3f + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`atomic_add_64 + unix`sys_syscall+0x10e + 5 + + unix`atomic_add_64 + unix`0xfffffffffb800ca0 + 5 + + unix`atomic_add_64 + unix`sys_syscall+0x1a1 + 5 + + genunix`vn_openat + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_setpath+0x10 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`makelonode+0x81 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_openat+0x1 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`bcopy+0x2d2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`rwst_destroy+0x33 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`copen+0x54 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameat+0x34 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + ufs`ufs_iaccess+0x86 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameatcred+0x47 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0x1e7 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0x98 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vsd_free+0xe8 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`falloc+0xd9 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0xe9 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_enter+0x9 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`lookupnameat+0x3a + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_inactive+0x4a + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`crgetmapped+0x2a + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_vfslocks_rele+0x6b + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_alloc+0x1b + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0x18c + unix`sys_syscall+0x1a1 + 5 + + genunix`audit_getstate+0xd + genunix`copen+0x59 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_rele + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`ufalloc_file+0x22 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + zfs`zfs_fastaccesschk_execute+0x16 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + lofs`freelonode+0xa8 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_rele+0x8 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`falloc+0xe9 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`copystr+0x5d + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_setpath+0x2d + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`falloc+0xf0 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_exit + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`post_syscall+0x291 + unix`0xfffffffffb800c91 + 5 + + genunix`lookuppnatcred+0xd1 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`syscall_mstate+0xa2 + unix`sys_syscall+0x10e + 5 + + genunix`syscall_mstate+0xa2 + unix`0xfffffffffb800c86 + 5 + + genunix`lookuppnvp+0xe3 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`vn_rele+0x17 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + zfs`zfs_lookup+0x97 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`mutex_destroy+0x17 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`setf+0xe8 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`fop_lookup+0x208 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_getstate+0x28 + genunix`lookuppnvp+0x82 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_getstate+0x28 + genunix`copen+0x59 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x68 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`kmem_cache_free+0x68 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + unix`tsc_gethrtimeunscaled+0x1b + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 5 + + genunix`thread_lock+0xc + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 5 + + genunix`dnlc_lookup+0xdc + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`audit_getstate+0x2d + unix`0xfffffffffb800c91 + 5 + + genunix`kmem_cache_alloc+0x3e + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + zfs`zfs_fastaccesschk_execute+0x2e + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`dnlc_lookup+0xdf + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 5 + + genunix`cv_broadcast + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x70 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_free + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_free + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`tsc_read + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 6 + + unix`splx + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 6 + + genunix`post_syscall+0x2a1 + unix`0xfffffffffb800c91 + 6 + + unix`copyinstr+0x1 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnvp+0x1f1 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`ufalloc_file+0x41 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit+0x12 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit+0x12 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit+0x12 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0xb4 + unix`0xfffffffffb800c86 + 6 + + genunix`syscall_mstate+0xb4 + unix`0xfffffffffb800ca0 + 6 + + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_free+0x5 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0xc7 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vsd_free+0x17 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`tsc_read+0x7 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 6 + + unix`tsc_read+0x7 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 6 + + genunix`cv_broadcast+0x8 + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`tsc_gethrtimeunscaled+0x28 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 6 + + unix`tsc_gethrtimeunscaled+0x28 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 6 + + genunix`fd_find+0x78 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit+0x19 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`openat+0x1a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_free+0xb + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0x9e + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`thread_lock+0x1f + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 6 + + genunix`syscall_mstate+0x1c0 + unix`sys_syscall+0x10e + 6 + + genunix`post_syscall+0x1b3 + unix`0xfffffffffb800c91 + 6 + + genunix`fsop_root+0x26 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`copyinstr+0x16 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0xa6 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_rele+0x39 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`setf+0xc + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`falloc+0x1d + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`openat+0x2f + unix`sys_syscall+0x17a + 6 + + genunix`pn_get_buf+0x1f + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`bcopy+0x320 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + zfs`specvp_check+0x30 + zfs`zfs_lookup+0xf4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`clear_stale_fd + unix`0xfffffffffb800c91 + 6 + + genunix`dnlc_lookup+0x1 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnatcred+0x104 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_alloc+0x66 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_alloc+0x66 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`table_lock_enter+0x17 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_free+0x17 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`thread_lock+0x39 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 6 + + genunix`fop_inactive+0x9f + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0x1 + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0xe3 + unix`sys_syscall+0x10e + 6 + + lofs`table_lock_enter+0x26 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0xc6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0x8 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`traverse+0xa8 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnatcred+0x1a + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_free+0x3a + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0xfb + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0xc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnatcred+0x11c + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`_sys_rtt + 6 + + genunix`ufalloc_file+0x7e + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xb0 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xb0 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_free+0x43 + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_mountedvfs+0x8 + genunix`traverse+0x77 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_zalloc+0xc8 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0x109 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_alloc+0x89 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_alloc+0x8d + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xbd + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xbd + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`splr+0x10 + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 6 + + genunix`fsop_root+0x61 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_rele+0x71 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`dnlc_lookup+0x32 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_alloc+0x92 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_zalloc+0xd3 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`post_syscall+0x2f5 + unix`0xfffffffffb800c91 + 6 + + genunix`fd_reserve+0x17 + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_init+0x17 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`splr+0x17 + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 6 + + genunix`kmem_free+0x57 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`copen+0x1d8 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnatcred+0x138 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`falloc+0x5c + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_rele+0x7d + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + ufs`ufs_iaccess+0xe + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0x10 + unix`sys_syscall+0x10e + 6 + + genunix`gethrtime_unscaled + unix`sys_syscall+0x10e + 6 + + genunix`dnlc_lookup+0x43 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_alloc+0xd4 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fd_reserve+0x26 + genunix`ufalloc_file+0x103 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0x27 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`sys_syscall+0x15e + 6 + + ufs`ufs_iaccess+0x19 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_zalloc+0xea + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 6 + + genunix`syscall_mstate+0x1b + unix`sys_syscall+0x1a1 + 6 + + lofs`table_lock_enter+0x5c + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0x3c + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`prunstop+0xd + genunix`post_syscall+0x2d0 + unix`0xfffffffffb800c91 + 6 + + ufs`ufs_iaccess+0x1d + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_openat+0xa1 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`lo_root+0x62 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`cv_broadcast+0x72 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fd_reserve+0x33 + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_exit+0x23 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0x37 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0x8 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0x8 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xe8 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0x2a + unix`0xfffffffffb800ca0 + 6 + + genunix`post_syscall+0x31b + unix`0xfffffffffb800c91 + 6 + + genunix`post_syscall+0x1f + unix`0xfffffffffb800c91 + 6 + + genunix`vn_invalid + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + zfs`zfs_lookup+0x21 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xf1 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0xf1 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`dnlc_lookup+0x62 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`post_syscall+0x324 + unix`0xfffffffffb800c91 + 6 + + genunix`falloc+0x84 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0x17 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`post_syscall+0x27 + unix`0xfffffffffb800c91 + 6 + + genunix`cv_destroy+0x8 + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fd_reserve+0x48 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0x139 + unix`sys_syscall+0x10e + 6 + + genunix`syscall_mstate+0x3a + unix`sys_syscall+0x1a1 + 6 + + genunix`kmem_cache_free+0xfa + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`cv_destroy+0xc + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`pn_fixslash+0x3d + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnatcred+0x16f + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`lo_inactive + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_alloc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`post_syscall+0x134 + unix`0xfffffffffb800c91 + 6 + + genunix`fop_lookup+0xa5 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`lo_inactive+0x8 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x8 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`lsave+0x7a + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`pn_fixslash+0x4b + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`sys_syscall+0x192 + 6 + + genunix`dnlc_lookup+0x7d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0x6e + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`unfalloc + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_destroy + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`ufalloc_file+0xe3 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`memcmp+0x17 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fop_inactive+0x17 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x17 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x17 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fop_lookup+0xbb + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0x7d + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 6 + + genunix`rwst_exit+0x5d + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`copen+0x33 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_rele+0x46 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`traverse+0x26 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x2b + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_alloc+0xfc + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + ufs`ufs_lookup+0xfd + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`rw_exit+0x1e + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`copen+0x13f + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`bcopy+0x3c0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookupnameat+0x20 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnvp+0x1b7 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0x177 + unix`sys_syscall+0x1a1 + 6 + + genunix`kmem_cache_alloc+0x8 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x3a + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`dnlc_lookup+0x1ad + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`fd_find+0x3f + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`ufalloc_file+0x10f + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`audit_getstate + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_enter + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_enter + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_enter + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_enter + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_enter + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_enter + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`audit_getstate+0x1 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnvp+0xc3 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_destroy+0x33 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfslocks_getlock+0xa6 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_exit+0x86 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + ufs`ufs_lookup+0x17 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + zfs`zfs_fastaccesschk_execute+0x8 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + zfs`zfs_lookup+0x7a + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`audit_getstate+0xa + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`setf+0xcc + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`crgetmapped+0x2e + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`post_syscall+0x7f + unix`0xfffffffffb800c91 + 6 + + genunix`vn_rele + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_destroy + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`traverse+0x52 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`rwst_enter_common+0x162 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`ufalloc_file+0x26 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`tsc_gethrtimeunscaled+0x8 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 6 + + unix`mutex_destroy+0x8 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`thread_lock + unix`0xfffffffffb800c91 + 6 + + genunix`vn_rele+0x10 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + zfs`specvp_check + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vsd_free + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`mutex_exit + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0xa2 + unix`0xfffffffffb800ca0 + 6 + + unix`do_splx+0x74 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 6 + + zfs`zfs_fastaccesschk_execute+0x26 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`vn_vfsunlock+0x8 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`kmem_cache_free+0x68 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0xb9 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + lofs`freelonode+0xb9 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`lookuppnvp+0x1e9 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + unix`do_splx+0x79 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 6 + + unix`bcopy+0x3fa + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`syscall_mstate+0x1ab + unix`sys_syscall+0x1a1 + 6 + + genunix`traverse+0x6f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 6 + + genunix`thread_lock+0x10 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 7 + + genunix`kmem_cache_free+0x70 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0x70 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`tsc_read + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 7 + + genunix`cv_broadcast+0x1 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`thread_lock+0x17 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 7 + + unix`tsc_gethrtimeunscaled+0x28 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 7 + + zfs`zfs_fastaccesschk_execute+0x138 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_openat+0x3d + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`dnlc_lookup+0xef + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`falloc+0xf + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`bcopy+0x310 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`lookuppnvp + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`lo_root+0x1 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`tsc_gethrtimeunscaled+0x34 + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 7 + + genunix`lookuppnatcred+0xf5 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`cv_broadcast+0x17 + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_free+0x8 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_rele+0x39 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`copyinstr+0x1b + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_inactive+0x8b + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`dnlc_lookup+0xfc + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_lookup+0x12d + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + ufs`ufs_lookup+0x365 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_alloc+0x66 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_getlock + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`ufalloc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`clear_stale_fd+0x13 + genunix`post_syscall+0x1fe + unix`0xfffffffffb800c91 + 7 + + genunix`lookuppnvp+0x29 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`copen+0x2ba + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`freelonode+0xfb + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_free+0x2b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`setf+0x12b + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_inactive+0xab + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`sys_syscall+0x132 + 7 + + genunix`audit_falloc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`freelonode+0x1 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`disp_lock_exit+0x32 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 7 + + genunix`open+0x26 + 7 + + genunix`thread_lock+0x57 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 7 + + genunix`syscall_mstate+0x1f7 + unix`sys_syscall+0x1a1 + 7 + + lofs`freelonode+0x8 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_enter_common+0x2cb + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_destroy+0x6b + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_mountedvfs+0xc + genunix`traverse+0x77 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_alloc+0x8d + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`pn_get_buf+0x4f + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`setf+0x3f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`pn_get_buf+0x50 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`lookuppnatcred+0x30 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_mountedvfs+0x10 + genunix`traverse+0x77 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + zfs`zfs_lookup+0xf4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`lo_lookup+0x275 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`cv_init+0x8 + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`freelonode+0x21e + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`lookuppnatcred+0x3f + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`gethrtime_unscaled + unix`0xfffffffffb800ca0 + 7 + + genunix`fop_lookup+0x73 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_alloc+0xd4 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`lookuppnvp+0x458 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_exit+0x18 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_init+0x28 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x119 + unix`0xfffffffffb800c86 + 7 + + genunix`syscall_mstate+0x1b + unix`sys_syscall+0x10e + 7 + + genunix`kmem_cache_free+0xdb + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x11c + unix`sys_syscall+0x1a1 + 7 + + lofs`freelonode+0x2f + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_free+0x66 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x26 + unix`0xfffffffffb800c86 + 7 + + genunix`syscall_mstate+0x26 + unix`0xfffffffffb800ca0 + 7 + + genunix`fd_reserve+0x37 + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + ufs`ufs_iaccess+0x28 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_rele+0x8 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x2a + unix`sys_syscall+0x1a1 + 7 + + genunix`dnlc_lookup+0x5f + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`bcmp+0xf + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fd_reserve+0x40 + genunix`setf+0x123 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`do_splx+0x1 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 7 + + genunix`rwst_exit+0x35 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`lo_lookup+0xa6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_rele+0x17 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_invalid+0x8 + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0xfa + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0xfa + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_enter_common+0xb + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`cv_destroy+0xc + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + zfs`zfs_lookup+0x2c + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfsrlock + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`lock_clear_splx + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 7 + + unix`strlen+0x3 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_exit+0x44 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_getlock+0x66 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`falloc+0x97 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0x8 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0x8 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_alloc+0xb + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`lookuppnatcred+0x7c + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`setf+0x8c + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_invalid+0x1d + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_getlock+0x6e + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`ufalloc_file+0xde + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`lo_inactive+0x10 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`copystr+0x14 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`makelfsnode+0x17 + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0x17 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`lo_inactive+0x18 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`lo_inactive+0x18 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfsrlock+0x18 + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x58 + unix`0xfffffffffb800ca0 + 7 + + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`secpolicy_vnode_access2+0x1e + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_enter_common+0x331 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`dnlc_lookup+0x195 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`memcmp+0x26 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_inactive+0x26 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x69 + unix`sys_syscall+0x10e + 7 + + genunix`falloc+0xbc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`syscall_mstate+0x170 + unix`sys_syscall+0x1a1 + 7 + + genunix`syscall_mstate+0x71 + unix`0xfffffffffb800c86 + 7 + + zfs`zfs_lookup+0x63 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`crgetmapped+0x15 + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0x3a + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_rele+0x5c + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_lookup+0x1e0 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`audit_getstate + unix`0xfffffffffb800c91 + 7 + + genunix`kmem_cache_alloc+0x10 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_enter + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_enter + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_enter + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`audit_getstate+0x1 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`pn_getcomponent+0x14 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_openat+0x307 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_alloc+0x17 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`makelonode+0x89 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`audit_getstate+0xa + unix`0xfffffffffb800c91 + 7 + + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_lookup+0xed + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`crgetmapped+0x2e + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`freelonode+0x1a0 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + zfs`zfs_lookup+0x80 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_alloc+0x22 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_inactive+0x53 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_inactive+0x53 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`post_syscall+0x85 + unix`0xfffffffffb800c91 + 7 + + genunix`vn_setpath+0x26 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_alloc+0x26 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_destroy+0x8 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_alloc+0x2a + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_lookup+0xfc + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + lofs`makelonode+0x1a0 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_exit + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_exit + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`vn_rele+0x17 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`copystr+0x67 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + unix`mutex_init+0x27 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`kmem_cache_free+0x68 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_lookup+0x20b + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_lookup+0x10c + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`fop_inactive+0x6d + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 7 + + genunix`falloc + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0x70 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit+0x12 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit+0x12 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit+0x12 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_free+0x5 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`copen+0x86 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`unfalloc+0x66 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0x46 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + zfs`specvp_check+0x17 + zfs`zfs_lookup+0xf4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0x49 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit+0x19 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit+0x19 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit+0x19 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`thread_lock+0x1b + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 8 + + unix`mutex_init+0x3d + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0x4e + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`lo_lookup+0x30 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`copen+0x195 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfslocks_rele+0xa6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`freelonode+0xdd + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`freelonode+0xdd + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_rele+0x3e + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_inactive+0x90 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfslocks_getlock+0xf2 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfslocks_rele+0xb3 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x1d4 + unix`sys_syscall+0x10e + 8 + + lofs`lsave+0x8 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_lookup+0x13d + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`disp_lock_exit+0x1e + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 8 + + genunix`syscall_mstate+0xe3 + unix`0xfffffffffb800c86 + 8 + + lofs`lo_root+0x25 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`disp_lock_exit+0x30 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 8 + + genunix`rwst_init + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_free+0x43 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_setpath+0x85 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`table_lock_enter+0x38 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_rele+0x68 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_enter_common+0x1c8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0xf8 + unix`0xfffffffffb800c86 + 8 + + genunix`kmem_cache_free+0xbd + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0xbd + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`lo_lookup+0x26f + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`pn_fixslash + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`lookuppnvp+0x240 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_mountedvfs+0x11 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_enter_common+0x2d7 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_free+0x57 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x108 + unix`0xfffffffffb800ca0 + 8 + + genunix`vn_vfslocks_getlock+0x29 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfslocks_getlock+0x29 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_enter_common+0x2db + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_lookup+0x6d + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_destroy+0x7f + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x10 + unix`0xfffffffffb800ca0 + 8 + + genunix`kmem_alloc+0xd4 + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`table_lock_enter+0x57 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x17 + unix`sys_syscall+0x10e + 8 + + genunix`rwst_exit+0x18 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 8 + + lofs`makelonode+0x1b + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_enter_common+0x1ec + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`copen+0x4ee + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`post_syscall+0xf + unix`0xfffffffffb800c91 + 8 + + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 8 + + genunix`kmem_cache_free+0xe8 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`freelonode+0x23a + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_lookup+0x8a + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0xf1 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0xf1 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x132 + unix`sys_syscall+0x1a1 + 8 + + genunix`syscall_mstate+0x135 + unix`sys_syscall+0x10e + 8 + + genunix`vn_free+0x78 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0xfa + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0xfa + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`cv_destroy+0xc + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_zalloc+0xc + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`freelonode+0x4f + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`lo_inactive+0x8 + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0x8 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`secpolicy_vnode_access2+0x8 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`copen+0x21b + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + zfs`zfs_lookup+0x3b + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`lo_inactive+0xc + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_exit+0x4c + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`strlen+0x10 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`secpolicy_vnode_access2+0x13 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0xe4 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x157 + unix`0xfffffffffb800ca0 + 8 + + genunix`kmem_cache_free+0x1b + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfslocks_getlock+0x7d + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 8 + + genunix`rwst_exit+0x5d + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`lookuppnvp+0xa2 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + zfs`zfs_lookup+0x52 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`memcmp+0x23 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0xf3 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`lfind+0x16 + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfslocks_getlock+0x86 + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`copen+0x37 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_destroy+0x17 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_lookup+0x1c8 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_enter_common+0x38 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_alloc+0x2a + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_lookup+0xcb + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`memcmp+0x2c + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`dnlc_lookup+0xa0 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`atomic_add_32 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_alloc + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`secpolicy_vnode_access2+0x34 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vsd_free+0xd8 + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`freelonode+0x189 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fd_find+0x3a + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0x3a + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0xc + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`audit_unfalloc+0x4d + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0x3f + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fop_lookup+0xe0 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_enter + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_enter + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_enter + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + ufs`ufs_lookup+0x111 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`syscall_mstate+0x84 + unix`sys_syscall+0x10e + 8 + + genunix`kmem_cache_alloc+0x17 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_enter+0x9 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + lofs`freelonode+0x9d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`rwst_enter_common+0x15f + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_rele + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + ufs`ufs_lookup+0x22 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_init+0x17 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`audit_getstate+0x18 + genunix`copen+0x59 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0x2a + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`ufalloc_file+0x12f + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`vn_vfsunlock + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`mutex_exit + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`fd_find+0x62 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`post_syscall+0x93 + unix`0xfffffffffb800c91 + 8 + + genunix`vn_vfslocks_getlock+0xc4 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + unix`bcopy+0x3f5 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_alloc+0x3a + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`audit_getstate+0x2c + genunix`post_syscall+0xbe + unix`0xfffffffffb800c91 + 8 + + genunix`kmem_cache_alloc+0x3e + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 8 + + genunix`kmem_cache_free+0x70 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x70 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`tsc_read + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 9 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_exit+0x12 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_exit+0x12 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_exit+0x12 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`audit_getstate+0x33 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vsd_free+0x17 + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_exit+0x19 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`openat+0x1e + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_recycle+0x90 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`fd_find+0x80 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`setf + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 9 + + genunix`kmem_free+0x17 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`table_lock_enter+0x8 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_rele+0x39 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`lookuppnatcred + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`lookuppnvp+0x217 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_free+0x2a + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x106 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_alloc+0x77 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x8 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_enter_common+0x1b8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`post_syscall+0xda + unix`0xfffffffffb800c91 + 9 + + genunix`fsop_root+0x4b + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_setops+0x30 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xb0 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`lookuppnvp+0x132 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`table_lock_enter+0x38 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_init+0x8 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xbd + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_exit + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 9 + + genunix`rwst_enter_common+0x1d8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_enter_common+0x2dc + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_enter_common+0x2dc + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0x21e + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_destroy+0x7f + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`table_lock_enter+0x50 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`makelonode+0x10 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + zfs`zfs_lookup+0x1 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`post_syscall+0x1 + 9 + + genunix`copen+0x4e3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + ufs`ufs_iaccess+0x15 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_enter_common+0x1e8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`cv_init+0x19 + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`cv_init+0x19 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xdb + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xdb + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x3c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0x22e + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x41 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x41 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0x33 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xe8 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`cv_broadcast+0x7f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`cv_destroy+0x1 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_init+0x42 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`fop_lookup+0x93 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`lo_root+0x77 + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x59 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xfa + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`cv_destroy+0xc + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`strlen + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`lookuppnvp+0x182 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_alloc+0x5 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`post_syscall+0x35 + unix`0xfffffffffb800c91 + 9 + + lofs`makelfsnode+0x8 + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x8 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_rele+0x29 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfsrlock+0x9 + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_enter_common+0x1b + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_enter_common+0x1b + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0xc + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`syscall_mstate+0x14d + unix`0xfffffffffb800c86 + 9 + + genunix`vn_openat+0xd1 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_exit+0x54 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_alloc+0xe4 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`lo_lookup+0xc7 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`fop_inactive+0x17 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x17 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x17 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_alloc+0x17 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_setpath+0xea + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_alloc+0xf3 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_alloc+0xf3 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfslocks_getlock+0x88 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x2b + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_openat+0x2ef + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_alloc + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`fd_find+0x36 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vfs_getops+0x3b + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_alloc+0x3b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`fop_lookup+0x1dc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x3f + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`secpolicy_vnode_access2+0x3f + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_enter + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`copen+0x156 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`secpolicy_vnode_access2+0x46 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_enter+0x9 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0x1a0 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_rele + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`traverse+0x52 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`lookuppnvp+0xd6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0xa8 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_exit + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_setpath+0x35 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x68 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x68 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_alloc+0x3a + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`vn_setpath+0x13b + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + unix`mutex_exit+0xc + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + lofs`freelonode+0x1bd + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 9 + + genunix`kmem_cache_free+0x70 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_exit+0x12 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_exit+0x12 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vsd_free+0x17 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_exit+0x19 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`table_lock_enter + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`disp_lock_exit + unix`0xfffffffffb800c91 + 10 + + genunix`dnlc_lookup+0xf2 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_openat+0x43 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`cv_broadcast+0x17 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`lsave + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`open + 10 + + genunix`vn_vfslocks_rele+0xb3 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_setpath+0x66 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`table_lock_enter+0x17 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`sys_syscall+0x121 + 10 + + genunix`fop_inactive+0xa3 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`table_lock_enter+0x26 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_alloc+0x77 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`syscall_mstate+0x1ef + unix`sys_syscall+0x1a1 + 10 + + genunix`vn_reinit + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_free+0xb0 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`lookuppnatcred+0x25 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfslocks_getlock+0x17 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_rele+0x68 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`freelonode+0x109 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`cv_init+0x1 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_alloc+0x92 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`thread_lock+0x167 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 10 + + genunix`rwst_enter_common+0x2d7 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_alloc+0xc8 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`lookuppnatcred+0x3b + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + zfs`zfs_lookup + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`pn_fixslash+0x14 + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`table_lock_enter+0x57 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfslocks_getlock+0x3c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`rwst_enter_common+0x1ec + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`lookuppnvp+0x45f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfslocks_rele + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`syscall_mstate+0x123 + unix`sys_syscall+0x1a1 + 10 + + genunix`vn_setpath+0xb8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`freelonode+0x23a + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`dnlc_lookup+0x5c + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`table_lock_enter+0x6d + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_openat+0xb1 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_free+0xf1 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`cv_destroy+0xd + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`lo_inactive + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfsrlock + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`strlen + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`syscall_mstate+0x41 + unix`0xfffffffffb800ca0 + 10 + + genunix`rwst_init+0x51 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`lookupnameatcred+0xf + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`lfind + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_setpath+0xe2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_alloc+0xe4 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vfs_getops+0x17 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_free+0x17 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_alloc+0x1b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`dnlc_lookup+0x8f + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`memcmp+0x20 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`lookupnameat+0x14 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfslocks_getlock+0x88 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`crgetmapped+0x8 + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`fop_lookup+0xcd + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`secpolicy_vnode_access2+0x2d + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_alloc+0x2e + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfslocks_getlock+0x90 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_alloc + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`lookupnameatcred+0x31 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`makelonode+0x17d + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`atomic_add_64 + unix`0xfffffffffb800c86 + 10 + + genunix`vfs_getops+0x40 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`audit_getstate + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_enter + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_enter + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`secpolicy_vnode_access2+0x43 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`kmem_cache_alloc+0x17 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vsd_free+0xe8 + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_init+0x8 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`thread_lock+0xed + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 10 + + genunix`fop_inactive+0x4e + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + lofs`freelonode+0xa0 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`tsc_gethrtimeunscaled + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 10 + + unix`tsc_gethrtimeunscaled + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 10 + + unix`tsc_gethrtimeunscaled + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 10 + + genunix`vn_rele+0x8 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`openat + unix`sys_syscall+0x17a + 10 + + genunix`vsd_free + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_exit + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_exit + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_exit + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`vn_vfslocks_getlock+0xc4 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + genunix`fd_find+0x67 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`mutex_init+0x27 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 10 + + unix`bcopy+0x300 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`tsc_read + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 11 + + lofs`freelonode+0x1c1 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_rele+0x24 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`post_syscall+0x1a5 + unix`0xfffffffffb800c91 + 11 + + genunix`kmem_cache_alloc+0x4e + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_free + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`fop_lookup+0x126 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`table_lock_enter+0x8 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_setops+0x8 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_rele+0x3e + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_free+0x26 + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_vfslocks_getlock+0x106 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_alloc+0x79 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_free+0x2b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_free+0x2f + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_rele+0x60 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_mountedvfs + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_free+0xb0 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`syscall_mstate+0x1f3 + unix`sys_syscall+0x1a1 + 11 + + genunix`kmem_free+0x43 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`lsave+0x26 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`ufalloc_file+0x86 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_vfslocks_getlock+0x17 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_enter_common+0x2c7 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_mountedvfs+0x8 + genunix`traverse+0x77 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_free+0xbd + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`post_syscall+0x5f0 + unix`0xfffffffffb800c91 + 11 + + genunix`kmem_cache_alloc+0x92 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`makelonode+0x8 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_rele+0x78 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`syscall_mstate+0xc + unix`sys_syscall+0x10e + 11 + + genunix`post_syscall+0x1fe + unix`0xfffffffffb800c91 + 11 + + lofs`lsave+0x42 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`makelonode+0x26 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_free+0xe8 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`pn_fixslash+0x2c + genunix`lookuppnvp+0x105 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`cv_destroy + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`lo_lookup+0x1a8 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_setpath+0xce + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`makelonode+0x42 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_vfsrlock+0x9 + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_init+0x5a + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_invalid+0x1d + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`fop_lookup+0xb2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_alloc+0x17 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`secpolicy_vnode_access2+0x218 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_free+0x1b + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`unfalloc+0xc + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 11 + + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_enter_common+0x331 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_alloc+0xf3 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`ufalloc_file + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_alloc + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_enter_common+0x341 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`lfind+0x24 + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`freelonode+0x88 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_setpath+0x8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_cache_free+0x3a + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`fop_lookup+0xdd + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`mutex_enter + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_destroy+0x33 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + lofs`lfind+0x35 + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_vfslocks_getlock+0xa6 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`kmem_alloc+0x46 + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`bcopy+0x2d7 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_setpath+0x17 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vsd_free+0xe8 + genunix`vn_free+0x8b + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`mutex_enter+0x9 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`mutex_enter+0x9 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`fop_lookup+0xea + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`crgetmapped+0x2a + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`syscall_mstate+0x18c + unix`0xfffffffffb800ca0 + 11 + + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`tsc_gethrtimeunscaled + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 11 + + genunix`vn_vfslocks_getlock+0xb4 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + ufs`ufs_lookup+0x2d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`rwst_tryenter+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`fop_inactive+0x60 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_setpath+0x31 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + genunix`vn_openat+0x124 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + ufs`ufs_lookup+0x34 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 11 + + unix`copyinstr + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_alloc+0x43 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0x4e + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_rele+0x31 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + unix`mutex_init+0x42 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfslocks_rele+0xa6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_rele+0x39 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_inactive+0x90 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfsunlock+0x35 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_lookup+0x135 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_setops+0x17 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfslocks_getlock + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`dnlc_lookup+0x11 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`lsave+0x17 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + unix`rw_enter+0x17 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0x79 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`dnlc_lookup+0x22 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`table_lock_enter+0x38 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_reinit+0x8 + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`rwst_enter_common+0x1c8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`lsave+0x32 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`table_lock_enter+0x50 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_lookup+0x77 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`cv_init+0x19 + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0xdb + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`dnlc_lookup+0x59 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + ufs`ufs_iaccess+0x2f + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_invalid + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + unix`membar_consumer + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_setpath+0x1c7 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0xfa + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`dnlc_lookup+0x16c + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vfs_getops + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_alloc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`ufalloc_file+0xd3 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`set_errno+0x34 + genunix`copen+0x4fa + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`dnlc_lookup+0x17f + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_alloc+0xf + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0x1b + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfslocks_getlock+0x7d + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_free+0xa3 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0xf3 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfslocks_getlock+0x86 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfslocks_getlock+0x86 + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`makelonode+0x168 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0x2b + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0x2b + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`rwst_enter_common+0x341 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_alloc+0x32 + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0x8 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfslocks_rele+0x5c + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0x3f + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + unix`mutex_enter + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_inactive+0x41 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`rwst_enter_common+0x157 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`rwst_enter_common+0x157 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0x17 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0x17 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`lfind+0x3b + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_setpath+0x1b + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_lookup+0x1f0 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`fop_lookup+0xf1 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_alloc+0x26 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + unix`mutex_init+0x17 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + lofs`freelonode+0x1b0 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + unix`mutex_exit + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`dnlc_lookup+0xd3 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_vfsunlock+0x8 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + ufs`ufs_lookup+0x138 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`vn_setpath+0x3d + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 12 + + genunix`kmem_cache_free+0x70 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`traverse+0x77 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + unix`mutex_init+0x3d + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0x25 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_free+0x17 + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`freelonode+0x1de + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0x30 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_getlock+0xf2 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0x37 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`table_lock_enter+0x1b + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`lo_lookup+0x250 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`table_lock_enter+0x26 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0x47 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_mountedvfs + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0x55 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`dnlc_lookup+0x26 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_setops+0x3d + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_free+0xbd + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`dnlc_lookup+0x2e + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`cv_init + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`freelonode+0x17 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`rwst_init+0x17 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`cv_init+0x8 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`lo_lookup+0x283 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`rwst_enter_common+0x1e4 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`rwst_init+0x28 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`table_lock_enter+0x5c + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_setpath+0xb0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`lsave+0x52 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`rwst_exit+0x23 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + ufs`ufs_iaccess+0x24 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_exists+0x36 + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_rele+0x8 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_free+0xe8 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_free+0xe8 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`makelonode+0x2a + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`table_lock_enter+0x6d + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_recycle + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`post_syscall+0x221 + unix`0xfffffffffb800c91 + 13 + + genunix`cv_destroy+0x8 + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_invalid+0x8 + lofs`freelonode+0x115 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + ufs`ufs_iaccess+0x3c + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`audit_unfalloc+0xc + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`table_lock_enter+0x7d + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`lsave+0x6f + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0x9f + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`makelfsnode + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + unix`sys_syscall+0x186 + 13 + + lofs`table_lock_enter+0x82 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`rwst_exit+0x44 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`traverse+0x8 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_free+0x8 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_alloc+0xb + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + unix`strlen+0xb + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_getlock+0x6e + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_rele+0x38 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`traverse+0x18 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_getlock+0x7d + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_alloc+0xf3 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_rele+0x46 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`traverse+0x26 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`unfalloc+0x16 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_alloc+0x26 + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0xc7 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_alloc+0xfc + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_alloc + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfsrlock+0x3b + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_setpath+0x118 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + unix`mutex_init+0x8 + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + ufs`ufs_lookup+0x1a + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_vfslocks_rele+0x6b + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_setpath+0x22 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`makelonode+0x98 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`lo_lookup+0xb + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + ufs`ufs_iaccess+0x9d + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`makelfsnode+0x5f + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + unix`mutex_exit + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_setpath+0x133 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_rele+0x17 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_alloc+0x37 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`kmem_cache_alloc+0x3a + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fd_find+0x6b + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`fop_lookup+0xb + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`audit_getstate+0x2c + genunix`lookuppnvp+0x82 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + lofs`freelonode+0x1bd + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 13 + + genunix`vn_setpath+0x140 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit+0x12 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit+0x12 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`dnlc_lookup+0xe5 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vfs_matchops+0x27 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`cv_broadcast+0x8 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x1a + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x21 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x21 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_setpath+0x155 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_vfslocks_rele+0xa6 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_inactive+0x8b + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x2c + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`makelonode+0x1d2 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_recycle+0xa2 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`table_lock_enter+0x13 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_setpath+0x163 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_alloc+0x66 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x3b + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x43 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fd_find+0xa6 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_vfslocks_getlock+0x8 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_vfslocks_getlock+0x8 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x4b + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_recycle+0xbd + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`table_lock_enter+0x2e + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`freelonode + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`rwst_init + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_free+0xb0 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_alloc+0x84 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_exists+0x8 + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + ufs`ufs_lookup+0x9b + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_destroy+0x84 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`lsave+0x45 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_reinit+0x29 + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_setpath+0xb5 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`dnlc_lookup+0x56 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`makelonode+0x2e + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + ufs`ufs_iaccess+0x130 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`syscall_mstate+0x130 + unix`sys_syscall+0x1a1 + 14 + + genunix`rwst_init+0x42 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_vfslocks_rele+0x17 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_vfslocks_rele+0x17 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`rwst_enter_common+0xb + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`lo_lookup+0x1ae + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`traverse + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_inactive + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`0xfffffffffb800c91 + 14 + + genunix`lookupnameatcred+0x1 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`bcopy+0x395 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vfs_getops+0x8 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_inactive+0x8 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_free+0x8 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`rwst_init+0x5b + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0xb0 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_free+0x17 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_vfsrlock+0x18 + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`secpolicy_vnode_access2+0x1a + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`crgetmapped + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_alloc+0xf3 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + ufs`ufs_lookup+0xf4 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_inactive+0x26 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`rwst_enter_common+0x38 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_alloc+0x2a + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_alloc+0xfc + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`makelonode+0x6d + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`post_syscall+0x5e + unix`0xfffffffffb800c91 + 14 + + genunix`secpolicy_vnode_access2+0x22f + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vfs_getops+0x32 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_free+0x3a + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`lookupnameat+0x30 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_enter + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_enter + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_enter + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_enter + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0xed + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + ufs`ufs_iaccess+0x8e + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vfs_matchops + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_destroy+0x8 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vn_rele+0xc + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`vsd_free + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`kmem_cache_alloc+0x3a + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + genunix`fop_lookup+0x10c + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + ufs`ufs_lookup+0x3c + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 14 + + unix`mutex_exit+0x12 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_exit+0x12 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`makelfsnode+0x77 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`makelfsnode+0x78 + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`dnlc_lookup+0xeb + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vsd_free+0x1b + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_vfslocks_rele+0x9e + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`lo_root + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`makelonode+0xc2 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_init+0x42 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x66 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x66 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_free+0x2a + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`table_lock_enter+0x22 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + ufs`ufs_iaccess+0xe5 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_setops+0x26 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`lookupnameatcred+0xa8 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`rwst_enter_common+0x1b8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x84 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`lookuppnvp+0x235 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`rwst_enter_common+0x2c7 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + ufs`ufs_lookup+0x88 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x89 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`fop_lookup+0x5a + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_destroy+0x6b + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x92 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x92 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_free+0x57 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`disp_lock_exit+0x48 + unix`0xfffffffffb800c91 + 15 + + genunix`kmem_alloc+0xc8 + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`syscall_mstate+0xc + unix`sys_syscall+0x1a1 + 15 + + genunix`syscall_mstate+0x10f + unix`sys_syscall+0x1a1 + 15 + + genunix`vn_setops+0x50 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`crgetuid + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`dnlc_lookup+0x43 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`post_syscall+0x205 + unix`0xfffffffffb800c91 + 15 + + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_rele+0x87 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`cv_init+0x19 + genunix`rwst_init+0x56 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`crgetuid+0x10 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`makelonode+0x22 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`cv_destroy + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`rwst_exit+0x35 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`cv_destroy+0x8 + genunix`rwst_destroy+0x2e + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_recycle+0x8 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`syscall_mstate+0x139 + unix`0xfffffffffb800ca0 + 15 + + lofs`table_lock_enter+0x7d + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`lo_lookup+0xaf + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`traverse + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`lock_clear_splx+0x3 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 15 + + lofs`lo_lookup+0xb7 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`lfind+0xb + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`makelonode+0x5e + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`rwst_destroy+0x25 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_alloc+0x6 + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`memcmp+0x37 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`pn_getcomponent+0x8 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x8 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x8 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + lofs`makelonode+0x79 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + ufs`ufs_lookup+0xb + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_enter + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`syscall_mstate+0x183 + unix`sys_syscall+0x1a1 + 15 + + lofs`makelonode+0x186 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`rwst_exit+0x86 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x1b + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`crgetmapped+0x2e + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`copystr+0x54 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_alloc+0x26 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_rele+0x8 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`traverse+0x5b + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_vfsunlock + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_exit + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_exit + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_free+0x68 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`kmem_cache_free+0x68 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`vn_setpath+0x39 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`fsop_root+0xc + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 15 + + genunix`cv_broadcast + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vsd_free+0x10 + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_rele+0x24 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lfind+0x67 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0x4e + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`table_lock_enter + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lo_lookup+0x34 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`dnlc_lookup+0x100 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lo_lookup+0x48 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`post_syscall+0x1d0 + unix`0xfffffffffb800c91 + 16 + + unix`bcopy+0x330 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_vfslocks_getlock + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`bcopy+0x238 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_mountedvfs+0x8 + genunix`lookuppnvp+0x217 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`pn_get_buf+0x4b + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`splr+0xc + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 16 + + genunix`kmem_cache_alloc+0x8d + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0x92 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`fop_lookup+0x64 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_setpath+0x97 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_alloc+0xc8 + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`syscall_mstate+0xc + unix`0xfffffffffb800ca0 + 16 + + genunix`vn_setops+0x5f + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`bcmp + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_vfslocks_getlock+0x41 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`cv_broadcast+0x72 + genunix`rwst_exit+0x8f + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`fop_lookup+0x82 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lo_lookup+0x198 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lsave+0x61 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_setpath+0x1c2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + ufs`ufs_iaccess+0x137 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`sys_syscall+0x17d + 16 + + genunix`rwst_init+0x51 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`lookuppnvp+0x185 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vn_vfslocks_getlock+0x66 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_free+0x8 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0xe4 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`memcmp+0x17 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0xfc + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`atomic_add_32 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0x8 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0x8 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`mutex_enter + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vfs_getops+0x49 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`lookuppnvp+0xcb + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lsave+0xc0 + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`mutex_destroy + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0x22 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`kmem_cache_alloc+0x26 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + ufs`ufs_iaccess+0xa2 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`fop_lookup+0x107 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + genunix`vsd_free+0x8 + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + lofs`lfind+0x5f + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 16 + + unix`mutex_exit+0x12 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`fop_lookup+0x16 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_setpath+0x14d + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`kmem_cache_alloc+0x4e + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`makelonode+0x1bf + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`kmem_free+0x17 + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`lo_lookup+0x138 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`dnlc_lookup + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_vfslocks_rele+0xc6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`lookuppnvp+0x327 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`fop_lookup+0x47 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`fop_inactive+0xab + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`lookuppnvp+0x32e + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`lo_lookup+0x60 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_exists + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`rwst_init+0x8 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`rwst_enter_common+0x1d8 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_exists+0x1d + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`makelonode+0x17 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`dnlc_lookup+0x50 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_vfslocks_getlock+0x41 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`cv_init+0x22 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + unix`membar_consumer + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`makelonode+0x31 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_reinit+0x47 + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`syscall_mstate+0x41 + unix`sys_syscall+0x1a1 + 17 + + lofs`table_lock_enter+0x82 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_recycle+0x17 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`memcmp+0x8 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`secpolicy_vnode_access2+0x108 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_vfslocks_rele+0x29 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`rwst_exit+0x4c + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`rwst_destroy+0x8 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`lookuppnvp+0x1ac + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`fop_lookup+0xcd + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`lo_lookup+0x2e0 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + unix`mutex_enter + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + unix`mutex_enter + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`traverse+0x43 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`fop_lookup+0xe9 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`crgetmapped+0x2a + genunix`fop_lookup+0x1dc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vn_recycle+0x65 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`kmem_cache_alloc+0x26 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`lsave+0xca + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`makelonode+0x9f + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`rwst_tryenter+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + unix`mutex_exit + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`kmem_cache_alloc+0x33 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vfs_matchops+0x17 + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + unix`mutex_exit+0xc + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + lofs`makelfsnode+0x6e + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 17 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vfs_matchops+0x23 + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vsd_free+0x1f + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`lookuppnvp+0x205 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + unix`bcopy+0x1f + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`fop_lookup+0x135 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`fop_lookup+0x3f + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + lofs`lo_lookup+0x50 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + ufs`ufs_lookup+0x70 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`kmem_cache_alloc+0x89 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`dnlc_lookup+0x2a + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + lofs`lo_lookup+0x26b + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`cv_init+0x1 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vn_mountedvfs+0x11 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`dnlc_lookup+0x32 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`fop_lookup+0x64 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`cv_init+0x8 + genunix`rwst_init+0x47 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + lofs`lo_lookup+0x79 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + ufs`ufs_iaccess+0x10c + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`lookuppnvp+0x15e + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`kmem_alloc+0xdf + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`post_syscall+0x211 + unix`0xfffffffffb800c91 + 18 + + genunix`fop_lookup+0x82 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`fop_lookup+0x8e + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`rwst_enter_common + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + unix`do_splx + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 18 + + unix`strlen + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`dnlc_lookup+0x7d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`fop_lookup+0xb0 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`fop_lookup+0xb6 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`rwst_enter_common+0x29 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`lookupnameat+0xc + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vn_vfslocks_rele+0x46 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`pn_getcomponent + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vn_vfslocks_getlock+0x90 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vn_vfsrlock+0x3b + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`kmem_alloc+0x3b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`rwst_destroy+0x32 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`rwst_tryenter+0x9 + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`crgetmapped+0x2a + genunix`fop_lookup+0x1dc + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`vn_alloc+0x35 + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + genunix`audit_getstate+0x2c + genunix`copen+0x59 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + lofs`makelonode+0x1af + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 18 + + unix`mutex_exit+0x12 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`vn_rele+0x24 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`dnlc_lookup+0x9 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`fop_lookup+0x3f + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`fop_lookup+0x43 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`dnlc_lookup+0x15 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + lofs`lo_lookup+0x25d + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`vn_vfslocks_rele+0xce + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`rw_enter+0x22 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`fop_lookup+0x55 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + lofs`makelonode + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`vn_mountedvfs+0x11 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`vn_vfslocks_rele+0x105 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`dnlc_lookup+0x160 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`membar_consumer + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`audit_unfalloc+0x1 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`fop_lookup+0x9f + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`audit_unfalloc+0x24 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`vn_reinit+0x67 + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + lofs`lo_lookup+0x1d4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`fop_lookup+0x1c8 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`crgetmapped+0x8 + genunix`fop_lookup+0x1dc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`memcmp+0x30 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`clear_int_flag + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 19 + + genunix`crgetmapped+0x15 + genunix`fop_lookup+0x1dc + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + ufs`ufs_iaccess+0x7f + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`mutex_enter + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`mutex_init + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`rwst_tryenter+0x9 + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`i_ddi_splhigh+0x5 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 19 + + genunix`kmem_cache_alloc+0x26 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`tsc_gethrtimeunscaled+0xc + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 19 + + unix`copystr+0x60 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + unix`mutex_exit + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + ufs`ufs_lookup+0x38 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + lofs`lo_lookup+0x1a + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`traverse+0x6f + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 19 + + genunix`kmem_free + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`traverse+0x7c + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_setpath+0x4e + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_setops + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`fop_lookup+0x25 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + lofs`lo_lookup+0x3c + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_vfslocks_rele+0xb3 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_vfslocks_getlock + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`traverse+0xa8 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_recycle+0xbe + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_setpath+0x190 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + lofs`table_lock_enter+0x41 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + unix`mutex_destroy+0x7f + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + ufs`ufs_iaccess+0x11c + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`kmem_alloc+0xdf + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_setpath+0x1b0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`dnlc_lookup+0x159 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`kmem_cache_free+0xf1 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`dnlc_lookup+0x65 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`cv_destroy+0xd + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`vn_vfslocks_rele+0x38 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`dnlc_lookup+0x198 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`crgetmapped+0x8 + genunix`fop_lookup+0x1dc + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`kmem_alloc+0x2a + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`crgetmapped+0x15 + genunix`fop_lookup+0x1dc + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`fop_lookup+0x1d7 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`rwst_tryenter + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + lofs`makelonode+0x92 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + unix`mutex_exit + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + genunix`dnlc_lookup+0xdf + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 20 + + ufs`ufs_lookup+0x40 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + lofs`lo_lookup+0x29 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`kmem_free+0xb + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`fop_lookup+0x126 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`kmem_free+0x17 + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`fop_lookup+0x13e + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + lofs`makelonode+0x1e7 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`vn_recycle+0xb9 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + ufs`ufs_lookup+0x80 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`vn_free+0x32 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + ufs`ufs_lookup+0x85 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`vn_setops+0x4a + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`crgetuid+0x8 + ufs`ufs_iaccess+0xe5 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + ufs`ufs_iaccess+0x33 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`dnlc_lookup+0x79 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + unix`strlen+0xb + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`vn_vfslocks_getlock+0x6e + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`rwst_destroy + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + unix`strlen+0x13 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + unix`strlen+0x13 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`crgetmapped + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + lofs`makelfsnode+0x26 + lofs`makelonode+0x192 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + unix`bcopy+0x3b8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`vfs_getops+0x28 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`dnlc_lookup+0x9d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`vn_recycle+0x41 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`rwst_enter_common+0x44 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`secpolicy_vnode_access2+0x38 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`kmem_cache_free+0x3a + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + lofs`lo_lookup+0x1ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`rwst_tryenter + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + unix`mutex_enter + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`fop_lookup+0x1f8 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + unix`mutex_destroy+0x17 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 21 + + genunix`syscall_mstate+0x1b2 + unix`sys_syscall+0x1a1 + 22 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + lofs`lo_lookup+0x40 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`fop_lookup+0x30 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`lookuppnvp+0x31a + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`disp_lock_exit+0x1b + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 22 + + genunix`dnlc_lookup+0x11 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`vn_setpath+0x83 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`pn_getcomponent+0x90 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + ufs`ufs_iaccess+0x8 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + lofs`lsave+0x3a + lofs`makelonode+0x1df + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`rwst_init+0x38 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`secpolicy_vnode_access2+0x1 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`kmem_cache_alloc+0xfc + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`dnlc_lookup+0xa0 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + ufs`ufs_lookup + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`fop_lookup+0x1d7 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`dnlc_lookup+0xa9 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + ufs`ufs_iaccess+0x7a + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + unix`mutex_enter + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + unix`mutex_enter + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + genunix`rwst_enter_common+0x15f + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + ufs`ufs_lookup+0x29 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + unix`mutex_exit + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 22 + + unix`mutex_exit+0x12 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + unix`mutex_exit+0x19 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`lookuppnvp+0x308 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`dnlc_lookup+0x11c + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`pn_getcomponent+0x89 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`lookuppnvp+0x13e + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`pn_getcomponent+0xab + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`rwst_enter_common + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`cv_destroy+0x1 + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + lofs`lo_lookup+0x1bf + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + unix`rw_exit+0x3 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`secpolicy_vnode_access2+0x29 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`kmem_cache_alloc + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`dnlc_lookup+0x1ad + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`kmem_cache_alloc+0x17 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`pn_getcomponent+0x18 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`fop_lookup+0x1eb + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`crgetmapped+0x2e + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`fsop_root + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + unix`mutex_exit + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + unix`mutex_exit+0x9 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 23 + + genunix`falloc+0x1 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`vn_alloc+0x42 + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + lofs`lo_lookup+0x126 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`traverse+0x7f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + unix`bcopy+0x1b + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`vn_vfsunlock+0x35 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + ufs`ufs_iaccess+0xd8 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + ufs`ufs_iaccess+0x1 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`fop_lookup+0x73 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + ufs`ufs_lookup+0xb7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + lofs`lo_lookup+0x9d + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`pn_getcomponent+0xc1 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`syscall_mstate+0x139 + unix`sys_syscall+0x1a1 + 24 + + genunix`dnlc_lookup+0x175 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`fop_lookup+0xc2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`secpolicy_vnode_access2+0x226 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`fop_lookup+0xcb + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`dnlc_lookup+0x1a8 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + unix`copystr+0x45 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + zfs`zfs_lookup+0x88 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`fop_lookup+0xb + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 24 + + genunix`dnlc_lookup+0xeb + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`fop_lookup+0x1d + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`fop_lookup+0x2c + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`secpolicy_vnode_access2+0xa0 + ufs`ufs_iaccess+0x128 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`fop_lookup+0x5a + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`cv_init+0x22 + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + lofs`lo_lookup+0x1a4 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`post_syscall+0x22d + unix`0xfffffffffb800c91 + 25 + + genunix`lookupnameat + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`unfalloc+0x1 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + unix`strlen+0x16 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + ufs`ufs_lookup+0xe9 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + unix`mutex_enter + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`lookuppnvp+0x1c5 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`fop_lookup+0x1eb + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`vn_setpath+0x12b + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + unix`mutex_exit + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + unix`mutex_exit + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`vn_setpath+0x137 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + genunix`audit_getstate+0x2c + genunix`setf+0x3f + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 25 + + lofs`table_lock_enter + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`fop_lookup+0x3b + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`fop_lookup+0x13e + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`kmem_free+0x3a + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`cv_init + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`fop_inactive+0xc2 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`rwst_exit+0x8 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + lofs`lo_lookup+0x8f + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + unix`prunstop+0x1b + genunix`post_syscall+0x2d0 + unix`0xfffffffffb800c91 + 26 + + unix`bcmp+0xf + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + lofs`lo_lookup+0xa1 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`cv_destroy+0xd + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + ufs`ufs_iaccess+0x59 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`kmem_cache_alloc + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`dnlc_lookup+0xbe + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + unix`mutex_exit + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + unix`mutex_exit + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + lofs`lo_lookup+0x118 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 26 + + genunix`dnlc_lookup+0x149 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + ufs`ufs_iaccess+0x141 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + unix`bcopy+0x3b4 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + unix`rw_exit+0x24 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + genunix`thread_lock+0x1 + unix`0xfffffffffb800c91 + 27 + + unix`mutex_exit+0xc + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + genunix`lookuppnvp+0x1ed + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 27 + + unix`strlen + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + unix`strlen+0xb + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + genunix`vn_setpath+0xc + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + genunix`kmem_cache_alloc+0x10 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + genunix`fd_find+0x58 + genunix`ufalloc_file+0x91 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + genunix`fop_lookup+0x1 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 28 + + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + genunix`fop_lookup+0x37 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + unix`bcopy+0x234 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + genunix`fop_lookup+0x5e + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + genunix`rwst_enter_common+0x44 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + unix`tsc_gethrtimeunscaled+0x1 + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 29 + + genunix`syscall_mstate+0x1a1 + unix`sys_syscall+0x1a1 + 29 + + unix`mutex_exit+0xc + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 29 + + lofs`lo_lookup+0x133 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + unix`bcopy+0x32c + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + genunix`fop_inactive+0xc2 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + genunix`clear_stale_fd+0x46 + genunix`post_syscall+0x1fe + unix`0xfffffffffb800c91 + 30 + + genunix`vn_vfslocks_rele + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + genunix`syscall_mstate+0x14d + unix`0xfffffffffb800ca0 + 30 + + unix`rw_exit + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + genunix`rwst_enter_common+0x40 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + unix`mutex_enter + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + unix`mutex_exit + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 30 + + genunix`post_syscall+0x29a + unix`0xfffffffffb800c91 + 30 + + lofs`lo_lookup+0x38 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + unix`rw_enter+0x9 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + unix`splr + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 31 + + genunix`fop_lookup+0xc2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + genunix`memcmp+0x23 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + unix`mutex_init + genunix`vn_vfslocks_getlock+0xb0 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + lofs`lo_lookup + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + genunix`fop_lookup + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 31 + + unix`bcopy+0x17 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + genunix`pn_getcomponent+0x73 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + genunix`pn_getcomponent+0x81 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + unix`bcopy+0x38c + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + genunix`crgetmapped + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + ufs`ufs_lookup+0xfa + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + genunix`dnlc_lookup+0xd0 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 32 + + ufs`ufs_lookup+0x44 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 33 + + genunix`post_syscall+0x2b9 + unix`0xfffffffffb800c91 + 33 + + genunix`dnlc_lookup+0x75 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 33 + + ufs`ufs_iaccess+0x89 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 33 + + genunix`fsop_root+0x1 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 33 + + genunix`kmem_free + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + genunix`fop_lookup+0x113 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + lofs`lo_root+0x1f + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + genunix`fop_lookup+0x5e + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + lofs`table_lock_enter+0x41 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + genunix`dnlc_lookup+0x99 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + unix`clear_int_flag+0x2 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 34 + + lofs`lfind+0x40 + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + genunix`lookuppnvp+0x1db + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + genunix`fop_lookup + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 34 + + lofs`lo_lookup+0x58 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 35 + + genunix`memcmp + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 35 + + unix`strlen+0xe + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 35 + + unix`mutex_enter + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 35 + + genunix`fop_lookup+0x1ff + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 35 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 35 + + genunix`vn_setpath+0x6b + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 36 + + genunix`vn_setpath+0x9e + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 36 + + unix`membar_consumer+0x3 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 36 + + genunix`secpolicy_vnode_access2 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 36 + + unix`copystr+0x39 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 36 + + unix`mutex_exit + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 36 + + genunix`vn_mountedvfs + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 37 + + unix`mutex_enter+0x9 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 37 + + genunix`vn_reinit+0x7c + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 38 + + unix`mutex_exit+0xc + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 38 + + unix`mutex_exit+0xc + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 38 + + genunix`lookupnameat+0x1 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 39 + + unix`mutex_exit + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 39 + + genunix`pn_getcomponent+0x9e + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 40 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 40 + + unix`bcopy + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 41 + + unix`mutex_exit+0x12 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 41 + + unix`mutex_exit+0x12 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 41 + + genunix`dnlc_lookup + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 41 + + genunix`syscall_mstate+0x1 + 41 + + unix`bcopy+0x2cd + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 41 + + unix`bcopy+0x2fc + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 41 + + unix`0xfffffffffb800c7c + 42 + + genunix`dnlc_lookup+0x5f + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 42 + + genunix`cv_destroy + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 42 + + genunix`audit_getstate+0x1 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 42 + + unix`copystr+0x52 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 42 + + unix`mutex_exit+0xc + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 42 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 43 + + genunix`syscall_mstate + 43 + + genunix`vn_setpath+0xe7 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 43 + + unix`mutex_exit+0xc + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 43 + + unix`mutex_exit+0xc + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 43 + + genunix`vn_setpath + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 44 + + unix`mutex_exit+0xc + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 44 + + genunix`dnlc_lookup+0x6b + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 45 + + genunix`kmem_alloc + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 45 + + genunix`fop_lookup+0x1dc + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 46 + + unix`mutex_enter + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 46 + + genunix`dnlc_lookup+0x53 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 47 + + genunix`vn_rele + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 47 + + unix`mutex_exit+0xc + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 47 + + unix`mutex_exit+0xc + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 47 + + unix`mutex_exit+0xc + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 47 + + unix`mutex_exit+0x12 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 48 + + unix`rw_enter+0x14 + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 48 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 49 + + unix`mutex_exit+0xc + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 49 + + unix`atomic_cas_64 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 50 + + unix`mutex_exit+0xc + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 50 + + ufs`ufs_iaccess + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 51 + + unix`strlen+0x8 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 51 + + unix`strlen+0xb + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 52 + + genunix`vn_setpath+0xee + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 52 + + unix`mutex_enter + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 52 + + unix`mutex_exit+0xc + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 52 + + unix`mutex_exit+0x12 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 53 + + genunix`vn_setpath+0x6f + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 53 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 53 + + unix`rw_enter + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 55 + + unix`mutex_exit+0xc + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 55 + + genunix`vn_setpath+0x126 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 56 + + genunix`kmem_free + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 57 + + unix`splr+0x1 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 57 + + genunix`dnlc_lookup+0x62 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 57 + + lofs`table_lock_enter+0x41 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 58 + + genunix`syscall_mstate+0x14d + unix`sys_syscall+0x10e + 58 + + unix`mutex_exit+0x12 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 59 + + unix`mutex_exit+0x12 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 59 + + genunix`vsd_free+0xc + genunix`vn_recycle+0xb5 + genunix`vn_reinit+0x7b + genunix`vn_alloc+0x3e + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 59 + + unix`bcopy+0x388 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 60 + + genunix`kmem_alloc+0x17 + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 60 + + unix`bcopy+0x3b0 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 60 + + unix`mutex_exit+0xc + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 61 + + unix`mutex_exit+0xc + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 61 + + unix`membar_consumer+0x3 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 62 + + unix`mutex_enter + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 62 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 64 + + unix`strlen+0x10 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 64 + + unix`bcopy+0x328 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 66 + + genunix`dnlc_lookup+0x6e + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 66 + + lofs`lo_lookup+0x279 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 67 + + genunix`vn_setpath+0x76 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 69 + + genunix`vn_setops+0x2b + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 69 + + genunix`vn_openat+0x7b + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 69 + + genunix`dnlc_lookup+0x69 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 69 + + unix`mutex_exit+0xc + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 69 + + unix`strlen+0xe + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 71 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 71 + + genunix`vfs_getops+0x20 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 72 + + unix`bcopy+0x2c8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 72 + + unix`mutex_exit+0x12 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 74 + + unix`bcopy+0x230 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 74 + + unix`bcopy+0x2f8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 74 + + unix`mutex_enter+0x10 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 75 + + genunix`vn_setpath+0x15a + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 76 + + unix`mutex_exit+0xc + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 77 + + unix`mutex_exit+0xc + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 77 + + genunix`vn_setpath+0x199 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 78 + + genunix`fop_lookup+0xf8 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 78 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 79 + + genunix`memcmp+0x20 + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 80 + + unix`mutex_enter+0x10 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 82 + + genunix`memcmp+0x2c + unix`bcmp+0x9 + genunix`dnlc_lookup+0x10d + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 87 + + unix`mutex_enter+0x10 + genunix`lookuppnvp+0x39f + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 87 + + unix`atomic_add_64+0x4 + unix`0xfffffffffb800ca0 + 90 + + unix`mutex_enter+0x10 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 90 + + unix`mutex_enter+0x10 + genunix`unfalloc+0x61 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 91 + + unix`mutex_enter+0x10 + genunix`traverse+0x9f + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 91 + + unix`mutex_enter+0x10 + genunix`fsop_root+0x2d + genunix`traverse+0x87 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 92 + + unix`mutex_enter+0x10 + zfs`zfs_lookup+0xc2 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 92 + + unix`mutex_exit + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 92 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 93 + + unix`mutex_enter+0x10 + genunix`falloc+0x63 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 93 + + unix`mutex_enter+0x10 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 93 + + unix`mutex_enter+0x10 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 93 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 94 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 94 + + unix`mutex_exit+0x12 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 95 + + unix`mutex_enter+0x10 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 95 + + unix`mutex_enter+0x10 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 95 + + unix`mutex_enter+0x10 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 96 + + unix`atomic_add_32_nv+0x6 + genunix`unfalloc+0x4a + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 97 + + unix`atomic_add_64+0x4 + unix`sys_syscall+0x1a1 + 97 + + unix`mutex_exit+0xc + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 97 + + unix`atomic_add_64+0x4 + unix`sys_syscall+0x10e + 98 + + unix`mutex_exit+0xc + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 99 + + unix`mutex_exit+0x12 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 100 + + unix`membar_consumer+0x3 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 100 + + unix`atomic_add_64+0x4 + unix`0xfffffffffb800c86 + 100 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 101 + + unix`mutex_destroy+0x74 + genunix`rwst_destroy+0x1c + genunix`vn_vfslocks_rele+0xd6 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 102 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 102 + + unix`atomic_add_32+0x3 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 105 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 105 + + unix`mutex_exit+0xc + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 105 + + unix`membar_consumer+0x3 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 106 + + unix`membar_consumer+0x3 + genunix`vfs_matchops+0x1c + lofs`lo_lookup+0x1e6 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 106 + + unix`mutex_exit+0xc + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 106 + + unix`mutex_exit+0xc + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 107 + + unix`mutex_enter+0x10 + ufs`ufs_lookup+0x36d + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 108 + + unix`mutex_exit+0xc + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 108 + + unix`mutex_enter+0x10 + genunix`kmem_free+0x4e + genunix`audit_unfalloc+0x44 + genunix`unfalloc+0x41 + genunix`copen+0x4f3 + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 109 + + genunix`pn_getcomponent+0xa8 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 110 + + unix`mutex_enter+0x10 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 111 + + genunix`dnlc_lookup+0x5c + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 114 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0x92 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 114 + + unix`mutex_enter+0x10 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 114 + + unix`mutex_exit+0xc + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 114 + + genunix`dnlc_lookup+0xe5 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 115 + + genunix`pn_getcomponent+0xb3 + genunix`lookuppnvp+0x16d + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 116 + + genunix`rwst_enter_common+0x40 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 116 + + unix`mutex_enter+0x10 + genunix`kmem_zalloc+0x47 + genunix`audit_falloc+0x1f + genunix`falloc+0xf8 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 121 + + unix`mutex_exit+0xc + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 123 + + unix`mutex_exit+0x12 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 124 + + unix`mutex_exit+0xc + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 126 + + unix`atomic_add_32+0x3 + genunix`falloc+0xbc + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 129 + + unix`tsc_read+0x3 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800ca0 + 145 + + unix`strlen+0x13 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 146 + + genunix`fop_lookup+0x113 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 154 + + unix`clear_int_flag+0x2 + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 157 + + unix`tsc_read+0x3 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x1a1 + 163 + + unix`copystr+0x34 + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 164 + + unix`mutex_exit+0xc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 168 + + unix`tsc_read+0x3 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`0xfffffffffb800c86 + 169 + + unix`mutex_enter+0x10 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 169 + + lofs`lfind+0x38 + lofs`makelonode+0x47 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 171 + + unix`mutex_exit+0xc + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 172 + + unix`atomic_add_32+0x3 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 174 + + unix`mutex_enter+0x10 + lofs`freelonode+0x47 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 174 + + unix`mutex_exit+0xc + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 178 + + unix`tsc_read+0x3 + genunix`gethrtime_unscaled+0xa + genunix`syscall_mstate+0x5d + unix`sys_syscall+0x10e + 180 + + unix`mutex_enter+0x10 + lofs`freelonode+0x1fe + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 186 + + genunix`fop_lookup+0xf8 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 188 + + genunix`dnlc_lookup+0x50 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 190 + + unix`mutex_enter+0x10 + genunix`vn_free+0x9a + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 190 + + unix`mutex_enter+0x10 + genunix`ufalloc+0x13 + genunix`falloc+0x43 + genunix`copen+0x1ab + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 191 + + unix`mutex_enter+0x10 + genunix`kmem_free+0x4e + genunix`vn_free+0x37 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 193 + + unix`mutex_enter+0x10 + lofs`freelonode+0x1ed + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 196 + + unix`mutex_enter+0x10 + genunix`copen+0x4ea + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 196 + + unix`mutex_enter+0x10 + zfs`zfs_lookup+0xaa + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 201 + + unix`mutex_exit+0xc + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 210 + + unix`mutex_enter+0x10 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 233 + + unix`mutex_enter+0x10 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 237 + + unix`mutex_exit+0xc + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 258 + + unix`copystr+0x3e + genunix`pn_get_buf+0x43 + genunix`lookupnameatcred+0x69 + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 261 + + unix`atomic_cas_64+0x8 + lofs`makelonode+0x1c4 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 268 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 279 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x28 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 280 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x20 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 286 + + unix`mutex_enter+0x10 + genunix`vn_vfsunlock+0x15 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 290 + + unix`mutex_enter+0x10 + genunix`vn_alloc+0x1a + lofs`makelonode+0xb6 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 293 + + unix`mutex_enter+0x10 + lofs`makelonode+0x36 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 298 + + unix`mutex_enter+0x10 + lofs`makelonode+0xa9 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 298 + + unix`mutex_enter+0x10 + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 301 + + unix`mutex_enter+0x10 + genunix`rwst_tryenter+0x1a + genunix`vn_vfsrlock+0x2f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 305 + + unix`mutex_enter+0x10 + genunix`kmem_free+0x4e + genunix`vn_vfslocks_rele+0xe3 + genunix`vn_vfsunlock+0x30 + genunix`traverse+0xb3 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 308 + + unix`atomic_add_32+0x3 + lofs`lo_lookup+0x268 + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 309 + + unix`mutex_enter+0x10 + genunix`kmem_alloc+0x4b + genunix`vn_setpath+0xc2 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 318 + + unix`strlen+0x10 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 327 + + genunix`syscall_mstate+0x14d + unix`sys_syscall+0x1a1 + 330 + + unix`rw_exit+0xf + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 348 + + unix`mutex_enter+0x10 + genunix`kmem_alloc+0x4b + genunix`vn_vfslocks_getlock+0x9c + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 349 + + unix`rw_enter+0x2b + ufs`ufs_lookup+0xc7 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 355 + + unix`splr+0x6a + genunix`thread_lock+0x24 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 361 + + unix`mutex_enter+0x10 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 372 + + unix`strlen+0x8 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x387 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 407 + + unix`mutex_enter+0x10 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + genunix`lookuppnvp+0x229 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 420 + + unix`strlen+0x8 + lofs`freelonode+0x1f5 + lofs`lo_inactive+0x1d + genunix`fop_inactive+0x76 + genunix`vn_rele+0x82 + genunix`lookuppnvp+0x33b + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 534 + + unix`strlen+0xe + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 562 + + unix`sys_syscall+0xff + 565 + + unix`mutex_enter+0x10 + genunix`vn_vfsrlock+0x1f + genunix`traverse+0x30 + lofs`lo_lookup+0x2ee + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 673 + + unix`lock_try+0x8 + genunix`post_syscall+0x2e4 + unix`0xfffffffffb800c91 + 774 + + unix`mutex_enter+0x10 + ufs`ufs_lookup+0xa6 + genunix`fop_lookup+0xa2 + lofs`lo_lookup+0xbc + genunix`fop_lookup+0xa2 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 816 + + unix`mutex_enter+0x10 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 884 + + unix`strlen+0x8 + genunix`fop_lookup+0x210 + genunix`lookuppnvp+0x1f6 + genunix`lookuppnatcred+0x15e + genunix`lookupnameatcred+0xad + genunix`lookupnameat+0x39 + genunix`vn_openat+0x315 + genunix`copen+0x20c + genunix`openat+0x2a + genunix`open+0x25 + unix`sys_syscall+0x17a + 1535 + + unix`do_splx+0x65 + genunix`disp_lock_exit+0x47 + genunix`post_syscall+0x318 + unix`0xfffffffffb800c91 + 1971 diff --git a/tests/benchmarks/_script/flamegraph/example-dtrace.svg b/tests/benchmarks/_script/flamegraph/example-dtrace.svg new file mode 100644 index 00000000000..6702dc8b38f --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/example-dtrace.svg @@ -0,0 +1,1842 @@ + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search + +unix`mutex_enter (195 samples, 0.34%) + + + +genunix`as_fault (12 samples, 0.02%) + + + +genunix`disp_lock_exit (27 samples, 0.05%) + + + +genunix`vsd_free (17 samples, 0.03%) + + + +genunix`pn_fixslash (44 samples, 0.08%) + + + +unix`mutex_exit (105 samples, 0.18%) + + + +genunix`falloc (1,363 samples, 2.37%) +g.. + + +genunix`traverse (30 samples, 0.05%) + + + +genunix`fop_lookup (55 samples, 0.10%) + + + +genunix`kmem_cache_free (29 samples, 0.05%) + + + +lofs`makelonode (39 samples, 0.07%) + + + +genunix`vsd_free (155 samples, 0.27%) + + + +unix`strlen (2,659 samples, 4.63%) +unix`.. + + +unix`clear_int_flag (180 samples, 0.31%) + + + +unix`mutex_exit (38 samples, 0.07%) + + + +genunix`kmem_cpu_reload (5 samples, 0.01%) + + + +unix`mutex_exit (26 samples, 0.05%) + + + +genunix`vn_vfslocks_getlock (47 samples, 0.08%) + + + +unix`bzero (8 samples, 0.01%) + + + +genunix`vn_exists (50 samples, 0.09%) + + + +unix`mutex_enter (727 samples, 1.27%) + + + +genunix`kmem_cache_alloc (179 samples, 0.31%) + + + +unix`mutex_enter (905 samples, 1.58%) + + + +genunix`ufalloc (10 samples, 0.02%) + + + +genunix`vn_rele (25 samples, 0.04%) + + + +genunix`vn_exists (17 samples, 0.03%) + + + +unix`lock_try (778 samples, 1.35%) + + + +genunix`rwst_enter_common (314 samples, 0.55%) + + + +genunix`fsop_root (62 samples, 0.11%) + + + +lofs`table_lock_enter (44 samples, 0.08%) + + + +unix`mutex_exit (138 samples, 0.24%) + + + +unix`mutex_enter (316 samples, 0.55%) + + + +genunix`kmem_cache_free (5 samples, 0.01%) + + + +unix`preempt (14 samples, 0.02%) + + + +genunix`vn_alloc (1,189 samples, 2.07%) +g.. + + +genunix`kmem_cache_alloc (126 samples, 0.22%) + + + +genunix`vfs_getops (157 samples, 0.27%) + + + +lofs`lsave (27 samples, 0.05%) + + + +unix`tsc_read (160 samples, 0.28%) + + + +lofs`lfind (26 samples, 0.05%) + + + +unix`atomic_add_64 (205 samples, 0.36%) + + + +unix`mutex_enter (320 samples, 0.56%) + + + +genunix`traverse (17 samples, 0.03%) + + + +unix`mutex_enter (197 samples, 0.34%) + + + +genunix`vn_mountedvfs (20 samples, 0.03%) + + + +genunix`audit_unfalloc (340 samples, 0.59%) + + + +genunix`kmem_cache_free (209 samples, 0.36%) + + + +genunix`kmem_zalloc (13 samples, 0.02%) + + + +genunix`thread_lock (33 samples, 0.06%) + + + +unix`tsc_read (186 samples, 0.32%) + + + +genunix`vn_vfsrlock (12 samples, 0.02%) + + + +lofs`lo_inactive (21 samples, 0.04%) + + + +genunix`rwst_destroy (20 samples, 0.03%) + + + +unix`mutex_enter (379 samples, 0.66%) + + + +genunix`vn_setops (41 samples, 0.07%) + + + +genunix`vn_recycle (33 samples, 0.06%) + + + +lofs`lo_inactive (6,307 samples, 10.98%) +lofs`lo_inactive + + +lofs`table_lock_enter (220 samples, 0.38%) + + + +genunix`cv_broadcast (25 samples, 0.04%) + + + +unix`mutex_exit (358 samples, 0.62%) + + + +genunix`kmem_cache_alloc (234 samples, 0.41%) + + + +unix`rw_enter (525 samples, 0.91%) + + + +unix`membar_consumer (237 samples, 0.41%) + + + +unix`swtch (5 samples, 0.01%) + + + +genunix`rwst_enter_common (32 samples, 0.06%) + + + +lofs`freelonode (5,313 samples, 9.25%) +lofs`freelonode + + +genunix`vn_openat (46,342 samples, 80.68%) +genunix`vn_openat + + +genunix`vn_rele (19 samples, 0.03%) + + + +genunix`proc_exit (5 samples, 0.01%) + + + +unix`mutex_exit (512 samples, 0.89%) + + + +genunix`kmem_free (35 samples, 0.06%) + + + +unix`mutex_enter (252 samples, 0.44%) + + + +genunix`rwst_exit (12 samples, 0.02%) + + + +genunix`crgetuid (22 samples, 0.04%) + + + +genunix`kmem_free (17 samples, 0.03%) + + + +unix`mutex_init (53 samples, 0.09%) + + + +ufs`ufs_iaccess (648 samples, 1.13%) + + + +all (57,441 samples, 100%) + + + +genunix`fop_inactive (6,689 samples, 11.64%) +genunix`fop_inact.. + + +genunix`kmem_cache_alloc (9 samples, 0.02%) + + + +genunix`kmem_cache_free (184 samples, 0.32%) + + + +genunix`pn_get_buf (13 samples, 0.02%) + + + +unix`strlen (107 samples, 0.19%) + + + +unix`mutex_exit (46 samples, 0.08%) + + + +genunix`post_syscall (12 samples, 0.02%) + + + +unix`mutex_init (38 samples, 0.07%) + + + +unix`rw_exit (439 samples, 0.76%) + + + +lofs`lo_lookup (65 samples, 0.11%) + + + +genunix`clear_stale_fd (44 samples, 0.08%) + + + +unix`mutex_enter (238 samples, 0.41%) + + + +genunix`pn_get_buf (687 samples, 1.20%) + + + +genunix`vn_free (1,663 samples, 2.90%) +ge.. + + +unix`mutex_enter (980 samples, 1.71%) + + + +genunix`crhold (5 samples, 0.01%) + + + +unix`mutex_exit (59 samples, 0.10%) + + + +genunix`vn_reinit (48 samples, 0.08%) + + + +genunix`vfs_getops (21 samples, 0.04%) + + + +genunix`open (49,669 samples, 86.47%) +genunix`open + + +genunix`kmem_cache_alloc (39 samples, 0.07%) + + + +genunix`vn_vfslocks_getlock (79 samples, 0.14%) + + + +unix`clear_int_flag (39 samples, 0.07%) + + + +genunix`kmem_cache_free (215 samples, 0.37%) + + + +unix`mutex_destroy (53 samples, 0.09%) + + + +genunix`vn_vfsunlock (3,578 samples, 6.23%) +genunix`.. + + +genunix`dnlc_lookup (1,843 samples, 3.21%) +gen.. + + +genunix`lookupnameatcred (45,978 samples, 80.04%) +genunix`lookupnameatcred + + +genunix`crgetmapped (41 samples, 0.07%) + + + +genunix`anon_zero (7 samples, 0.01%) + + + +genunix`rwst_tryenter (628 samples, 1.09%) + + + +unix`mutex_enter (309 samples, 0.54%) + + + +genunix`vn_rele (14 samples, 0.02%) + + + +genunix`vn_setpath (1,969 samples, 3.43%) +gen.. + + +unix`mutex_enter (111 samples, 0.19%) + + + +genunix`cv_broadcast (40 samples, 0.07%) + + + +genunix`kmem_cache_alloc (66 samples, 0.11%) + + + +genunix`audit_getstate (21 samples, 0.04%) + + + +genunix`vn_setpath (58 samples, 0.10%) + + + +genunix`open (17 samples, 0.03%) + + + +unix`bcopy (896 samples, 1.56%) + + + +unix`mutex_enter (99 samples, 0.17%) + + + +genunix`traverse (5,557 samples, 9.67%) +genunix`traverse + + +genunix`pn_getcomponent (41 samples, 0.07%) + + + +unix`mutex_enter (640 samples, 1.11%) + + + +unix`mutex_destroy (176 samples, 0.31%) + + + +unix`lwp_getdatamodel (6 samples, 0.01%) + + + +genunix`unfalloc (39 samples, 0.07%) + + + +genunix`syscall_mstate (355 samples, 0.62%) + + + +genunix`cv_init (65 samples, 0.11%) + + + +unix`mutex_enter (95 samples, 0.17%) + + + +unix`bcmp (42 samples, 0.07%) + + + +unix`mutex_exit (350 samples, 0.61%) + + + +genunix`kmem_free (288 samples, 0.50%) + + + +unix`mutex_exit (58 samples, 0.10%) + + + +genunix`kmem_alloc (32 samples, 0.06%) + + + +unix`mutex_exit (356 samples, 0.62%) + + + +unix`mutex_init (46 samples, 0.08%) + + + +genunix`rwst_init (173 samples, 0.30%) + + + +genunix`rwst_enter_common (28 samples, 0.05%) + + + +genunix`openat (49,647 samples, 86.43%) +genunix`openat + + +unix`mutex_enter (303 samples, 0.53%) + + + +lofs`lfind (278 samples, 0.48%) + + + +unix`mutex_exit (90 samples, 0.16%) + + + +genunix`cv_init (49 samples, 0.09%) + + + +unix`tsc_gethrtimeunscaled (43 samples, 0.07%) + + + +genunix`rwst_tryenter (32 samples, 0.06%) + + + +genunix`pn_fixslash (14 samples, 0.02%) + + + +genunix`gethrtime_unscaled (420 samples, 0.73%) + + + +genunix`post_syscall (4,245 samples, 7.39%) +genunix`po.. + + +genunix`kmem_zalloc (280 samples, 0.49%) + + + +genunix`vn_alloc (20 samples, 0.03%) + + + +genunix`vn_mountedvfs (43 samples, 0.07%) + + + +genunix`audit_getstate (15 samples, 0.03%) + + + +zfs`zfs_lookup (22 samples, 0.04%) + + + +genunix`crgetuid (6 samples, 0.01%) + + + +unix`copystr (598 samples, 1.04%) + + + +unix`i_ddi_splhigh (23 samples, 0.04%) + + + +unix`trap (13 samples, 0.02%) + + + +genunix`audit_getstate (27 samples, 0.05%) + + + +genunix`vn_mountedvfs (56 samples, 0.10%) + + + +unix`mutex_destroy (17 samples, 0.03%) + + + +genunix`cv_broadcast (14 samples, 0.02%) + + + +genunix`segvn_fault (11 samples, 0.02%) + + + +genunix`vn_rele (39 samples, 0.07%) + + + +genunix`kmem_free (457 samples, 0.80%) + + + +genunix`vn_vfsunlock (20 samples, 0.03%) + + + +genunix`vn_vfslocks_rele (34 samples, 0.06%) + + + +unix`atomic_cas_64 (318 samples, 0.55%) + + + +unix`mutex_enter (337 samples, 0.59%) + + + +unix`do_splx (31 samples, 0.05%) + + + +genunix`ufalloc_file (20 samples, 0.03%) + + + +genunix`fd_reserve (35 samples, 0.06%) + + + +genunix`copen (49,444 samples, 86.08%) +genunix`copen + + +unix`mutex_enter (279 samples, 0.49%) + + + +unix`0xfffffffffb800c91 (4,361 samples, 7.59%) +unix`0xfff.. + + +genunix`crgetmapped (55 samples, 0.10%) + + + +genunix`cv_init (56 samples, 0.10%) + + + +genunix`dnlc_lookup (26 samples, 0.05%) + + + +genunix`kmem_alloc (11 samples, 0.02%) + + + +genunix`cv_init (53 samples, 0.09%) + + + +unix`copyinstr (25 samples, 0.04%) + + + +genunix`gethrtime_unscaled (203 samples, 0.35%) + + + +genunix`kmem_cache_alloc (11 samples, 0.02%) + + + +genunix`vn_free (26 samples, 0.05%) + + + +unix`mutex_exit (149 samples, 0.26%) + + + +genunix`vn_recycle (319 samples, 0.56%) + + + +genunix`vn_rele (64 samples, 0.11%) + + + +unix`bcmp (11 samples, 0.02%) + + + +genunix`kmem_cache_free (154 samples, 0.27%) + + + +unix`lock_clear_splx (28 samples, 0.05%) + + + +genunix`unfalloc (729 samples, 1.27%) + + + +genunix`fop_lookup (85 samples, 0.15%) + + + +zfs`specvp_check (10 samples, 0.02%) + + + +genunix`lookupnameatcred (22 samples, 0.04%) + + + +unix`tsc_read (367 samples, 0.64%) + + + +genunix`memcmp (38 samples, 0.07%) + + + +unix`splx (6 samples, 0.01%) + + + +unix`mutex_exit (95 samples, 0.17%) + + + +genunix`gethrtime_unscaled (7 samples, 0.01%) + + + +genunix`rwst_init (13 samples, 0.02%) + + + +genunix`audit_getstate (31 samples, 0.05%) + + + +genunix`kmem_cache_alloc (32 samples, 0.06%) + + + +genunix`disp_lock_exit (2,096 samples, 3.65%) +genu.. + + +unix`mutex_exit (49 samples, 0.09%) + + + +unix`copyinstr (18 samples, 0.03%) + + + +ufs`ufs_lookup (46 samples, 0.08%) + + + +genunix`clear_stale_fd (10 samples, 0.02%) + + + +genunix`rwst_destroy (296 samples, 0.52%) + + + +genunix`syscall_mstate (1,336 samples, 2.33%) +g.. + + +genunix`kmem_alloc (934 samples, 1.63%) + + + +unix`atomic_add_32 (325 samples, 0.57%) + + + +unix`mutex_enter (947 samples, 1.65%) + + + +unix`mutex_exit (56 samples, 0.10%) + + + +unix`mutex_enter (318 samples, 0.55%) + + + +lofs`lo_root (80 samples, 0.14%) + + + +genunix`lookuppnvp (44,242 samples, 77.02%) +genunix`lookuppnvp + + +genunix`lookupnameat (46,075 samples, 80.21%) +genunix`lookupnameat + + +unix`setbackdq (5 samples, 0.01%) + + + +lofs`lo_root (31 samples, 0.05%) + + + +genunix`kmem_cache_alloc (17 samples, 0.03%) + + + +unix`mutex_exit (212 samples, 0.37%) + + + +genunix`vn_vfsrlock (2,414 samples, 4.20%) +genun.. + + +genunix`vfs_matchops (28 samples, 0.05%) + + + +unix`prunstop (36 samples, 0.06%) + + + +unix`mutex_exit (155 samples, 0.27%) + + + +unix`mutex_init (31 samples, 0.05%) + + + +unix`atomic_add_32_nv (100 samples, 0.17%) + + + +genunix`lookupnameat (69 samples, 0.12%) + + + +unix`_sys_rtt (6 samples, 0.01%) + + + +genunix`kmem_cache_alloc (49 samples, 0.09%) + + + +unix`tsc_gethrtimeunscaled (17 samples, 0.03%) + + + +genunix`fop_lookup (29,216 samples, 50.86%) +genunix`fop_lookup + + +unix`mutex_exit (142 samples, 0.25%) + + + +genunix`crgetmapped (31 samples, 0.05%) + + + +unix`do_splx (1,993 samples, 3.47%) +uni.. + + +genunix`kmem_cache_free (22 samples, 0.04%) + + + +unix`mutex_enter (95 samples, 0.17%) + + + +genunix`crhold (11 samples, 0.02%) + + + +unix`mutex_enter (823 samples, 1.43%) + + + +unix`mutex_exit (29 samples, 0.05%) + + + +genunix`vn_vfsrlock (3,342 samples, 5.82%) +genunix.. + + +unix`tsc_gethrtimeunscaled (13 samples, 0.02%) + + + +genunix`vn_rele (73 samples, 0.13%) + + + +unix`mutex_exit (337 samples, 0.59%) + + + +genunix`vn_vfslocks_getlock (973 samples, 1.69%) + + + +zfs`specvp_check (20 samples, 0.03%) + + + +genunix`vsd_free (14 samples, 0.02%) + + + +unix`mutex_enter (314 samples, 0.55%) + + + +genunix`cv_destroy (81 samples, 0.14%) + + + +genunix`cv_broadcast (25 samples, 0.04%) + + + +unix`mutex_enter (122 samples, 0.21%) + + + +unix`mutex_exit (55 samples, 0.10%) + + + +genunix`set_errno (24 samples, 0.04%) + + + +genunix`cv_destroy (42 samples, 0.07%) + + + +genunix`fd_find (13 samples, 0.02%) + + + +genunix`vn_invalid (47 samples, 0.08%) + + + +genunix`vfs_matchops (336 samples, 0.58%) + + + +unix`tsc_gethrtimeunscaled (59 samples, 0.10%) + + + +genunix`fop_inactive (39 samples, 0.07%) + + + +genunix`kmem_free (693 samples, 1.21%) + + + +genunix`syscall_mstate (412 samples, 0.72%) + + + +genunix`thread_lock (670 samples, 1.17%) + + + +lofs`lsave (162 samples, 0.28%) + + + +unix`atomic_add_64 (95 samples, 0.17%) + + + +genunix`audit_getstate (66 samples, 0.11%) + + + +genunix`dnlc_lookup (70 samples, 0.12%) + + + +genunix`vn_mountedvfs (30 samples, 0.05%) + + + +genunix`cv_broadcast (19 samples, 0.03%) + + + +genunix`kmem_alloc (533 samples, 0.93%) + + + +unix`mutex_exit (160 samples, 0.28%) + + + +genunix`memcmp (38 samples, 0.07%) + + + +unix`strlen (1,238 samples, 2.16%) +u.. + + +genunix`lookuppnatcred (12 samples, 0.02%) + + + +genunix`crfree (13 samples, 0.02%) + + + +lofs`table_lock_enter (43 samples, 0.07%) + + + +genunix`rwst_exit (18 samples, 0.03%) + + + +genunix`cv_destroy (31 samples, 0.05%) + + + +genunix`rwst_init (236 samples, 0.41%) + + + +genunix`vn_vfslocks_rele (1,420 samples, 2.47%) +ge.. + + +genunix`falloc (36 samples, 0.06%) + + + +genunix`setf (187 samples, 0.33%) + + + +zfs`zfs_fastaccesschk_execute (50 samples, 0.09%) + + + +genunix`vn_vfslocks_getlock (120 samples, 0.21%) + + + +genunix`fd_reserve (9 samples, 0.02%) + + + +genunix`vn_setops (160 samples, 0.28%) + + + +unix`sys_syscall (51,908 samples, 90.37%) +unix`sys_syscall + + +genunix`kmem_free (115 samples, 0.20%) + + + +genunix`vsd_free (48 samples, 0.08%) + + + +genunix`rexit (5 samples, 0.01%) + + + +genunix`vn_mountedvfs (11 samples, 0.02%) + + + +genunix`lookuppnatcred (44,681 samples, 77.79%) +genunix`lookuppnatcred + + +unix`splr (92 samples, 0.16%) + + + +genunix`vn_vfsrlock (13 samples, 0.02%) + + + +unix`mutex_exit (371 samples, 0.65%) + + + +genunix`kmem_cache_free (5 samples, 0.01%) + + + +genunix`dnlc_lookup (263 samples, 0.46%) + + + +genunix`audit_unfalloc (32 samples, 0.06%) + + + +unix`0xfffffffffb8001d6 (13 samples, 0.02%) + + + +genunix`rwst_destroy (146 samples, 0.25%) + + + +genunix`gethrtime_unscaled (182 samples, 0.32%) + + + +unix`mutex_enter (575 samples, 1.00%) + + + +unix`mutex_exit (148 samples, 0.26%) + + + +genunix`ufalloc_file (294 samples, 0.51%) + + + +unix`mutex_exit (163 samples, 0.28%) + + + +unix`membar_consumer (106 samples, 0.18%) + + + +genunix`crgetmapped (36 samples, 0.06%) + + + +genunix`memcmp (277 samples, 0.48%) + + + +genunix`cv_destroy (77 samples, 0.13%) + + + +genunix`kmem_cache_free (116 samples, 0.20%) + + + +genunix`kmem_cache_alloc (29 samples, 0.05%) + + + +genunix`fd_reserve (8 samples, 0.01%) + + + +zfs`zfs_lookup (946 samples, 1.65%) + + + +genunix`kmem_alloc (795 samples, 1.38%) + + + +unix`tsc_gethrtimeunscaled (11 samples, 0.02%) + + + +genunix`segvn_faultpage (7 samples, 0.01%) + + + +genunix`set_errno (9 samples, 0.02%) + + + +unix`splr (400 samples, 0.70%) + + + +genunix`rwst_destroy (32 samples, 0.06%) + + + +genunix`rwst_init (28 samples, 0.05%) + + + +unix`atomic_add_32 (292 samples, 0.51%) + + + +unix`0xfffffffffb800ca0 (517 samples, 0.90%) + + + +genunix`syscall_mstate (89 samples, 0.15%) + + + +genunix`kmem_alloc (73 samples, 0.13%) + + + +genunix`vn_vfsunlock (40 samples, 0.07%) + + + +unix`mutex_enter (1,202 samples, 2.09%) +u.. + + +lofs`makelfsnode (28 samples, 0.05%) + + + +unix`0xfffffffffb800c86 (472 samples, 0.82%) + + + +genunix`vn_rele (6,943 samples, 12.09%) +genunix`vn_rele + + +unix`mutex_exit (56 samples, 0.10%) + + + +genunix`kmem_cache_free (51 samples, 0.09%) + + + +genunix`gethrtime_unscaled (11 samples, 0.02%) + + + +unix`pagefault (13 samples, 0.02%) + + + +genunix`secpolicy_vnode_access2 (217 samples, 0.38%) + + + +genunix`vn_vfslocks_getlock (1,357 samples, 2.36%) +g.. + + +unix`bcmp (295 samples, 0.51%) + + + +unix`mutex_enter (97 samples, 0.17%) + + + +unix`membar_consumer (123 samples, 0.21%) + + + +genunix`audit_getstate (16 samples, 0.03%) + + + +unix`mutex_enter (455 samples, 0.79%) + + + +lofs`makelonode (4,212 samples, 7.33%) +lofs`makel.. + + +genunix`kmem_cache_alloc (168 samples, 0.29%) + + + +genunix`vn_vfslocks_getlock (62 samples, 0.11%) + + + +genunix`secpolicy_vnode_access2 (72 samples, 0.13%) + + + +genunix`kmem_cache_free (73 samples, 0.13%) + + + +genunix`vn_reinit (424 samples, 0.74%) + + + +genunix`pn_getcomponent (454 samples, 0.79%) + + + +genunix`fsop_root (297 samples, 0.52%) + + + +genunix`crgetuid (30 samples, 0.05%) + + + +genunix`kmem_free (785 samples, 1.37%) + + + +unix`mutex_exit (171 samples, 0.30%) + + + +genunix`crgetmapped (58 samples, 0.10%) + + + +unix`mutex_enter (299 samples, 0.52%) + + + +genunix`rwst_exit (167 samples, 0.29%) + + + +genunix`audit_falloc (8 samples, 0.01%) + + + +genunix`rwst_exit (110 samples, 0.19%) + + + +genunix`exit (5 samples, 0.01%) + + + +unix`mutex_exit (250 samples, 0.44%) + + + +lofs`freelonode (35 samples, 0.06%) + + + +genunix`rwst_tryenter (37 samples, 0.06%) + + + +ufs`ufs_iaccess (91 samples, 0.16%) + + + +unix`tsc_gethrtimeunscaled (12 samples, 0.02%) + + + +genunix`kmem_cache_alloc (241 samples, 0.42%) + + + +FSS`fss_preempt (8 samples, 0.01%) + + + +genunix`fd_reserve (15 samples, 0.03%) + + + +genunix`cv_broadcast (16 samples, 0.03%) + + + +genunix`crgetmapped (57 samples, 0.10%) + + + +unix`mutex_exit (379 samples, 0.66%) + + + +unix`mutex_destroy (31 samples, 0.05%) + + + +lofs`table_lock_enter (189 samples, 0.33%) + + + +genunix`rwst_enter_common (264 samples, 0.46%) + + + +genunix`kmem_free (11 samples, 0.02%) + + + +unix`atomic_add_32 (134 samples, 0.23%) + + + +genunix`ufalloc (551 samples, 0.96%) + + + +genunix`audit_falloc (313 samples, 0.54%) + + + +lofs`lo_lookup (19,887 samples, 34.62%) +lofs`lo_lookup + + +unix`atomic_add_64 (110 samples, 0.19%) + + + +genunix`vn_vfsunlock (2,372 samples, 4.13%) +genu.. + + +genunix`openat (17 samples, 0.03%) + + + +unix`bcmp (45 samples, 0.08%) + + + +genunix`audit_getstate (62 samples, 0.11%) + + + +genunix`crfree (9 samples, 0.02%) + + + +genunix`kmem_cache_free (18 samples, 0.03%) + + + +genunix`vn_vfslocks_rele (903 samples, 1.57%) + + + +genunix`vn_invalid (20 samples, 0.03%) + + + +genunix`vn_vfslocks_rele (50 samples, 0.09%) + + + +genunix`lookuppnvp (10 samples, 0.02%) + + + +genunix`fd_find (161 samples, 0.28%) + + + +ufs`ufs_lookup (5,399 samples, 9.40%) +ufs`ufs_lookup + + +unix`0xfffffffffb800c7c (42 samples, 0.07%) + + + +genunix`vn_openat (14 samples, 0.02%) + + + +genunix`setf (16 samples, 0.03%) + + + +genunix`traverse (7,243 samples, 12.61%) +genunix`traverse + + +genunix`rwst_tryenter (734 samples, 1.28%) + + + +unix`mutex_enter (366 samples, 0.64%) + + + +genunix`fop_lookup (6,470 samples, 11.26%) +genunix`fop_lookup + + +unix`mutex_exit (135 samples, 0.24%) + + + +lofs`makelfsnode (82 samples, 0.14%) + + + +genunix`copen (7 samples, 0.01%) + + + diff --git a/tests/benchmarks/_script/flamegraph/example-perf-stacks.txt.gz b/tests/benchmarks/_script/flamegraph/example-perf-stacks.txt.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7b762b88bb679137c3796022e334dfefe79fc45 GIT binary patch literal 110532 zcmZ_W18|+&+5q6jY|O^C)7Z9ctFfKNw%ypa8{2kcHMak>C+D1d&VTPbGi$$lXC^br z&i>YV@dYOo9K40VSm^_hp|h@qwYedcwV|yMm7Tq={ueuHduRI(Kie$qR+v(#pY9j6 zJBwpslgomEzxF^Kv&u(q5i)RLNNZH><<{5NtKfo*Vb-N!#ZWCj9>Ma|=UTRq@l<2g zZHu>{ANezXsODXncj$Pj*!Hq&e>wId5~>JrFfPf}NxEbFtK@rge^ z-0pJpn5L$o$+}{7oW>Ub+)_b<$f)^*?@1gFaP$ z5x&^#sU2=+Jzwu=c?dpv8KCy6Jsrum9!??b&m1#vSb3QAa#rWgC_TPoc($vy{bJ#& z&RBAA>WbF9`J_>?0LD!+eXY!m8joGu(YHFf?&W^d9od0$VuNbs>2f_h-tlzI9c!f8 zFb$SJ?Em%+93Qt@P*3nk6sIdt9-iw~xL@us7LS3I_l|nXbZ050A4p#G9iRqZ(ylBx zTW8bL6WHvR78I8$pUdc(C#F2e>uC)i%W+SX^=_444u)2>?~T7Xdc`+u?|4ZKjUCnu zS3MuuJPSQ9H-fBC5bjhxj(gl{`$fG<9sr5bxI-*>QxwR#=)Dt5H7&qob?d3JeS_gacJtRoM1bGMX7Jpn*=JiyV} zpoR(EB^vEhK2xJ56ky0-J-%;g^GDLHF1?;r$mis?3ea+T?ywa{S?pimVgl)zMu{&OGNa}~T1Edc?gd@R~;z|3eeGCB(9rXLz_ljHKI2HgK zz)j#Dh&xj0?+vTT+#duFVR)FZzS`e@kN|=C-tY3^(~j0zI8<&DJ2=!Up2Mo^XJD|A zAji|~0$4)%e3y9lO*6kD)dWg4W(nC0Auh4bFNO+Jr6J9#OwXp1<$<$oEXi;^)v}Zi zuH}s#o@&|{MA@Y`_#G9;ODLx+TF^rxWcC@*MvBnsS~s4LH^zp3NgD=8sai*kO>uH_ z7TPrRYAwPI)x$#`CW5O6cFTdMGz}+%ZU<`+8Mh?7!5s01yD;$V0-;eccBxlotQ7Xs zQVpo?ZA0YKOJBNPo~Hzc6-vcg55rp5n!#v`#|n>53)%8!ILZ_b*UBy8845_1x=oE8 z>a^Vuiu^v|f}#>=g|-5ofNJV9c}Hl}G*K1e17-FwRKKZMDrSU2#Q{!NHn(s@6N@o#NY zPl@dlmX(a7k@C?}YO%*=k}$;(W%p;byYrqr`70A~QPS+V&$MibO=OD6Pb(FP{lod3 zOa=YipP?T4r&|OYS6ACuw5c+%!=3n7FuU)~pxf`puqcH0TTL8|M`>WSCQZrck8$!g+tXRyQVwJ{uyyE%Zr8fXQzm|#E}zxVggo;5remoH z8gu4W_8YP5g#xsP#R!astjO1j*Y4SD=IK|q6ZBhSjJ3!SIknXtl#~@CwXFJ z_33n}t>)$8Qq~)*nbey+ey)d}7oBGsoE{6Ca`_TV2R-+i`}0h3Sn~{Q3*5QUN2=Md zq-4_-X9A6A{=T~iNccW2LyfiJ#{Gh zPa}jl@I3ma8O|WqIX$(o{ndom`8>lrI}KE0F_Tk6(&S})O|}!~N7Sd)1v)R(8;W}Q z&7p9~wpJ#xVaO$@7H+#X?dm*DCJ*u$lq`fuS!$8U)il-F45+*STJ%}vC1J{r8-{O#TLp4OO9Q|(Mrqa?*g0+?lA88&DpoxE<3n8xG2k`{MIM{* zF^Yzmy)+*nML{TzEnCQtsQ+5-F~ z`$qdVV8$VyoZe&dShu{r?WSLDm)MSkhskbL%6V$HufgXdx-NNYi%mW`RZRA@RjB9A z%~lu2^>8JIbX=TbEc;AKC<`}#M)Ke|90i|PR{az73mJCV$_a}cT{iM6a`?H-#1~k> zT#-Q%Fu|3bgw#Q9c)NQNP@=d@B2qkkWnPGv>ZBy#A#5)RKmxv9b8dE&i@q4`t3u*V?-PIP7z>xMuUmhksoLlw*yAm`;?;PtsK z^)1H@m3f;(OM`yyYcJ9@D*KZ`E2-tGANwo%y*xE(u==b`^34-AFiqEiQbr=2^%DE_ zhcb`!tGSB$NQD zimGA_F=XA~WXizntG5)Q6cIes^poj=SiRiD7d#PSO-+e@|VVzAF9GkCiOVuMhO@MK+bcB zzJulWqep^Aj6=a#ed(BNLBPXk>B7=D-*(=Toeq0$&G;_JaLJnGa4hfZ3t!$%p7ei$ zg>^8ZL}fTX(tsm#U_7*c7#ihNf#u>akWq@COHzkEt~8%%RH}5v#`NSkG2^`R8~?T@ zUiNwMXCqB<8v&TGBKhaZAB_#&j5j6an*O|q<5TxwPyN~3VVJ;L$^y1*uXvsnZf>Gq zRaeq>^gdi}7wxH~C-s^D98lz;R zf>Z(nTLs)6C@c)cYT+dB5;rw-3X`q1E=xL&dro`B)!ppA4Tu*w*(g^!>ckHlU%N4y z;2sXgRGv7m{Y0L_7v+p*hIYuTjxQ2N!Ajc$$=#1AztPWukJ(pM9d(pnKq zKa+LA=I1paT?) zaj5csdEJ5a{^T=F@g97XdR29^uF757i5t;3ynlj?3>c8uVc4lOQAKCI&dOWO*#L&T z%H}!6snkK*7xdQpVE68l`%@Cd*uqDm&rNqDM4wg5;=qBuEzobv`%WwtSaIuw>|wLr zbd&;Bv5Xv&X1&+`fJ5gx?vgP4yuW%BXP;RFS`7b}^Yh}qIP0Pw&q#(r}yGb+L+~Hmu6JOP80Vbdu9l zbnBW!ppV#e_|(_r$^+AUYOg;6&kCDcoUtC(K&rn5_%7-7$uouT?GjAt5`E9PyX{LKVl75( zs0Zvk=qHwPPA~^`%YhQ^w*D(`@Mug$qq)aEs7$Iqc}YEp7Ld-9tBZ!v8e!S!viKON z@#z&H(lI}qn*z#;F$B&yd5HuYPgRj=@k4gk>5Cx7iBxAJY&H&iX&Z(8N-9-YR$tj< zLxIUr)`2H1SXC}1^I#p%WV_~r9qT4Ca^EgTaON7i=Wo-IciD5hv8Gsw~e|mwuqeC>H{t+X7 z$TDfpH<;>pUDI|Jb=Cv3UXj{6L8 zD7&wj+kt##AMODD1qbNI9$!%t52dWAuGLO33xsl_(5WDg;lJzz0>u0OC`y5%ukJZh z=iQOV;y`JVLr-Q7_7a!JoVX_wo;s{v&%`0Nd#F zG+$EX?GOAt0B;}`NOUs4{vB-USV8^$Vz97Y=0K3Oh!Ob{ zRoXw$Ez=F~a`XLVt-#a3CmQ{E03_PBz395Xk8o=j+g!oXRdERentQ#5GVX}8CR^Jfs+DYcl*H-VpU@^LE;iH-dv_fn} z62uAdnj%#y{a163dS!g1gGRQh67lg&Y;@ZgndbEQ8XOn_-n2=@!#WyA{!x*&HnLr1zKbL`M!M}js&5m$ZAZX>LV`lTpp(F0>#Qgpn z%m&jR!LJn?%5H!t+I?(7ONm#<4b1se#;=vi;!f+fvr(eo`@$K~bCHtZTVQ!FFD}Oq ztA9D|_wHz-G5tJmBoa^fk=*?o#-jiK*E$Kf$%KDN(q96D3 zz^)*t3(P$IRN?c&tgGEIY{_{lczlRwpiI%90(0b&M+PN?AoGfM2~C9x6cM;6(-MZm zTJ=G%1zH#PORQ7I+c4oh5prOOG%>I-7L;_<0pNh&xjXaFDiUTMNyjj#8xGR8YCft% z&G8U5DNPYu9wG6ox6T^Zt5o3o*>=a6`FxC3Xw!=LKtx)SUMdzc+yptDktrN(nqnDz z4@0S?zCzg-G$0ngpjc(LT5`0$PM>donvSX}-cH1%q|I4#+AXMMVR5CfJ z)Dc5Z-Va$DkA0=LGJ(Dlfcw|?MW<4iA>ZSq!ItICFx}S-jd4MMjAy_H;<5< zP9d>wjiB@kc^xbi=F4R@F=p%Dmq%M`g?S+d3$zg(THj7+PzJP-7ZYFA-52pI`RKA|h=tk&_eTw7-IBgN#Z73BS3kToYhT0+?j zr-rq|gZf+bvJAi;-2!%+DHK_}x5k2Hsb>Z*O6qL{s3@|21;I|Yns;s?aiY`qkSv8u zn{qb;wZop)X1Wf9HA%R@op63%ae;yHaKUxeA$h^U`5IC9;kxSJeBl220st>KEm2n- zxIDf@Ff9>wHJL1F#twtST$&}`1?)5x%azUk)!tD&VyVq$NDKZf?A?WdR+MV zE)mw2C>%YJ8GT*L`Bn9qE^YM94P!$r9z|FALD?mduLJg+i^`sEdf@*LvOohqp_%Cv zx+nyEif2d|%>_?U`?+6ft2u9(mAKc+J=>u@FO^)o8o8AAkePW+9HwJBxY%l$R-$)e zHIgH+3=*lOP145HkOAN@l{NGyoNwggmz2hjicPfw3W;UH#3hr?95?;X#Z7F-{WS&Z zEes7B8W`^8jp`LG3}cD|#K<|+NT_v8IQkLF7A=*txz3)}A(l`cSB_6y&OvVe!rwKs z&c6MI-QI;rhwEDUGQLnUdW9{KG|C9i;zP7Y>Do5H(&0&J5cXT@@ zr0EHfQ*NigE!S_y1?5J>QKxT4iUbLj)n15>!=37x2n@+yc6I4xDv__jCE*@xM zd)Cgl&NuCnl~5hqZ{OOe-fpP7T*IywNIZTY3%lK%o z#pB!mag4Qt5aDvc0#NoPOB=B0QQPHk?2g>;rJSyeL@k=YxV`PJ?`&;xiNY~Z3-v|- zcJyL&#t|==a}?)4 zv~ef>%sY|D99D`}2)PeX0z1hYj%(|Dya01M=;8e?&?`m++ba&X4*z~$`s36Dy#MRm zq&hY$kw}4O)_I^{dp46&ldWxvIK37~7Yyh_iW~Ib7iA_SBsjm1AWTRLGCKS&&`d}f zPzhs-SVLhzmrliO3QMuXKbhhcwLp(x0EPhnpA-LTd{nuUz-m=PRVEzg>+F=x=hkKY zp^=Mo!3}yjF+&5cpH`nP=dY*IHykOYK8HUSe^KVG(={m5J7QgMnrki05Zeqa@JCcFM8)rRyXN0ly0qw5EKy zzS+J~Ug<90440Tg$vF{G+E^qvk;Ogg#lfVud*7UPw~l}^Xb|RaPjHq%?;&Q;Qx&f5 zPN>x=QVl`9-eu6!RlZf)pE(L(eq2-j?o+c)J2x7&putmY+5YTa{isft&p^oU~UxY#Q6%oAJ;!0-)=w{E7hRzO8i z-_7&JQiIv_ruj?KdGZq;;v7vEI6;5%m&W1pxVzez4*V6+!n})kG{8jHB}=C|6J~q{ z1bGocz5s!IVr?8bR{E`>@@G2fYxxh@~psqWPI!K$<`HKa*Lsx3Qn`N!CMGz$=0ug zf*Xcj+RF|Go-DDo#Di4+&gsf7|7crL5(gO$h5kzXZs%##8r<3x{C*{WE1Q;SVzaDM z=g|=z4pRhJI0ttk{laW7#|8XsTwxz+nZ7T4&<6_p2xc)m4v}a!=VUp2#qc}Z7WI1@rNZ;ik8#!`q)HAPW6P1yz3O0>9Ym#*SN1)7-8 zqd8@2)<6rZ%8WX*I)uN~bzCP%(z%?H_PSE6aYY89F@Sj4zEE!h@?MNcc;i;#=OUR= z!1Zvq!e1EhAghV7011ueHp|k{iNKN-SAH4ZvnFiPHR5AYK}sU9V72 z#qYlO6=C+?=#mE(VdmQ=4e64DF#x@D3mTzx7@`;GG(C*6w<+iyn^|sGA&u}tm z5!GURv8-t|8SgqDU}R zVA;73zdmI<(#}+tr@AQV==W>*-U@k1K2kzk0Z8*FY+|iAzgYB3a#R7a@YY3|1m@v* zvC-Dfb9u^9DJm28*RM`Bg2(J%v=qh(0JD*|)Uf=5k%F77k-sZ`PzKNdu}1#-;Qekj zQc8D5nk{Zo;QR^Ihu(*0~cjS+D0Soe1o9Jo- zO5OYNiBuF2=3zKp=+EtRmg;Yl35=_!8$8c(JH$;Wq)QFruakeZ4AOW;s|^mV)iauJ zZ4YBHe||3s;{(&O|FJ5n%{v4or}ZP&UmAr=_0E8IspYX7@rXhNoV0@59PhT*N^&4DfmK^ zojDwW1$hL32>dVZ;1aX~BBYXb^vcKOwI?hOPo-JaxoQ29PNms<&n7#2#}LIO7$V@` zZ#^o2e_;H>WDiI8Dk7HHul^<4PaZQqTluw;O9|Cgj*i3EXzNg%C8!s%bL|sBWzp) z9o7&8v;jDOA-*&EowFCX7W`mt$OE2J5Bu6YA-y8TF%D>!9@RkkO(r+;o zD5zS*hE7Uk`oV_6!<)Lo1%WR>|HDsSJ%&Ms-rITS7zsrmBEf=nl;ZTK4=H2^)%o!stii*LtSwC~u=S zR`v+fH@%JhfiG11>pm}3E#Fa|)lW=!_SbD+A+!e6fyV#DZjw>Z$Ub8Xcu*!H{~{w+ zD<(J346K_Igb1kf!@xThL<;4r)w|QTW_goHP4aHAUrkJu0Vno~{|VdkT5ZX#ZY(tc zNAsti$l>tnn&Cz>xBz(u_B$b8t)i)t$*r(Szc{1JB?!{V#!l9~#BCjHE=iWYXJ>!I z6R({jcB2xw4=n-lTua=x+atUt>(gEA2yE(ZtA`)9yE0hvYdKt4$>WUsDApXezM1@0 zV26Xh1nXk-=U0PY1h*_Zqzwuj3fpudz(zzf{__&H4!F+7lMUDo@)rjdcM5iV0dTTg zusR4OQT~`>oRG0}HyEM7oJM*zWBJPDCQ{78iJj~N>1SEYnA$iAJY!T<**YyQ(j4%D zZ8>70uZa?cxvKYP9BriJE!H1$DGrSmuNb1G*{9qi?NubyonA+;M6&O(Ii6nOraEau_jACrEOKH$N1Hb5Tnc;>Z~$ z)h3fmP-Tu3+MYq-*=Dg!3U644YSW{Gh4G!tf2==o()+vNsX+EkR9pZeaHypp9A$`( zEO02k3Q}h_IEw!>@D1XEv<|oT^ETHpiB$^&vl8{xmPYlUdyHkWvB zoD{GQLzxpWRtx;Im)FCOrIF}nPvGpWSw!DfQ9g`zu3OR1G89>RMszW}dA^umF8@6L`M0zn($!MnW4*}E-L5yXo zh7PJw?D%1d%lARkE&f&HO1qmfo2=3DL1@Z7jre`YbmiZN{}2g4QxJ0=nZ}qZzfh?* zxGyxbwrSde9bWk7$NtwNw?aemNa50HRe?iUIP7-Cqai!v^`l;1OHfKzZE2Y3hE+fZ z`is$B>V_59_Oee0`d94VUaCI0mV+msGuISvnysxr*(@$0vbTQ1d;Kz9-US{l%M07Z zIzo|>;%n_k-p618qe~>08iwhYss=x3wLsGHu|u-O9@oIaXHBP9%!B{gz>oN?tOu9! zbpqIr_^X=tJ5CNWB88zIPctHO!4kN-2Zy#R3tSSd*}4+(xJPrtU$32`y}JnUmRJs*{g=BJoJV3@@p+P1|SrJln1$w?pYQs1oG*31TF}*Rmr` zIB5jPJ}=w*Go#wfioBiLW<~S_MaX89J|n#Tj8wAp#VSIZ3^@tuo1x2^caXpr6yu7g z3vOAlWe|+-)p!Z!HQXrxi-#D#q{LL%-SMR}WUNb8VApTE+sWjwiFR7}mX5&lRyA=z z!)*j2x%{@j3s;ARRM1#>%@jh>4}#fYw(MU<%yH-2ooRG-H&J$SAZyis>bo$sCF3K5 z@D>I&%IXdsjrt zvC}@4JfTA!6!(CV)!8@7xiBBf6h!pvgotf&9L^T;>wGxwTN>G~Sq5fR2!7Z$qsDNm z<0X5H#mZ7F$Lvq&1&2Gatovy>5JI2_%`Oy8zXy%r2CxeChsl3}jm)7-nKTc`Nmfg_ z&|g2;VfEUfD_cGhwvc)rA9qExN3rWA%A~QV>^NIw=4KXu6mx1*4x@Ory0fqFZ#-r! ztN`_ZdG~^Q?II?~6w8q7H)u&}+&rnIY`6F|0rzg?gW1RES^cz)BX7dz0fm@WDFeJFyLnXOCb7<%798&6GAAA*>VT1}a+On>BU=>!M;}6x}7Aqjf$#>&U-6gvaK11N- z60H=0c<@VhtvJFyn0qYK@mC7G*z+`H zv0G3$#BJm$XO^Kvj(mk^D^pMrCPFlmH1;Ks%w~>(kU1q#u;0?-r2|%=R_sV%S$VpM zJ)_%$r;BPqwAFrjZxf5KM-WZ9OHA* zN2V~;5Sg-m9|cs^$>h*)A83;Gb4H8LCY?gFtD(T)nzJ3v3o^-uYYG0x9FVr)2xo6T zbu+}xU5J){KP~(wrTk+L0b$7yF~+Q7+)^6VlC?igpWqO}YxG-noD;t{3L3soW@~O= z+`aC4!oDN$$m&1#;(;{55hJ^dp79-Evjn2)dQ$1tb0&0FJ{;S!kvlx;)NGUa?tx8y z!-XKj9F?nUjq@XmWuaiwlC~hAlP~J6>{ea$QlUrg?&w$|>Niq^X0W2BEa<&LM>5+Q zVr1IaW1(epCzEAAtIaSwi+*)&gFZRGb!`=@`H9%ymMg~W0$7?6w8`m8tMBaqkDxy> zDy=YUJ$&;`nU*Kp5M0;1YQ{s|^n5K5z@*T^VbHbMxUR&V4n9Fg9uLQ_8~p^wQL_9Y z>C60ajnR4fE0g!T(-0=r!j}z;^rf45N7;#sP^NeR_7Tp(5R<@Q z$0Qxve~L`)ysIp=r^c?#T|`QlR<(miO^7u%f*cM;#>W~O26Dg=HDYaQ!IH@B!uhhaeSfKxiwPJPETNcmDc}fS*3k^UE|Jx+NcLCKQ zq|CDKyZlwM-p9O3ICtogXuD z)sLJP_YeVh@`C6cN9!}@2G2BfD+cx2xMH#aq{13g5#{c`P2rrnVG+=PzGfuD@LNqq zc*-E-7K3-6k6erqyVO^RA}Oc+tLf&W6{TR&tU;eK;M@tG8s2vvD5Lpu8ONrEtW`w) zhI{fR<;Qf1ss!z~8{%$SOVrLRXCYe)G)pK-nBqzK04q&c;ErJ-wl7; z>Hm;;sW8#Rmd#dIx>VuZ;P71NCLB8~R3?B6K?EHI{2zLJg%QX^cQjrxR6oi2i#Qn4%|-D_7nV4ref$j_rk8cR09S$4)C++^z+t9_Y}aS(QR8%j%Q@ z^Z@>cPk1Pj$k7ZC$Ri0tqrC$fy}b%^$J=xJNl0KZilAa}e>vlc!xgs^GKL}|%ODY? zLm^PDJzjKGWT`J57M#vp(h+r6kSvz{451h+^Y7)L(h5p3R%iXI2hh#O1!n9Jk1Y$Q z-M%3~*EDgaWacT0OCjPNVSwbf!FB_o{CZ#gRDMm#(z6AUB+M3@x8v+lDcK_BE&X?BF=X~T7f!r{1ODxJaoeyXXq(8AJG|S}WJ(E}G8auz zTLGBNev)|Rkl6aP7D!A6z=W>3V#{Kh1p;CB#zIp8`j^Vu`cZ{%Q($2F`y zzre79!x9hW{M`hnBU&wyTaz(2$i%u-+HwmePRDtrMv;^{T@XIFR6nJ+g>w`TBrLd8 z(pq0RVuS0i6%Rz1BQ`0QFP%X)@2|w_c7$F&$6Enygnc)zzriIZB6Xuof?JCeFOopO zi#GbbcOq4XoP~;LICg(nk|A55iLr z%GDA2LtvFHZO&r>+@H^XJ%WvfVY0+Cm^pbq>Lf-%Fw1Nj&qdH0q_NIlzpH~p!siSg5XU%YAY9)zIv zrd`?ROwDf|zZHcC``t??zQxq=y==1N5pznA##H_QEXnB8B0Xnzip zy+1lTk9d=hSy={i7DdSB`&p>IS-y7;M^&QZ*DEv;;}S z>Wch2tV-LyH)fp-@#iIqzwzUHX!w1nA23lq9*Q0;FRzvdadM&9Qq5?^ynbNV z%5-ljx}2e;S*o!HAWFgD9B(KvQhU+J$hZDFf7}8-mj~nfS~OC~UVoFq0*_G;(SDqo zL1aQ>atd%EIHC2IHDBAb^R#I6e)L2IrOTpStEJiTo32E7&Z_R)Bcl!4>MbIE_Ev5G zP}r1^l^=AeaOV!E^6R>e7dV)KV={Grt(0=dWRTX*rSBKAaW7eSwemq87jP2@vsp)uHyCTgAG7hBhieR1yrWQ?tlr|Dqe2yJXB)duTHTeQ%qynEv26Q+pMZ)pH zYa_`_dB|GYQt??wSd?qw^6!3Aw zCThy5uq94r?y3jqMYuIFP0MPJ-0^V1SKJ>M0rM5X8YN*iaI9$4%OHI-~%#$}sU#2;!#xb|z8rLU1V!KwLa4By&3?I+F zKTl6>abnZxX0$lY9`nG%eht!{k@@Vo9XK`-cYRevg7{x{>#rnMB$v2jpYu` zTkd1+sXeyzpoC(n{N(nFL<3mnJwF43u_IH#6x+D7fxPIt6z#LOCVj|l?P;ltEN7%` zu%epIslDuxuD*2iV$M9!wt&eYkKrBXz}lDXj?aEU&)_jUnb$<#IfS_RMt ziiUv=6`5^N?-or{rLt7f){~vPJ%mb+p?J7{@M{z7tnm7{g|4|;De?8;?Rvw*`47+C zK-Xag$tfi}N)*YbUqn9zYWd3znd4OGt1Y5MG|xyelqor~qRiT*WV;>n4oo?B^e!F2 zGfT@9T+kz5vN`k+Vh2iqzlfFGln64kS~E}V_l}R!qkZOgq1rw!D0-Vhx8|)!Oa;;S z@E7aMMqDCOF8M8FUc`B>TZtS!#1T8%@lFmW@CE=hn0GHSI(MTU(klQ1Ag^%#(%R@` z(=j9j;Hn2>Wz}akO-FbWIebRRJj$V*VI%~L8fB|h1&1)*sA1NYes;cU zKL5f+Z-&0fo@Q_rP^&_Y6A~yK)7%a~LGbg_Kg#RBitUeUoek6C^vkgAf<^JjPEcQN z99X&oqqFl0t#BrP{@UD~!R58~>Uc*OQTr?(-kJw_iI>*$#8Q`A+JCyMDgGIX(QxkCZg>1rSVf)N>%0%KeMhi?N zFW6WjF@KtaR$=(y{wElmJ3pj$e0^u*Y z(gMj5jjXw~HUfT4VMNrD13Q*u$#DtL*=|diZN(nAKco3ank10O*UY>X zmzx}?Q3~GYFzj;psWo0NR`YR6e$^=w^M){gwxtf+0=EA-wtY6!CGYk%_rnV4Uv|GW zN=gxCp3m6w8WdT<6PvEA_=c0atH;lcBqrR6K^}T8E@4G@V*xS=hLI!z{X;j9F3j=< zuIh#CaRi6Mh;F?jSS+iVle<`Qoc*KhUQf zXl|Pe~)Q$tg8wjC-z@ z?aMI_4{?@cVXamC45b}Hjc?7`9p_>n4E}f_tV>bMuar)~9*i-eE<$~}u~_YDw{+!& zqigK9*i*@GL)~Q#SOYOaOq=@s@8AM%gc#32O7x{_)xeH}O~VqVkszAXL2KMNAKwAB zsO1CJpTI!a(1;Es&aEtqr-qh~;s$f3K_l@iBw8myhk)O0XHmq)4Vm|0rB6vL)6*T_ zyR=Zg9rxY##`)U?NR;5?_h-eN_AH#J7OviI1Lxl?MaWY(IYpA2hd#BUkQyeRr#x75 zrQwn9ps97kh37MrgdJ-;3F zs7BG3hw4y>ZJnIGFqHe?F9?aNw+J^Jpi=*K^=^y@=>7u^6!h)zxUt@%Tzs^vHf1V* zZ^1Z$PZ38H>`mm$r?0Jy^fj0K>ut*ps#W}*T|dD74b~gSe7;O)FwlVlSlK=i+kD=P zR53%+5Ux+m#k&}y)qsy^v{xttatU{OsK44Y zv^0eLesnX9pC6Wx|7iFQ6#Uij?RXwl?J;NC6MfQ<`evj`ZxMPilP)O_5P&)=>5+!gm|bdr7KM0&6T;!dYQG5#ABP#^i-UAzWu`3N z|FAzkbDHd!Es0HT*j6j^lKW8D9pj*x7b2l;@0L_zRe?icXh|O!U-PSq&ubJ?y*LwB zT04pI-KzE4sT$80QUe3%nwh&OM8V~jbUHVON#y9cqJ%QD0)D{kNxL#& z30A3Nr);U_sT+gU`SYmF9fS=s7jLYCb z(m!#20mt9p*03K?9+G)Nh40`2WZxdz5H!v1Xaq(A@?W$Gccc-fjXOlZ%@vxj(cB7W zf9WXz00Vl1Gi34Mckt^8Hwvai(@1qwtz3q(-XYtX8@u~k38C0T8JokeW;nOdnMo|w zVg9~+XU{`GDg}Q@V<)#ac>D8UbYFnn9jSk$+#OCCX5QH?yii=1FqwNL-n%Rcrfse} z`+TJKT)(p`h5$rSf)X|+`(37Z(k3M^-FTrmgjR;LvG43ar_ikoKM4NB?%tD#d%1Y_ z5{emnt}QG&z(fRpZz)_EXR;$U$+EGSz2=fNXNjk+mQHFnFw6{&gK$UV ztzfD!Wx^AGGNooaj3w&!^oipy9c#v#1?w$sm$saGhw~H`eIG5a4;$()TMlQxfccKA zM+#{j=1qH~KkocG{9a}859{6*j9(|m#}^N8CkkHYKaV@Maoo=W)V_qDjAw8ZEoGy( zKQG(8PQMU&lp}hZ6df9*98jzzEr0H2X0$9>ZbITSwDlUmBlCHw{02&eF(VS?>Na{2MG5Dub50)M^K z=?Z#;UTR#K(dp{QGRKgYo6FGaT}buuT%w^GwYS(tK*t$1zdvS<@EoB5SG#qr1XBUw zf4I<<8RQs8TbCx1KNRtmx-!daxvZyPn%qzSjB4}5%VO=)i}TbRu_DqP9RgprUv2_@ z`E7oL;H`d*cpmhtp?MyWG|V0C7?&x<{%blqA4`jCfX&2=p~$h%^?f=TNrv4&)~loZ zs1n7th3zus)(8O+2>JIM8stvn*R4MW(bzn#b^4*P{TgS(@2_4StrOaT*nxGx-t7T= zO+Nj?YEMAc|FQ?)YGnA~ayT*yxQl4!u>MYj0;i9<-@m-G!R?a7q?t{h(%v5D_y<7AZelHl*DRFY@;BkA>jhmy6cOJCNw*=C!W`9dp#g+Ct&_)wN8bk5kP1 zeEHd$3;Ur5Ms`c>R%TazoeSHk4x1we0x=|BtS}45};X9>-rGI0SchcXziCB)GeKaEIXT?(Xgm zL4v!x1b274Cz;HApPAqP)~9OIXID|h3r_FuwN|ekP#Tc@fmm^zmoRJL&iOe}jjgDI_tdbKLuEv9n-Zn;0Lh+s*YZ!_WH^cK+dYVe=cAY}q5Q zXGCWfTL51so~!I|*paIUBgc`QB!>A@|84x1WnI~%|#-W~J_xPr3 z1gJl&X8M=fpn+i~qFE^w`GL&**tE+0;~d-JzI*bAmcxvn)gxY~ib2|DGqC3aA52U9 zW__-f4X;D=h{G=?_4K7xLaVX5LMCgLWHRv_X#R1MG+XnpXhexxZH2LG=EN*b3=MTi z75H+Rf<{HJ5)J8gPm#VA9sO#K;e?8?9BW4t2e^Hmgc`CHa-F)YtbIo+o55FY`8uhm z=+m5wyMf7DrD2Pr!NLJ9Elk3m3hBZDzP~1LS@$r}YPR6GB(qj(@7_^ChrW=Xmi$~u zuEvIV*t$IR$oY>2&jVcjJ?dC?2#KVNue$esYw%9|Uy=TZh3NUz7$;b_lV|uPlXI*- zD+(b4T7x_xV;G{9cM4X}deh%7RR`*0D?hdQ8mIkPjfu0F%LoN@<*fT3 zUA|91w40M4a3bIUd!3j-!La`r1y1lCSKG7Jt>mK}Vm*>3vbjJ$9=@oT&q`$H@H7&k z%IOzB%zSS?D9JvSb~OGg9~}3Dhw6qO?edM(@+w}AX?swy4~xkrG8t>+x%YCnxQmxW zQ+cAHO2}(SmDtprPC!BMH+Vpt@Xt_C0UuiWBk*eY6iwQxVrJn>j(^7|NsbhJN8jzY zHFrRVf&ZgR=Axqb`TccM154C;P)V$tY4J=DU*JDFnVvSqk}M1LF`b>o zVvQYRQ1^SeG=ZcLttz3vq3(N1ja8@a6l30rS_D37#UovrvG%gLak3Xs#brI;+Reu7 z-8_&7ef2hVYl5^l=f*F)yD@FYM)DV_o$i#ro(FW-(Kp22tp2k})D3~i?GlZkH5a=h zEc-aU7Jgr4~{yf9rG(*`2;}nLus&{8e&#(&nG~!0Fa%-2@)Mk>P z{SnU{uV+}H#u?B;hre6}#y#Tk+`IcsbYvP64ULRyLgVjlIG$Y7Q5oZF@t3n#m3_Mc zHY3QGWdeqOgUcGUG?}w;8Ff^a5l8dOM3V${#XC9|9o)^o?VS#l`b(GU6Q z*KzK{#f&^ong1=;qtLl>n`%|);g9RLiq5qL>;ik$oc{lvo%7U`nPY2MAfyH0Do-R{)XXK> z)jU3s|3IJNW$;yCI^`>jb*a>7kcJ0F%u7U+J>Cpi)<@xm_~UNy5{xRqiP5(7`vBez za}RtV>HUGO&p<3iF9aSt!Ki}ekouws)V`{SeWBm`ppmJi${A{U`nW9gjfSl4xy3yx zNG%InaB~WVL~3y!1*e{^RRYxN5gYNzlez6YU_#o5%{yu3l9d=Z0(R6Y6l=AW+^R+I zpGjQn?PQMzr`oew$f-V4aW9#GuZhzrASQ4j+Ss;T#Pv&jN}QWb^Bq{x2#QdjzNGGO z^^!|6nNBSm37Z+mZd$qh;sB?x+${V3oG%6nVq(${cxR;L#8N zgP(?>>rgSn`p~^UKAPEfL;g$cCE|QW#DytL(LT;>2ZfBIinJ{8c+H^y^T2aT#tE%Q zmeh1ANfXLXNA2CO?>(>Xw4nF&t6fcbpJ+xvvmD=Jv8R8MZyYulOti_8+gLg1d?h;3 zb9rzPRdYpHr}-h7h%1S!=fb;n>%V{;h=d`jOW~6P`fGsan?nNnsE}Eka@5EtI)}da zlulVXNF<6z8PEI2EB;cN>+G#i2xnDrc_~t%ee$>-R~K^RxQmSO2CZ@mrR(ym96gN9 z3U-Fx7COz?>5Xrnq54R8BJAVzV3JrT%T>V^!+UB2-|){I8ob{Z*i;77o@^*TvR?x} z0YBrxqo0G8Y{=CVhGvqyWxf5ur1%9aO0g}|`jH=%-%XRcGPvRofGVM=Q02^x_K4m0 z_6}9Tj4!GgJq{?z>c9iUQUx;xKO65u-9=Ud~T16Qh=ITl*S;}ob8{s(@xc2|jVr^2!Pphux{Cj#l`A1H)+W1{KDj1!|f zZsEVnMJmO+o=Q;S{#t8?&%|nT(-H%!2Onv+e`VR|MgWU#MwyZq8e2)sworwuq#yp2 za(Afyl%JY%Oc?0xzj0&@*w-cB08XNx%r(Hk2jZ%RGILx)e@FSpjU3QS^p#TVl}FcA zLg3u|dO1Rq{4u*%#sMFgzXslyQ;j?u2ZNJ?)#6bs6mS7Opl_&uBm}`Lud1buqkvzm zGm>?sJHuL2Q)vFNS|zq6PgK`}2R3b7z^&F8P#ilc%cCS+&1gwwWG8mhIFf7cQY|6E4J!&gIXv~JqmJC&c&972E#JUg z|CI(CefpIK19@U6(md>e+CO{gj59T}ssNlCkiBowmZsPHLYHTzWz{Ht-dt<&$}BH< zBV0gW&i|C7n2;-zT61ZSG>@%dwD&?_9+JnzjKfe30gUtE5Ah&I1;AYXA>2$YES%I) z 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 literal 0 HcmV?d00001 diff --git a/tests/benchmarks/_script/flamegraph/example-perf.svg b/tests/benchmarks/_script/flamegraph/example-perf.svg new file mode 100644 index 00000000000..d4896fc3503 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/example-perf.svg @@ -0,0 +1,4895 @@ + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search + + +rw_verify_area (9 samples, 0.68%) + + + +_raw_spin_lock_irqsave (2 samples, 0.15%) + + + +sun/nio/ch/FileDispatcherImpl:.read0 (31 samples, 2.36%) +s.. + + +do_sync_read (22 samples, 1.67%) + + + +sun/nio/ch/SocketChannelImpl:.write (209 samples, 15.89%) +sun/nio/ch/SocketChannel.. + + +timerqueue_del (1 samples, 0.08%) + + + +io/netty/channel/AdaptiveRecvByteBufAllocator$HandleImpl:.record (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (86 samples, 6.54%) +org/mozi.. + + +read_tsc (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (14 samples, 1.06%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (45 samples, 3.42%) +org.. + + +netdev_pick_tx (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (33 samples, 2.51%) +io.. + + +java/lang/String:.equals (1 samples, 0.08%) + + + +system_call_fastpath (7 samples, 0.53%) + + + +GCTaskManager::get_task (1 samples, 0.08%) + + + +security_file_free (1 samples, 0.08%) + + + +apparmor_socket_recvmsg (5 samples, 0.38%) + + + +itable stub (1 samples, 0.08%) + + + +skb_release_data (3 samples, 0.23%) + + + +hrtimer_try_to_cancel (3 samples, 0.23%) + + + +default_wake_function (25 samples, 1.90%) +d.. + + +__remove_hrtimer (3 samples, 0.23%) + + + +epoll_ctl (1 samples, 0.08%) + + + +fsnotify (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (4 samples, 0.30%) + + + +tcp_clean_rtx_queue (1 samples, 0.08%) + + + +tcp_send_delayed_ack (5 samples, 0.38%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +tcp_v4_rcv (87 samples, 6.62%) +tcp_v4_rcv + + +aeProcessEvents (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + +schedule_preempt_disabled (2 samples, 0.15%) + + + +kfree (1 samples, 0.08%) + + + +sun/nio/ch/SocketChannelImpl:.write (1 samples, 0.08%) + + + +sk_reset_timer (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (6 samples, 0.46%) + + + +remote_function (4 samples, 0.30%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.skipControlCharacters (1 samples, 0.08%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +mod_timer (5 samples, 0.38%) + + + +io/netty/handler/codec/MessageToMessageEncoder:.write (31 samples, 2.36%) +i.. + + +io/netty/buffer/UnpooledHeapByteBuf:.init (1 samples, 0.08%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (2 samples, 0.15%) + + + +enqueue_hrtimer (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (12 samples, 0.91%) + + + +cpuidle_idle_call (6 samples, 0.46%) + + + +system_call (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (2 samples, 0.15%) + + + +[unknown] (6 samples, 0.46%) + + + +Monitor::IWait (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.bind (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (40 samples, 3.04%) +org.. + + +__wake_up_sync_key (3 samples, 0.23%) + + + +system_call_fastpath (1 samples, 0.08%) + + + +vfs_write (85 samples, 6.46%) +vfs_write + + +mod_timer (2 samples, 0.15%) + + + +rcu_sysidle_enter (1 samples, 0.08%) + + + +oopDesc* PSPromotionManager::copy_to_survivor_spacefalse (1 samples, 0.08%) + + + +__wake_up_common (2 samples, 0.15%) + + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead (637 samples, 48.44%) +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead + + +_raw_spin_lock_irqsave (2 samples, 0.15%) + + + +ScavengeRootsTask::do_it (1 samples, 0.08%) + + + +tcp_urg (1 samples, 0.08%) + + + +aa_file_perm (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (21 samples, 1.60%) + + + +__remove_hrtimer (1 samples, 0.08%) + + + +put_filp (1 samples, 0.08%) + + + +skb_free_head (1 samples, 0.08%) + + + +apparmor_file_permission (1 samples, 0.08%) + + + +ktime_get (1 samples, 0.08%) + + + +JavaCalls::call_virtual (956 samples, 72.70%) +JavaCalls::call_virtual + + +__copy_skb_header (1 samples, 0.08%) + + + +__slab_alloc (1 samples, 0.08%) + + + +cpuidle_idle_call (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (30 samples, 2.28%) +o.. + + +ip_queue_xmit (51 samples, 3.88%) +ip_q.. + + +org/mozilla/javascript/NativeCall:.init (15 samples, 1.14%) + + + +tcp_ack (9 samples, 0.68%) + + + +sys_ioctl (5 samples, 0.38%) + + + +fsnotify (2 samples, 0.15%) + + + +sk_reset_timer (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +lapic_next_deadline (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_Server2_js_1:.call (79 samples, 6.01%) +org/mozi.. + + +sys_execve (1 samples, 0.08%) + + + +perf_event_enable (5 samples, 0.38%) + + + +sys_futex (1 samples, 0.08%) + + + +java/lang/String:.init (1 samples, 0.08%) + + + +inet_recvmsg (7 samples, 0.53%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (2 samples, 0.15%) + + + +io/netty/util/internal/AppendableCharSequence:.substring (4 samples, 0.30%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +__libc_read (1 samples, 0.08%) + + + +tcp_sendmsg (77 samples, 5.86%) +tcp_sen.. + + +cpuidle_enter_state (12 samples, 0.91%) + + + +flush_tlb_mm_range (1 samples, 0.08%) + + + +ksize (1 samples, 0.08%) + + + +cpu_startup_entry (44 samples, 3.35%) +cpu.. + + +pthread_self (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.flush (2 samples, 0.15%) + + + +tcp_rcv_established (23 samples, 1.75%) + + + +org/mozilla/javascript/BaseFunction:.execIdCall (48 samples, 3.65%) +org/.. + + +lapic_next_deadline (1 samples, 0.08%) + + + +[unknown] (197 samples, 14.98%) +[unknown] + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (242 samples, 18.40%) +io/netty/channel/AbstractCha.. + + +bictcp_cong_avoid (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (5 samples, 0.38%) + + + +JavaCalls::call_virtual (956 samples, 72.70%) +JavaCalls::call_virtual + + +resched_task (2 samples, 0.15%) + + + +sock_wfree (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (4 samples, 0.30%) + + + +io/netty/buffer/AbstractByteBuf:.getByte (1 samples, 0.08%) + + + +check_preempt_curr (2 samples, 0.15%) + + + +io/netty/channel/ChannelOutboundBuffer:.progress (1 samples, 0.08%) + + + +tcp_current_mss (1 samples, 0.08%) + + + +__execve (1 samples, 0.08%) + + + +hrtimer_force_reprogram (1 samples, 0.08%) + + + +__GI___mprotect (1 samples, 0.08%) + + + +ep_send_events_proc (9 samples, 0.68%) + + + +schedule (11 samples, 0.84%) + + + +org/mozilla/javascript/IdScriptableObject:.put (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (409 samples, 31.10%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_.. + + +io/netty/channel/ChannelOutboundBuffer:.decrementPendingOutboundBytes (2 samples, 0.15%) + + + +ktime_get_real (1 samples, 0.08%) + + + +aa_revalidate_sk (2 samples, 0.15%) + + + +stats_record (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +__alloc_skb (9 samples, 0.68%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (17 samples, 1.29%) + + + +socket_readable (2 samples, 0.15%) + + + +ns_to_timeval (1 samples, 0.08%) + + + +ip_rcv (33 samples, 2.51%) +ip.. + + +SafepointSynchronize::begin (1 samples, 0.08%) + + + +java/nio/DirectByteBuffer:.duplicate (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (20 samples, 1.52%) + + + +io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read (939 samples, 71.41%) +io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read + + +raw_local_deliver (1 samples, 0.08%) + + + +__dev_queue_xmit (4 samples, 0.30%) + + + +skb_copy_datagram_iovec (3 samples, 0.23%) + + + +apic_timer_interrupt (1 samples, 0.08%) + + + +do_vfs_ioctl (5 samples, 0.38%) + + + +do_sync_read (8 samples, 0.61%) + + + +system_call_after_swapgs (1 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +call_function_single_interrupt (4 samples, 0.30%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpMessage:.init (2 samples, 0.15%) + + + +rcu_sysidle_enter (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.end (3 samples, 0.23%) + + + +clockevents_program_event (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (9 samples, 0.68%) + + + +tcp_try_rmem_schedule (2 samples, 0.15%) + + + +__schedule (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (10 samples, 0.76%) + + + +tcp_v4_md5_lookup (1 samples, 0.08%) + + + +CardTableExtension::scavenge_contents_parallel (20 samples, 1.52%) + + + +aa_revalidate_sk (1 samples, 0.08%) + + + +__fsnotify_parent (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (7 samples, 0.53%) + + + +sk_reset_timer (5 samples, 0.38%) + + + +__schedule (2 samples, 0.15%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +io/netty/channel/nio/AbstractNioByteChannel:.doWrite (225 samples, 17.11%) +io/netty/channel/nio/Abstr.. + + +timerqueue_add (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (2 samples, 0.15%) + + + +try_to_wake_up (24 samples, 1.83%) +t.. + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (4 samples, 0.30%) + + + +io/netty/handler/codec/http/HttpResponseEncoder:.acceptOutboundMessage (1 samples, 0.08%) + + + +rw_verify_area (2 samples, 0.15%) + + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +alloc_pages_current (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (7 samples, 0.53%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +tcp_transmit_skb (1 samples, 0.08%) + + + +sock_aio_read.part.8 (7 samples, 0.53%) + + + +sys_read (28 samples, 2.13%) +s.. + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (28 samples, 2.13%) +o.. + + +JavaCalls::call_helper (956 samples, 72.70%) +JavaCalls::call_helper + + +ttwu_do_wakeup (1 samples, 0.08%) + + + +generic_smp_call_function_single_interrupt (4 samples, 0.30%) + + + +mutex_unlock (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (2 samples, 0.15%) + + + +http_parser_execute (1 samples, 0.08%) + + + +mod_timer (5 samples, 0.38%) + + + +system_call_fastpath (1 samples, 0.08%) + + + +tcp_recvmsg (13 samples, 0.99%) + + + +__slab_alloc (1 samples, 0.08%) + + + +__alloc_skb (7 samples, 0.53%) + + + +clockevents_program_event (1 samples, 0.08%) + + + +vfs_read (18 samples, 1.37%) + + + +__internal_add_timer (1 samples, 0.08%) + + + +epoll_wait (1 samples, 0.08%) + + + +lock_sock_nested (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +Interpreter (956 samples, 72.70%) +Interpreter + + +org/mozilla/javascript/ScriptableObject:.getBase (4 samples, 0.30%) + + + +dev_hard_start_xmit (9 samples, 0.68%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +ip_output (46 samples, 3.50%) +ip_.. + + +account_entity_enqueue (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +ip_rcv (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (5 samples, 0.38%) + + + +tcp_clean_rtx_queue (14 samples, 1.06%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (1 samples, 0.08%) + + + +sys_read (21 samples, 1.60%) + + + +[unknown] (10 samples, 0.76%) + + + +java/util/concurrent/ConcurrentHashMap:.get (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannel:.hashCode (4 samples, 0.30%) + + + +rcu_idle_enter (1 samples, 0.08%) + + + +gettimeofday@plt (1 samples, 0.08%) + + + +__do_softirq (103 samples, 7.83%) +__do_softirq + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (8 samples, 0.61%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (3 samples, 0.23%) + + + +inotify_add_watch (1 samples, 0.08%) + + + +fdval (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.encode (7 samples, 0.53%) + + + +unsafe_arraycopy (1 samples, 0.08%) + + + +sk_stream_alloc_skb (10 samples, 0.76%) + + + +lock_timer_base.isra.35 (1 samples, 0.08%) + + + +ip_local_out (121 samples, 9.20%) +ip_local_out + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +io/netty/util/internal/AppendableCharSequence:.substring (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.bind (1 samples, 0.08%) + + + +ep_poll (53 samples, 4.03%) +ep_p.. + + +lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + +InstanceKlass::oop_push_contents (1 samples, 0.08%) + + + +cpuacct_charge (1 samples, 0.08%) + + + +harmonize_features.isra.92.part.93 (1 samples, 0.08%) + + + +update_rq_clock.part.63 (1 samples, 0.08%) + + + +native_write_msr_safe (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.findNonWhitespace (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.construct (156 samples, 11.86%) +org/mozilla/javas.. + + +_raw_spin_lock (2 samples, 0.15%) + + + +cpu_function_call (5 samples, 0.38%) + + + +fget_light (2 samples, 0.15%) + + + +start_kernel (24 samples, 1.83%) +s.. + + +native_write_msr_safe (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (511 samples, 38.86%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io.. + + +ipv4_mtu (1 samples, 0.08%) + + + +__schedule (11 samples, 0.84%) + + + +system_call_fastpath (88 samples, 6.69%) +system_ca.. + + +io/netty/channel/nio/NioEventLoop:.select (7 samples, 0.53%) + + + +org/mozilla/javascript/IdScriptableObject:.get (3 samples, 0.23%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (7 samples, 0.53%) + + + +sun/nio/ch/IOUtil:.readIntoNativeBuffer (31 samples, 2.36%) +s.. + + +itable stub (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (6 samples, 0.46%) + + + +timerqueue_del (1 samples, 0.08%) + + + +__tcp_v4_send_check (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (3 samples, 0.23%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (4 samples, 0.30%) + + + +org/mozilla/javascript/WrapFactory:.wrapAsJavaObject (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpMessage:.init (2 samples, 0.15%) + + + +_raw_spin_lock_irqsave (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.put (7 samples, 0.53%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (8 samples, 0.61%) + + + +java/util/ArrayList:.ensureCapacityInternal (1 samples, 0.08%) + + + +__wake_up_locked (25 samples, 1.90%) +_.. + + +java/util/HashMap:.getNode (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + +__tcp_push_pending_frames (1 samples, 0.08%) + + + +[unknown] (61 samples, 4.64%) +[unkn.. + + +__slab_free (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (11 samples, 0.84%) + + + +sock_def_readable (5 samples, 0.38%) + + + +gmain (1 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +__kmalloc_reserve.isra.26 (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (5 samples, 0.38%) + + + +org/mozilla/javascript/NativeCall:.init (20 samples, 1.52%) + + + +org/mozilla/javascript/WrapFactory:.wrap (1 samples, 0.08%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +aeProcessEvents (3 samples, 0.23%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +fget_light (2 samples, 0.15%) + + + +io/netty/buffer/PooledByteBufAllocator:.newDirectBuffer (2 samples, 0.15%) + + + +menu_select (1 samples, 0.08%) + + + +generic_smp_call_function_single_interrupt (4 samples, 0.30%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (1 samples, 0.08%) + + + +schedule_hrtimeout_range_clock (20 samples, 1.52%) + + + +io/netty/buffer/UnreleasableByteBuf:.duplicate (1 samples, 0.08%) + + + +tick_program_event (2 samples, 0.15%) + + + +__netif_receive_skb_core (33 samples, 2.51%) +__.. + + +java/util/HashMap:.getNode (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.forEachByteAsc0 (2 samples, 0.15%) + + + +get_next_timer_interrupt (2 samples, 0.15%) + + + +vtable stub (1 samples, 0.08%) + + + +start_secondary (44 samples, 3.35%) +sta.. + + +skb_release_all (3 samples, 0.23%) + + + +update_cfs_rq_blocked_load (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +call_function_single_interrupt (4 samples, 0.30%) + + + +sun/nio/ch/SocketChannelImpl:.read (40 samples, 3.04%) +sun.. + + +sys_epoll_wait (1 samples, 0.08%) + + + +tcp_check_space (1 samples, 0.08%) + + + +__wake_up_common (25 samples, 1.90%) +_.. + + +native_sched_clock (1 samples, 0.08%) + + + +fget_light (3 samples, 0.23%) + + + +sys_inotify_add_watch (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.getValue (1 samples, 0.08%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +smp_call_function_single_interrupt (4 samples, 0.30%) + + + +__kmalloc_node_track_caller (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue (1 samples, 0.08%) + + + +tcp_send_mss (6 samples, 0.46%) + + + +sched_clock (1 samples, 0.08%) + + + +kmem_cache_alloc_node (4 samples, 0.30%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +tick_sched_handle.isra.17 (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getBase (1 samples, 0.08%) + + + +[unknown] (6 samples, 0.46%) + + + +io/netty/util/internal/AppendableCharSequence:.substring (2 samples, 0.15%) + + + +__inet_lookup_established (2 samples, 0.15%) + + + +apparmor_file_permission (1 samples, 0.08%) + + + +dst_release (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectEncoder:.encode (1 samples, 0.08%) + + + +open_exec (1 samples, 0.08%) + + + +tcp_transmit_skb (132 samples, 10.04%) +tcp_transmit_skb + + +ttwu_do_wakeup (5 samples, 0.38%) + + + +idle_cpu (1 samples, 0.08%) + + + +__lll_unlock_wake (1 samples, 0.08%) + + + +[unknown] (7 samples, 0.53%) + + + +security_file_permission (2 samples, 0.15%) + + + +[unknown] (1 samples, 0.08%) + + + +__switch_to (1 samples, 0.08%) + + + +io/netty/channel/DefaultChannelPromise:.trySuccess (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.has (7 samples, 0.53%) + + + +native_write_msr_safe (3 samples, 0.23%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (2 samples, 0.15%) + + + +do_softirq (103 samples, 7.83%) +do_softirq + + +rw_verify_area (1 samples, 0.08%) + + + +tcp_poll (1 samples, 0.08%) + + + +tcp_rearm_rto (5 samples, 0.38%) + + + +io/netty/channel/AbstractChannelHandlerContext:.newPromise (1 samples, 0.08%) + + + +tick_nohz_idle_exit (5 samples, 0.38%) + + + +org/mozilla/javascript/BaseFunction:.execIdCall (60 samples, 4.56%) +org/m.. + + +org/mozilla/javascript/ScriptableObject:.putImpl (1 samples, 0.08%) + + + +_copy_from_user (1 samples, 0.08%) + + + +__netif_receive_skb (34 samples, 2.59%) +__.. + + +java/util/concurrent/ConcurrentHashMap:.get (3 samples, 0.23%) + + + +fput (1 samples, 0.08%) + + + +JavaThread::thread_main_inner (956 samples, 72.70%) +JavaThread::thread_main_inner + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +io/netty/util/Recycler:.get (2 samples, 0.15%) + + + +[unknown] (6 samples, 0.46%) + + + +__dev_queue_xmit (1 samples, 0.08%) + + + +common_file_perm (1 samples, 0.08%) + + + +org/mozilla/javascript/JavaMembers:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (6 samples, 0.46%) + + + +jiffies_to_timeval (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.setName (2 samples, 0.15%) + + + +PSRootsClosurefalse::do_oop (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +vtable stub (1 samples, 0.08%) + + + +skb_clone (4 samples, 0.30%) + + + +OldToYoungRootsTask::do_it (20 samples, 1.52%) + + + +io/netty/channel/ChannelDuplexHandler:.flush (237 samples, 18.02%) +io/netty/channel/ChannelDupl.. + + +org/mozilla/javascript/ScriptableObject:.putImpl (1 samples, 0.08%) + + + +mutex_unlock (1 samples, 0.08%) + + + +hrtimer_force_reprogram (1 samples, 0.08%) + + + +stub_execve (1 samples, 0.08%) + + + +sock_poll (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (5 samples, 0.38%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +native_write_msr_safe (3 samples, 0.23%) + + + +sched_clock_cpu (1 samples, 0.08%) + + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.flush (232 samples, 17.64%) +io/netty/channel/DefaultCha.. + + +org/mozilla/javascript/IdScriptableObject:.get (4 samples, 0.30%) + + + +rcu_idle_enter (1 samples, 0.08%) + + + +java (995 samples, 75.67%) +java + + +tcp_cleanup_rbuf (2 samples, 0.15%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (4 samples, 0.30%) + + + +org/mozilla/javascript/NativeCall:.init (16 samples, 1.22%) + + + +http_parser_execute (2 samples, 0.15%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +ThreadRootsTask::do_it (3 samples, 0.23%) + + + +mutex_lock (3 samples, 0.23%) + + + +cpu_startup_entry (23 samples, 1.75%) + + + +itable stub (1 samples, 0.08%) + + + +__srcu_read_lock (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (5 samples, 0.38%) + + + +org/vertx/java/core/impl/DefaultVertx:.setContext (1 samples, 0.08%) + + + +ip_rcv_finish (89 samples, 6.77%) +ip_rcv_fi.. + + +response_complete (13 samples, 0.99%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.skipControlCharacters (2 samples, 0.15%) + + + +tcp_v4_rcv (27 samples, 2.05%) +t.. + + +ktime_get_ts (2 samples, 0.15%) + + + +tick_nohz_restart (4 samples, 0.30%) + + + +io/netty/channel/ChannelOutboundHandlerAdapter:.flush (1 samples, 0.08%) + + + +sun/nio/ch/FileDispatcherImpl:.write0 (2 samples, 0.15%) + + + +GCTaskThread::run (28 samples, 2.13%) +G.. + + +io/netty/handler/codec/http/HttpHeaders:.encode (1 samples, 0.08%) + + + +__kmalloc_node_track_caller (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (25 samples, 1.90%) +o.. + + +org/mozilla/javascript/IdScriptableObject:.has (2 samples, 0.15%) + + + +atomic_notifier_call_chain (1 samples, 0.08%) + + + +remote_function (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +common_file_perm (1 samples, 0.08%) + + + +sun/nio/ch/SocketChannelImpl:.isConnected (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.has (9 samples, 0.68%) + + + +tcp_init_tso_segs (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.findInstanceIdInfo (1 samples, 0.08%) + + + +tcp_v4_do_rcv (77 samples, 5.86%) +tcp_v4_.. + + +__tcp_push_pending_frames (61 samples, 4.64%) +__tcp.. + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +native_read_tsc (1 samples, 0.08%) + + + +tcp_md5_do_lookup (1 samples, 0.08%) + + + +do_sync_write (186 samples, 14.14%) +do_sync_write + + +cpuidle_enter_state (4 samples, 0.30%) + + + +ep_poll_callback (1 samples, 0.08%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +copy_user_generic_string (3 samples, 0.23%) + + + +perf_pmu_enable (4 samples, 0.30%) + + + +vfs_read (25 samples, 1.90%) +v.. + + +x86_64_start_reservations (24 samples, 1.83%) +x.. + + +security_file_permission (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +nr_iowait_cpu (1 samples, 0.08%) + + + +__hrtimer_start_range_ns (2 samples, 0.15%) + + + +system_call_after_swapgs (1 samples, 0.08%) + + + +release_sock (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (11 samples, 0.84%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +call_stub (956 samples, 72.70%) +call_stub + + +dev_hard_start_xmit (3 samples, 0.23%) + + + +dev_queue_xmit (11 samples, 0.84%) + + + +task_nice (2 samples, 0.15%) + + + +ip_finish_output (119 samples, 9.05%) +ip_finish_out.. + + +__remove_hrtimer (1 samples, 0.08%) + + + +sys_epoll_wait (4 samples, 0.30%) + + + +rcu_cpu_has_callbacks (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +rcu_idle_exit (1 samples, 0.08%) + + + +net_rx_action (97 samples, 7.38%) +net_rx_act.. + + +lock_sock_nested (1 samples, 0.08%) + + + +mod_timer (2 samples, 0.15%) + + + +apparmor_file_free_security (1 samples, 0.08%) + + + +__remove_hrtimer (1 samples, 0.08%) + + + +tcp_established_options (4 samples, 0.30%) + + + +sk_reset_timer (5 samples, 0.38%) + + + +io/netty/channel/ChannelOutboundHandlerAdapter:.flush (235 samples, 17.87%) +io/netty/channel/ChannelOut.. + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (1 samples, 0.08%) + + + +menu_reflect (1 samples, 0.08%) + + + +__slab_alloc (3 samples, 0.23%) + + + +PSScavengeKlassClosure::do_klass (1 samples, 0.08%) + + + +__ip_local_out (1 samples, 0.08%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (5 samples, 0.38%) + + + +tcp_send_delayed_ack (3 samples, 0.23%) + + + +arch_local_irq_save (1 samples, 0.08%) + + + +__kmalloc_node_track_caller (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.end (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (15 samples, 1.14%) + + + +apparmor_file_permission (2 samples, 0.15%) + + + +mutex_lock (2 samples, 0.15%) + + + +sys_epoll_ctl (5 samples, 0.38%) + + + +hrtimer_interrupt (1 samples, 0.08%) + + + +ParallelTaskTerminator::offer_termination (2 samples, 0.15%) + + + +dequeue_entity (4 samples, 0.30%) + + + +io/netty/buffer/PooledByteBuf:.deallocate (5 samples, 0.38%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +wrk (240 samples, 18.25%) +wrk + + +perf_pmu_enable (4 samples, 0.30%) + + + +org/mozilla/javascript/IdScriptableObject:.get (2 samples, 0.15%) + + + +remote_function (4 samples, 0.30%) + + + +__GI___ioctl (5 samples, 0.38%) + + + +socket_readable (2 samples, 0.15%) + + + +epoll_ctl (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (21 samples, 1.60%) + + + +tick_nohz_stop_sched_tick (4 samples, 0.30%) + + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.write (6 samples, 0.46%) + + + +tcp_write_xmit (147 samples, 11.18%) +tcp_write_xmit + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (5 samples, 0.38%) + + + +lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + +inet_recvmsg (17 samples, 1.29%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +ip_local_out (46 samples, 3.50%) +ip_.. + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +local_bh_enable (42 samples, 3.19%) +loc.. + + +hrtimer_start_range_ns (3 samples, 0.23%) + + + +jlong_disjoint_arraycopy (1 samples, 0.08%) + + + +ep_send_events_proc (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (3 samples, 0.23%) + + + +itable stub (1 samples, 0.08%) + + + +path_openat (1 samples, 0.08%) + + + +activate_task (7 samples, 0.53%) + + + +pick_next_task_fair (1 samples, 0.08%) + + + +security_file_permission (5 samples, 0.38%) + + + +io/netty/channel/ChannelOutboundBuffer:.decrementPendingOutboundBytes (1 samples, 0.08%) + + + +system_call_fastpath (56 samples, 4.26%) +syste.. + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (6 samples, 0.46%) + + + +ip_local_deliver_finish (30 samples, 2.28%) +i.. + + +sock_read (2 samples, 0.15%) + + + +deactivate_task (7 samples, 0.53%) + + + +lock_sock_nested (1 samples, 0.08%) + + + +sock_put (1 samples, 0.08%) + + + +mod_timer (3 samples, 0.23%) + + + +aeProcessEvents (171 samples, 13.00%) +aeProcessEvents + + +io/netty/buffer/AbstractByteBuf:.ensureWritable (2 samples, 0.15%) + + + +tick_nohz_stop_sched_tick (5 samples, 0.38%) + + + +org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpMethod:.valueOf (2 samples, 0.15%) + + + +hrtimer_try_to_cancel (1 samples, 0.08%) + + + +system_call (1 samples, 0.08%) + + + +hrtimer_cancel (1 samples, 0.08%) + + + +system_call_fastpath (196 samples, 14.90%) +system_call_fastpath + + +io/netty/channel/AbstractChannelHandlerContext:.read (2 samples, 0.15%) + + + +[unknown] (10 samples, 0.76%) + + + +io/netty/handler/codec/MessageToMessageEncoder:.write (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (47 samples, 3.57%) +org.. + + +jlong_disjoint_arraycopy (1 samples, 0.08%) + + + +[unknown] (1 samples, 0.08%) + + + +native_read_tsc (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.splitHeader (8 samples, 0.61%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.set (3 samples, 0.23%) + + + +read_tsc (1 samples, 0.08%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +dequeue_task_fair (6 samples, 0.46%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + +do_softirq (38 samples, 2.89%) +do.. + + +response_complete (2 samples, 0.15%) + + + +get_next_timer_interrupt (3 samples, 0.23%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +lapic_next_deadline (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (4 samples, 0.30%) + + + +fput (1 samples, 0.08%) + + + +tcp_rearm_rto (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +group_sched_in (4 samples, 0.30%) + + + +__getnstimeofday (1 samples, 0.08%) + + + +java/util/Arrays:.copyOf (1 samples, 0.08%) + + + +local_bh_enable (104 samples, 7.91%) +local_bh_en.. + + +tcp_event_new_data_sent (3 samples, 0.23%) + + + +read_tsc (2 samples, 0.15%) + + + +system_call_fastpath (6 samples, 0.46%) + + + +tcp_prequeue (1 samples, 0.08%) + + + +call_function_single_interrupt (4 samples, 0.30%) + + + +get_page_from_freelist (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (5 samples, 0.38%) + + + +io/netty/channel/AbstractChannelHandlerContext:.read (4 samples, 0.30%) + + + +org/vertx/java/core/http/impl/VertxHttpHandler:.write (34 samples, 2.59%) +or.. + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.splitInitialLine (5 samples, 0.38%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (4 samples, 0.30%) + + + +org/mozilla/javascript/IdScriptableObject:.get (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptRuntime:.getObjectProp (1 samples, 0.08%) + + + +swapper (72 samples, 5.48%) +swapper + + +ktime_get (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (416 samples, 31.63%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_5.. + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +__schedule (4 samples, 0.30%) + + + +bictcp_cong_avoid (3 samples, 0.23%) + + + +tcp_rcv_space_adjust (2 samples, 0.15%) + + + +JavaThread::run (956 samples, 72.70%) +JavaThread::run + + +apparmor_socket_sendmsg (1 samples, 0.08%) + + + +InstanceKlass::oop_push_contents (8 samples, 0.61%) + + + +sun/nio/ch/SocketChannelImpl:.isConnected (1 samples, 0.08%) + + + +__libc_start_main (6 samples, 0.46%) + + + +tcp_is_cwnd_limited (2 samples, 0.15%) + + + +sun/nio/ch/FileDispatcherImpl:.write0 (203 samples, 15.44%) +sun/nio/ch/FileDispatch.. + + +internal_add_timer (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (2 samples, 0.15%) + + + +[unknown] (30 samples, 2.28%) +[.. + + +io/netty/buffer/AbstractByteBufAllocator:.heapBuffer (3 samples, 0.23%) + + + +__tcp_push_pending_frames (149 samples, 11.33%) +__tcp_push_pendi.. + + +ClassLoaderDataGraph::oops_do (1 samples, 0.08%) + + + +tick_nohz_stop_idle (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +__skb_clone (1 samples, 0.08%) + + + +tcp_ack (20 samples, 1.52%) + + + +__inet_lookup_established (4 samples, 0.30%) + + + +org/mozilla/javascript/NativeJavaMethod:.findFunction (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (4 samples, 0.30%) + + + +enqueue_task (7 samples, 0.53%) + + + +sock_def_readable (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +tcp_data_queue (39 samples, 2.97%) +tc.. + + +security_file_permission (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +sun/reflect/DelegatingMethodAccessorImpl:.invoke (66 samples, 5.02%) +sun/re.. + + +__skb_clone (1 samples, 0.08%) + + + +org/vertx/java/platform/impl/RhinoContextFactory:.onContextCreated (1 samples, 0.08%) + + + +tcp_poll (1 samples, 0.08%) + + + +netif_skb_dev_features (1 samples, 0.08%) + + + +ep_scan_ready_list.isra.9 (4 samples, 0.30%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +copy_user_generic_string (1 samples, 0.08%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +__switch_to (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (4 samples, 0.30%) + + + +__hrtimer_start_range_ns (3 samples, 0.23%) + + + +__srcu_read_lock (2 samples, 0.15%) + + + +io/netty/channel/AbstractChannelHandlerContext:.validatePromise (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (11 samples, 0.84%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (8 samples, 0.61%) + + + +org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (2 samples, 0.15%) + + + +sock_poll (1 samples, 0.08%) + + + +tick_program_event (3 samples, 0.23%) + + + +tcp_transmit_skb (55 samples, 4.18%) +tcp_.. + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (1 samples, 0.08%) + + + +org/mozilla/javascript/WrapFactory:.wrap (5 samples, 0.38%) + + + +java/lang/String:.getBytes (3 samples, 0.23%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (4 samples, 0.30%) + + + +bictcp_cong_avoid (1 samples, 0.08%) + + + +ktime_get_real (3 samples, 0.23%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (21 samples, 1.60%) + + + +rcu_sysidle_force_exit (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.getValue (2 samples, 0.15%) + + + +aa_file_perm (1 samples, 0.08%) + + + +tick_sched_timer (1 samples, 0.08%) + + + +sk_reset_timer (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +msecs_to_jiffies (1 samples, 0.08%) + + + +ipv4_dst_check (1 samples, 0.08%) + + + +tcp_write_xmit (60 samples, 4.56%) +tcp_w.. + + +io/netty/util/Recycler:.recycle (1 samples, 0.08%) + + + +group_sched_in (4 samples, 0.30%) + + + +generic_exec_single (1 samples, 0.08%) + + + +menu_select (2 samples, 0.15%) + + + +org/mozilla/javascript/BaseFunction:.construct (1 samples, 0.08%) + + + +process_backlog (97 samples, 7.38%) +process_ba.. + + +__pthread_disable_asynccancel (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.decode (57 samples, 4.33%) +io/ne.. + + +schedule_preempt_disabled (4 samples, 0.30%) + + + +rcu_idle_exit (2 samples, 0.15%) + + + +tcp_send_mss (1 samples, 0.08%) + + + +[unknown] (26 samples, 1.98%) +[.. + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (1 samples, 0.08%) + + + +inet_sendmsg (78 samples, 5.93%) +inet_se.. + + +__getnstimeofday (1 samples, 0.08%) + + + +kfree_skbmem (1 samples, 0.08%) + + + +smp_apic_timer_interrupt (1 samples, 0.08%) + + + +kmalloc_slab (2 samples, 0.15%) + + + +[unknown] (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders (2 samples, 0.15%) + + + +ip_rcv_finish (32 samples, 2.43%) +ip.. + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.read (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (8 samples, 0.61%) + + + +inet_ehashfn (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (33 samples, 2.51%) +or.. + + +frame::oops_do_internal (1 samples, 0.08%) + + + +thread_entry (956 samples, 72.70%) +thread_entry + + +sun/nio/ch/SelectorImpl:.select (7 samples, 0.53%) + + + +_raw_spin_lock_irq (1 samples, 0.08%) + + + +ttwu_do_activate.constprop.74 (12 samples, 0.91%) + + + +skb_copy_datagram_iovec (1 samples, 0.08%) + + + +Interpreter (956 samples, 72.70%) +Interpreter + + +io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders (22 samples, 1.67%) + + + +org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived (540 samples, 41.06%) +org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doM.. + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +fget_light (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.contains (1 samples, 0.08%) + + + +kfree_skbmem (1 samples, 0.08%) + + + +__alloc_pages_nodemask (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +enqueue_task_fair (5 samples, 0.38%) + + + +perf_pmu_enable (4 samples, 0.30%) + + + +tcp_rcv_established (73 samples, 5.55%) +tcp_rcv.. + + +org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + +vfs_write (192 samples, 14.60%) +vfs_write + + +fdval (1 samples, 0.08%) + + + +ip_queue_xmit (122 samples, 9.28%) +ip_queue_xmit + + +sock_aio_write (82 samples, 6.24%) +sock_aio.. + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +aeMain (236 samples, 17.95%) +aeMain + + +io/netty/channel/ChannelDuplexHandler:.read (3 samples, 0.23%) + + + +org/vertx/java/core/http/impl/AssembledFullHttpResponse:.toLastContent (2 samples, 0.15%) + + + +internal_add_timer (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +vtable stub (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (1 samples, 0.08%) + + + +io/netty/buffer/PooledByteBufAllocator:.newDirectBuffer (2 samples, 0.15%) + + + +SpinPause (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (3 samples, 0.23%) + + + +java/nio/charset/CharsetEncoder:.replaceWith (2 samples, 0.15%) + + + +tcp_queue_rcv (2 samples, 0.15%) + + + +stats_record (3 samples, 0.23%) + + + +org/mozilla/javascript/WrapFactory:.wrap (5 samples, 0.38%) + + + +__wake_up_sync_key (27 samples, 2.05%) +_.. + + +__acct_update_integrals (1 samples, 0.08%) + + + +fget_light (1 samples, 0.08%) + + + +local_bh_enable (1 samples, 0.08%) + + + +eth_type_trans (1 samples, 0.08%) + + + +org/vertx/java/core/net/impl/VertxHandler:.channelRead (555 samples, 42.21%) +org/vertx/java/core/net/impl/VertxHandler:.channelRead + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +sock_put (1 samples, 0.08%) + + + +__kfree_skb (3 samples, 0.23%) + + + +dequeue_task (7 samples, 0.53%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +ip_rcv_finish (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getObjectProp (4 samples, 0.30%) + + + +__tick_nohz_idle_enter (4 samples, 0.30%) + + + +__tcp_ack_snd_check (3 samples, 0.23%) + + + +[unknown] (4 samples, 0.30%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (2 samples, 0.15%) + + + +int_sqrt (1 samples, 0.08%) + + + +nmethod::fix_oop_relocations (1 samples, 0.08%) + + + +tcp_sendmsg (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.findPrototypeId (1 samples, 0.08%) + + + +native_write_msr_safe (3 samples, 0.23%) + + + +perf_pmu_enable (4 samples, 0.30%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (77 samples, 5.86%) +org/moz.. + + +__netif_receive_skb_core (94 samples, 7.15%) +__netif_r.. + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +hrtimer_start (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.setName (5 samples, 0.38%) + + + +__netif_receive_skb (94 samples, 7.15%) +__netif_r.. + + +change_protection (1 samples, 0.08%) + + + +io/netty/channel/ChannelOutboundBuffer:.current (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (233 samples, 17.72%) +io/netty/channel/AbstractCh.. + + +do_softirq_own_stack (103 samples, 7.83%) +do_softirq_.. + + +do_filp_open (1 samples, 0.08%) + + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +io/netty/util/Recycler:.get (1 samples, 0.08%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +sun/nio/ch/SocketChannelImpl:.isConnected (1 samples, 0.08%) + + + +change_protection_range (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (12 samples, 0.91%) + + + +__libc_write (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (513 samples, 39.01%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_.. + + +raw_local_deliver (1 samples, 0.08%) + + + +apparmor_file_permission (1 samples, 0.08%) + + + +VMThread::loop (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.newPromise (1 samples, 0.08%) + + + +epoll_ctl (7 samples, 0.53%) + + + +io/netty/handler/codec/http/HttpVersion:.compareTo (1 samples, 0.08%) + + + +io/netty/channel/nio/NioEventLoop:.processSelectedKeys (949 samples, 72.17%) +io/netty/channel/nio/NioEventLoop:.processSelectedKeys + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +java/lang/String:.hashCode (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +effective_load.isra.35 (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +rcu_sysidle_exit (1 samples, 0.08%) + + + +native_load_tls (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.findPrototypeId (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (6 samples, 0.46%) + + + +system_call_fastpath (22 samples, 1.67%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + +tcp_current_mss (5 samples, 0.38%) + + + +io/netty/channel/ChannelOutboundBuffer:.incrementPendingOutboundBytes (1 samples, 0.08%) + + + +oopDesc* PSPromotionManager::copy_to_survivor_spacefalse (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (156 samples, 11.86%) +org/mozilla/javas.. + + +StealTask::do_it (3 samples, 0.23%) + + + +Interpreter (956 samples, 72.70%) +Interpreter + + +PSPromotionManager::drain_stacks_depth (2 samples, 0.15%) + + + +sock_def_readable (32 samples, 2.43%) +so.. + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +perf (6 samples, 0.46%) + + + +__wake_up_common (27 samples, 2.05%) +_.. + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder$HeaderParser:.process (1 samples, 0.08%) + + + +common_file_perm (1 samples, 0.08%) + + + +io/netty/buffer/AbstractReferenceCountedByteBuf:.release (5 samples, 0.38%) + + + +hrtimer_force_reprogram (3 samples, 0.23%) + + + +org/vertx/java/core/impl/DefaultVertx:.setContext (1 samples, 0.08%) + + + +msecs_to_jiffies (1 samples, 0.08%) + + + +arch_cpu_idle (7 samples, 0.53%) + + + +[unknown] (91 samples, 6.92%) +[unknown] + + +tcp_cleanup_rbuf (1 samples, 0.08%) + + + +release_sock (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (235 samples, 17.87%) +io/netty/channel/AbstractCh.. + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (1 samples, 0.08%) + + + +fput (2 samples, 0.15%) + + + +bictcp_acked (1 samples, 0.08%) + + + +java/nio/DirectByteBuffer:.duplicate (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.checkIndex (3 samples, 0.23%) + + + +java/util/HashMap:.getNode (2 samples, 0.15%) + + + +ttwu_stat (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (1 samples, 0.08%) + + + +org/vertx/java/core/net/impl/ConnectionBase:.write (38 samples, 2.89%) +or.. + + +local_apic_timer_interrupt (1 samples, 0.08%) + + + +inet_ehashfn (1 samples, 0.08%) + + + +__srcu_read_unlock (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.begin (1 samples, 0.08%) + + + +skb_clone (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead (562 samples, 42.74%) +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead + + +ip_local_deliver (89 samples, 6.77%) +ip_local_.. + + +org/mozilla/javascript/ScriptableObject:.createSlot (8 samples, 0.61%) + + + +itable stub (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +__do_softirq (36 samples, 2.74%) +__.. + + +io/netty/handler/codec/http/HttpMethod:.valueOf (2 samples, 0.15%) + + + +clockevents_program_event (3 samples, 0.23%) + + + +tcp_set_skb_tso_segs (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.checkSrcIndex (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpVersion:.compareTo (2 samples, 0.15%) + + + +ttwu_do_activate.constprop.74 (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (6 samples, 0.46%) + + + +cpuidle_idle_call (21 samples, 1.60%) + + + +__hrtimer_start_range_ns (2 samples, 0.15%) + + + +io/netty/channel/ChannelOutboundHandlerAdapter:.read (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.bind (7 samples, 0.53%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +sun/nio/ch/EPollArrayWrapper:.poll (5 samples, 0.38%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (12 samples, 0.91%) + + + +sock_read (3 samples, 0.23%) + + + +HandleArea::oops_do (1 samples, 0.08%) + + + +tcp_v4_send_check (1 samples, 0.08%) + + + +tcp_wfree (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.getValue (1 samples, 0.08%) + + + +sun/nio/ch/FileDispatcherImpl:.read0 (1 samples, 0.08%) + + + +org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete (240 samples, 18.25%) +org/vertx/java/core/net/impl.. + + +rcu_bh_qs (1 samples, 0.08%) + + + +lock_timer_base.isra.35 (1 samples, 0.08%) + + + +io/netty/buffer/PooledUnsafeDirectByteBuf:.setBytes (42 samples, 3.19%) +io/.. + + +sun/nio/cs/UTF_8$Encoder:.init (3 samples, 0.23%) + + + +io/netty/channel/ChannelDuplexHandler:.read (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +account_entity_dequeue (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (17 samples, 1.29%) + + + +io/netty/handler/codec/http/HttpObjectEncoder:.encode (17 samples, 1.29%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (2 samples, 0.15%) + + + +ksize (1 samples, 0.08%) + + + +[unknown] (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (2 samples, 0.15%) + + + +fget_light (1 samples, 0.08%) + + + +sched_clock_idle_sleep_event (1 samples, 0.08%) + + + +sock_aio_write (185 samples, 14.07%) +sock_aio_write + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +smp_call_function_single (5 samples, 0.38%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + +ip_rcv (91 samples, 6.92%) +ip_rcv + + +tcp_sendmsg (176 samples, 13.38%) +tcp_sendmsg + + +release_sock (1 samples, 0.08%) + + + +ep_poll_callback (27 samples, 2.05%) +e.. + + +update_min_vruntime (1 samples, 0.08%) + + + +java/lang/Integer:.toString (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +do_softirq_own_stack (37 samples, 2.81%) +do.. + + +io/netty/buffer/AbstractByteBufAllocator:.heapBuffer (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +sched_clock_cpu (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.encodeAscii0 (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + +inet_sendmsg (1 samples, 0.08%) + + + +VMThread::run (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +java/util/HashMap:.getNode (2 samples, 0.15%) + + + +__run_hrtimer (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.begin (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (1 samples, 0.08%) + + + +sun/nio/ch/EPollSelectorImpl:.updateSelectedKeys (1 samples, 0.08%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +thread_main (237 samples, 18.02%) +thread_main + + +enqueue_hrtimer (1 samples, 0.08%) + + + +ep_poll (4 samples, 0.30%) + + + +sock_aio_read (7 samples, 0.53%) + + + +io/netty/buffer/AbstractByteBuf:.checkSrcIndex (3 samples, 0.23%) + + + +sock_aio_read (22 samples, 1.67%) + + + +io/netty/handler/codec/http/HttpObjectDecoder$LineParser:.parse (6 samples, 0.46%) + + + +sys_epoll_ctl (5 samples, 0.38%) + + + +java/lang/String:.init (4 samples, 0.30%) + + + +rb_erase (1 samples, 0.08%) + + + +select_estimate_accuracy (5 samples, 0.38%) + + + +link_path_walk (1 samples, 0.08%) + + + +sock_aio_read.part.8 (22 samples, 1.67%) + + + +local_bh_enable_ip (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (3 samples, 0.23%) + + + +__tcp_select_window (1 samples, 0.08%) + + + +fget_light (1 samples, 0.08%) + + + +io/netty/buffer/AbstractReferenceCountedByteBuf:.release (4 samples, 0.30%) + + + +acct_account_cputime (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (1 samples, 0.08%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +ip_finish_output (46 samples, 3.50%) +ip_.. + + +__tick_nohz_idle_enter (6 samples, 0.46%) + + + +__skb_clone (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getPrototype (1 samples, 0.08%) + + + +__switch_to (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (35 samples, 2.66%) +io.. + + +_raw_spin_lock (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +idle_cpu (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +io/netty/util/Recycler:.get (1 samples, 0.08%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +ip_output (119 samples, 9.05%) +ip_output + + +io/netty/buffer/AbstractByteBuf:.forEachByteAsc0 (3 samples, 0.23%) + + + +skb_network_protocol (1 samples, 0.08%) + + + +enqueue_entity (5 samples, 0.38%) + + + +tcp_established_options (1 samples, 0.08%) + + + +update_process_times (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.read (3 samples, 0.23%) + + + +update_rq_clock.part.63 (1 samples, 0.08%) + + + +sun/nio/ch/EPollArrayWrapper:.epollWait (4 samples, 0.30%) + + + +sock_poll (2 samples, 0.15%) + + + +io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized (949 samples, 72.17%) +io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized + + +java_start (985 samples, 74.90%) +java_start + + +mprotect_fixup (1 samples, 0.08%) + + + +ep_scan_ready_list.isra.9 (20 samples, 1.52%) + + + +tcp_v4_do_rcv (23 samples, 1.75%) + + + +sk_stream_alloc_skb (7 samples, 0.53%) + + + +update_curr (2 samples, 0.15%) + + + +tcp_wfree (2 samples, 0.15%) + + + +user_path_at_empty (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (1 samples, 0.08%) + + + +sun/nio/ch/NativeThread:.current (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +JavaThread::oops_do (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.getBase (2 samples, 0.15%) + + + +ip_local_deliver (1 samples, 0.08%) + + + +org/vertx/java/core/http/impl/ServerConnection:.handleRequest (526 samples, 40.00%) +org/vertx/java/core/http/impl/ServerConnection:.handleRequest + + +__hrtimer_start_range_ns (3 samples, 0.23%) + + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (10 samples, 0.76%) + + + +hrtimer_start (1 samples, 0.08%) + + + +intel_idle (11 samples, 0.84%) + + + +org/mozilla/javascript/IdScriptableObject:.has (3 samples, 0.23%) + + + +ktime_get (1 samples, 0.08%) + + + +update_cfs_rq_blocked_load (1 samples, 0.08%) + + + +org/mozilla/javascript/WrapFactory:.setJavaPrimitiveWrap (1 samples, 0.08%) + + + +sun/nio/ch/NativeThread:.current (1 samples, 0.08%) + + + +system_call_fastpath (28 samples, 2.13%) +s.. + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +sched_clock_cpu (1 samples, 0.08%) + + + +lapic_next_deadline (3 samples, 0.23%) + + + +io/netty/buffer/UnpooledHeapByteBuf:.init (1 samples, 0.08%) + + + +filename_lookup (1 samples, 0.08%) + + + +jni_fast_GetIntField (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (6 samples, 0.46%) + + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +__kfree_skb (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaMethod:.call (10 samples, 0.76%) + + + +process_backlog (34 samples, 2.59%) +pr.. + + +all (1,315 samples, 100%) + + + +io/netty/handler/codec/http/HttpHeaders:.encodeAscii0 (2 samples, 0.15%) + + + +system_call_after_swapgs (6 samples, 0.46%) + + + +_raw_spin_unlock_bh (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +tcp_event_new_data_sent (6 samples, 0.46%) + + + +_raw_spin_unlock_bh (1 samples, 0.08%) + + + +tcp_schedule_loss_probe (3 samples, 0.23%) + + + +tcp_check_space (3 samples, 0.23%) + + + +dev_queue_xmit (4 samples, 0.30%) + + + +tick_nohz_restart (6 samples, 0.46%) + + + +__tcp_ack_snd_check (5 samples, 0.38%) + + + +user_path_at (1 samples, 0.08%) + + + +socket_readable (60 samples, 4.56%) +socke.. + + +org/mozilla/javascript/ScriptableObject:.getSlot (4 samples, 0.30%) + + + +OopMapSet::all_do (1 samples, 0.08%) + + + +socket_writeable (1 samples, 0.08%) + + + +internal_add_timer (1 samples, 0.08%) + + + +select_task_rq_fair (4 samples, 0.30%) + + + +loopback_xmit (5 samples, 0.38%) + + + +sys_epoll_wait (56 samples, 4.26%) +sys_e.. + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +clockevents_program_event (3 samples, 0.23%) + + + +io/netty/buffer/PooledByteBuf:.deallocate (2 samples, 0.15%) + + + +io/netty/util/Recycler:.get (1 samples, 0.08%) + + + +fsnotify (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaMethod:.call (74 samples, 5.63%) +org/moz.. + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (37 samples, 2.81%) +or.. + + +schedule_preempt_disabled (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (238 samples, 18.10%) +io/netty/channel/AbstractCha.. + + +tcp_queue_rcv (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (5 samples, 0.38%) + + + +tcp_recvmsg (7 samples, 0.53%) + + + +update_curr (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +tcp_md5_do_lookup (1 samples, 0.08%) + + + +smp_call_function_single_interrupt (4 samples, 0.30%) + + + +netif_rx (2 samples, 0.15%) + + + +enqueue_to_backlog (1 samples, 0.08%) + + + +_raw_spin_unlock_bh (1 samples, 0.08%) + + + +perf_ioctl (5 samples, 0.38%) + + + +tick_program_event (3 samples, 0.23%) + + + +io/netty/handler/codec/ByteToMessageDecoder:.channelRead (635 samples, 48.29%) +io/netty/handler/codec/ByteToMessageDecoder:.channelRead + + +put_prev_task_fair (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (15 samples, 1.14%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +sys_mprotect (1 samples, 0.08%) + + + +Monitor::wait (1 samples, 0.08%) + + + +skb_push (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +vtable stub (1 samples, 0.08%) + + + +x86_64_start_kernel (24 samples, 1.83%) +x.. + + +[unknown] (1 samples, 0.08%) + + + +kfree (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (241 samples, 18.33%) +io/netty/channel/AbstractCha.. + + +io/netty/buffer/AbstractByteBuf:.forEachByteAsc0 (3 samples, 0.23%) + + + +Java_sun_nio_ch_FileDispatcherImpl_write0 (1 samples, 0.08%) + + + +do_execve_common.isra.22 (1 samples, 0.08%) + + + +group_sched_in (4 samples, 0.30%) + + + +socket_writeable (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getTopLevelScope (1 samples, 0.08%) + + + +kmem_cache_alloc_node (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.has (12 samples, 0.91%) + + + +getnstimeofday (1 samples, 0.08%) + + + +java/util/Arrays:.copyOf (1 samples, 0.08%) + + + +arch_cpu_idle (22 samples, 1.67%) + + + +http_parser_execute (30 samples, 2.28%) +h.. + + +new_slab (2 samples, 0.15%) + + + +io/netty/channel/ChannelDuplexHandler:.flush (1 samples, 0.08%) + + + +generic_smp_call_function_single_interrupt (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.contains (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +security_socket_sendmsg (1 samples, 0.08%) + + + +update_cpu_load_nohz (1 samples, 0.08%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +skb_clone (1 samples, 0.08%) + + + +start_thread (237 samples, 18.02%) +start_thread + + +mod_timer (3 samples, 0.23%) + + + +tcp_data_queue (9 samples, 0.68%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +java/lang/String:.trim (1 samples, 0.08%) + + + +net_rx_action (35 samples, 2.66%) +ne.. + + +inet_sendmsg (177 samples, 13.46%) +inet_sendmsg + + +getnstimeofday (3 samples, 0.23%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (3 samples, 0.23%) + + + +[unknown] (1 samples, 0.08%) + + + +hrtimer_try_to_cancel (4 samples, 0.30%) + + + +java/nio/charset/Charset:.lookup (2 samples, 0.15%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + +start_thread (985 samples, 74.90%) +start_thread + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (1 samples, 0.08%) + + + +system_call_fastpath (5 samples, 0.38%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +menu_select (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (3 samples, 0.23%) + + + +io/netty/buffer/PooledByteBuf:.deallocate (2 samples, 0.15%) + + + +org/mozilla/javascript/BaseFunction:.findInstanceIdInfo (4 samples, 0.30%) + + + +rest_init (24 samples, 1.83%) +r.. + + +ksoftirqd/3 (1 samples, 0.08%) + + + +group_sched_in (4 samples, 0.30%) + + + +account_user_time (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.name (8 samples, 0.61%) + + + +perf_event_for_each_child (5 samples, 0.38%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.findWhitespace (1 samples, 0.08%) + + + +java/lang/String:.init (1 samples, 0.08%) + + + +set_next_entity (2 samples, 0.15%) + + + +ip_local_deliver_finish (89 samples, 6.77%) +ip_local_.. + + +org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (12 samples, 0.91%) + + + +hrtimer_start_range_ns (2 samples, 0.15%) + + + +__internal_add_timer (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (9 samples, 0.68%) + + + +smp_call_function_single_interrupt (4 samples, 0.30%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +__hrtimer_start_range_ns (1 samples, 0.08%) + + + +lock_sock_nested (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject$PrototypeValues:.ensureId (1 samples, 0.08%) + + + +sk_reset_timer (3 samples, 0.23%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (154 samples, 11.71%) +org/mozilla/javas.. + + +io/netty/handler/codec/ByteToMessageDecoder:.channelRead (1 samples, 0.08%) + + + +security_socket_sendmsg (2 samples, 0.15%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (1 samples, 0.08%) + + + +system_call_after_swapgs (1 samples, 0.08%) + + + +hrtimer_cancel (4 samples, 0.30%) + + + +ObjArrayKlass::oop_push_contents (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +schedule_hrtimeout_range (20 samples, 1.52%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (24 samples, 1.83%) +o.. + + +__fsnotify_parent (1 samples, 0.08%) + + + +vtable stub (1 samples, 0.08%) + + + +__dev_queue_xmit (10 samples, 0.76%) + + + +sys_write (88 samples, 6.69%) +sys_write + + +detach_if_pending (1 samples, 0.08%) + + + +socket_writeable (99 samples, 7.53%) +socket_wri.. + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (2 samples, 0.15%) + + + +epoll_ctl (6 samples, 0.46%) + + + +org/vertx/java/core/http/impl/AssembledFullHttpResponse:.toLastContent (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaObject:.get (1 samples, 0.08%) + + + +lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + +intel_idle (3 samples, 0.23%) + + + +ip_local_deliver (31 samples, 2.36%) +i.. + + +org/mozilla/javascript/IdScriptableObject:.put (23 samples, 1.75%) + + + +io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete (242 samples, 18.40%) +io/netty/handler/codec/ByteT.. + + +tcp_event_data_recv (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getTopScopeValue (1 samples, 0.08%) + + + +tcp_rearm_rto (3 samples, 0.23%) + + + +org/mozilla/javascript/NativeCall:.init (48 samples, 3.65%) +org/.. + + +tick_nohz_idle_enter (5 samples, 0.38%) + + + +system_call_fastpath (4 samples, 0.30%) + + + +system_call (1 samples, 0.08%) + + + +tick_nohz_idle_enter (6 samples, 0.46%) + + + +tick_program_event (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + +remote_function (4 samples, 0.30%) + + + +tcp_clean_rtx_queue (1 samples, 0.08%) + + + +tick_nohz_idle_exit (7 samples, 0.53%) + + + +org/mozilla/javascript/IdScriptableObject:.put (9 samples, 0.68%) + + + +fsnotify (1 samples, 0.08%) + + + +pick_next_task_fair (2 samples, 0.15%) + + + +do_sync_write (82 samples, 6.24%) +do_sync_.. + + +sys_write (195 samples, 14.83%) +sys_write + + +common_file_perm (1 samples, 0.08%) + + + +account_process_tick (1 samples, 0.08%) + + + diff --git a/tests/benchmarks/_script/flamegraph/files.pl b/tests/benchmarks/_script/flamegraph/files.pl new file mode 100755 index 00000000000..50426b2e47c --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/files.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl -w +# +# files.pl Print file sizes in folded format, for a flame graph. +# +# This helps you understand storage consumed by a file system, by creating +# a flame graph visualization of space consumed. This is basically a Perl +# version of the "find" command, which emits in folded format for piping +# into flamegraph.pl. +# +# Copyright (c) 2017 Brendan Gregg. +# Licensed under the Apache License, Version 2.0 (the "License") +# +# 03-Feb-2017 Brendan Gregg Created this. + +use strict; +use File::Find; + +sub usage { + print STDERR "USAGE: $0 [--xdev] [DIRECTORY]...\n"; + print STDERR " eg, $0 /Users\n"; + print STDERR " To not descend directories on other filesystems:"; + print STDERR " eg, $0 --xdev /\n"; + print STDERR "Intended to be piped to flamegraph.pl. Full example:\n"; + print STDERR " $0 /Users | flamegraph.pl " . + "--hash --countname=bytes > files.svg\n"; + print STDERR " $0 /usr /home /root /etc | flamegraph.pl " . + "--hash --countname=bytes > files.svg\n"; + print STDERR " $0 --xdev / | flamegraph.pl " . + "--hash --countname=bytes > files.svg\n"; + exit 1; +} + +usage() if @ARGV == 0 or $ARGV[0] eq "--help" or $ARGV[0] eq "-h"; + +my $filter_xdev = 0; +my $xdev_id; + +foreach my $dir (@ARGV) { + if ($dir eq "--xdev") { + $filter_xdev = 1; + } else { + find(\&wanted, $dir); + } +} + +sub wanted { + my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size) = lstat($_); + return unless defined $size; + if ($filter_xdev) { + if (!$xdev_id) { + $xdev_id = $dev; + } elsif ($xdev_id ne $dev) { + $File::Find::prune = 1; + return; + } + } + my $path = $File::Find::name; + $path =~ tr/\//;/; # delimiter + $path =~ tr/;.a-zA-Z0-9-/_/c; # ditch whitespace and other chars + $path =~ s/^;//; + print "$path $size\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/flamegraph.pl b/tests/benchmarks/_script/flamegraph/flamegraph.pl new file mode 100755 index 00000000000..ad35f6f7751 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/flamegraph.pl @@ -0,0 +1,1303 @@ +#!/usr/bin/perl -w +# +# flamegraph.pl flame stack grapher. +# +# This takes stack samples and renders a call graph, allowing hot functions +# and codepaths to be quickly identified. Stack samples can be generated using +# tools such as DTrace, perf, SystemTap, and Instruments. +# +# USAGE: ./flamegraph.pl [options] input.txt > graph.svg +# +# grep funcA input.txt | ./flamegraph.pl [options] > graph.svg +# +# Then open the resulting .svg in a web browser, for interactivity: mouse-over +# frames for info, click to zoom, and ctrl-F to search. +# +# Options are listed in the usage message (--help). +# +# The input is stack frames and sample counts formatted as single lines. Each +# frame in the stack is semicolon separated, with a space and count at the end +# of the line. These can be generated for Linux perf script output using +# stackcollapse-perf.pl, for DTrace using stackcollapse.pl, and for other tools +# using the other stackcollapse programs. Example input: +# +# swapper;start_kernel;rest_init;cpu_idle;default_idle;native_safe_halt 1 +# +# An optional extra column of counts can be provided to generate a differential +# flame graph of the counts, colored red for more, and blue for less. This +# can be useful when using flame graphs for non-regression testing. +# See the header comment in the difffolded.pl program for instructions. +# +# The input functions can optionally have annotations at the end of each +# function name, following a precedent by some tools (Linux perf's _[k]): +# _[k] for kernel +# _[i] for inlined +# _[j] for jit +# _[w] for waker +# Some of the stackcollapse programs support adding these annotations, eg, +# stackcollapse-perf.pl --kernel --jit. They are used merely for colors by +# some palettes, eg, flamegraph.pl --color=java. +# +# The output flame graph shows relative presence of functions in stack samples. +# The ordering on the x-axis has no meaning; since the data is samples, time +# order of events is not known. The order used sorts function names +# alphabetically. +# +# While intended to process stack samples, this can also process stack traces. +# For example, tracing stacks for memory allocation, or resource usage. You +# can use --title to set the title to reflect the content, and --countname +# to change "samples" to "bytes" etc. +# +# There are a few different palettes, selectable using --color. By default, +# the colors are selected at random (except for differentials). Functions +# called "-" will be printed gray, which can be used for stack separators (eg, +# between user and kernel stacks). +# +# HISTORY +# +# This was inspired by Neelakanth Nadgir's excellent function_call_graph.rb +# program, which visualized function entry and return trace events. As Neel +# wrote: "The output displayed is inspired by Roch's CallStackAnalyzer which +# was in turn inspired by the work on vftrace by Jan Boerhout". See: +# https://blogs.oracle.com/realneel/entry/visualizing_callstacks_via_dtrace_and +# +# Copyright 2016 Netflix, Inc. +# Copyright 2011 Joyent, Inc. All rights reserved. +# Copyright 2011 Brendan Gregg. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 +# +# 11-Oct-2014 Adrien Mahieux Added zoom. +# 21-Nov-2013 Shawn Sterling Added consistent palette file option +# 17-Mar-2013 Tim Bunce Added options and more tunables. +# 15-Dec-2011 Dave Pacheco Support for frames with whitespace. +# 10-Sep-2011 Brendan Gregg Created this. + +use strict; + +use Getopt::Long; + +use open qw(:std :utf8); + +# tunables +my $encoding; +my $fonttype = "Verdana"; +my $imagewidth = 1200; # max width, pixels +my $frameheight = 16; # max height is dynamic +my $fontsize = 12; # base text size +my $fontwidth = 0.59; # avg width relative to fontsize +my $minwidth = 0.1; # min function width, pixels or percentage of time +my $nametype = "Function:"; # what are the names in the data? +my $countname = "samples"; # what are the counts in the data? +my $colors = "hot"; # color theme +my $bgcolors = ""; # background color theme +my $nameattrfile; # file holding function attributes +my $timemax; # (override the) sum of the counts +my $factor = 1; # factor to scale counts by +my $hash = 0; # color by function name +my $rand = 0; # color randomly +my $palette = 0; # if we use consistent palettes (default off) +my %palette_map; # palette map hash +my $pal_file = "palette.map"; # palette map file name +my $stackreverse = 0; # reverse stack order, switching merge end +my $inverted = 0; # icicle graph +my $flamechart = 0; # produce a flame chart (sort by time, do not merge stacks) +my $negate = 0; # switch differential hues +my $titletext = ""; # centered heading +my $titledefault = "Flame Graph"; # overwritten by --title +my $titleinverted = "Icicle Graph"; # " " +my $searchcolor = "rgb(230,0,230)"; # color for search highlighting +my $notestext = ""; # embedded notes in SVG +my $subtitletext = ""; # second level title (optional) +my $help = 0; + +sub usage { + die < outfile.svg\n + --title TEXT # change title text + --subtitle TEXT # second level title (optional) + --width NUM # width of image (default 1200) + --height NUM # height of each frame (default 16) + --minwidth NUM # omit smaller functions. In pixels or use "%" for + # percentage of time (default 0.1 pixels) + --fonttype FONT # font type (default "Verdana") + --fontsize NUM # font size (default 12) + --countname TEXT # count type label (default "samples") + --nametype TEXT # name type label (default "Function:") + --colors PALETTE # set color palette. choices are: hot (default), mem, + # io, wakeup, chain, java, js, perl, red, green, blue, + # aqua, yellow, purple, orange + --bgcolors COLOR # set background colors. gradient choices are yellow + # (default), blue, green, grey; flat colors use "#rrggbb" + --hash # colors are keyed by function name hash + --random # colors are randomly generated + --cp # use consistent palette (palette.map) + --reverse # generate stack-reversed flame graph + --inverted # icicle graph + --flamechart # produce a flame chart (sort by time, do not merge stacks) + --negate # switch differential hues (blue<->red) + --notes TEXT # add notes comment in SVG (for debugging) + --help # this message + + eg, + $0 --title="Flame Graph: malloc()" trace.txt > graph.svg +USAGE_END +} + +GetOptions( + 'fonttype=s' => \$fonttype, + 'width=i' => \$imagewidth, + 'height=i' => \$frameheight, + 'encoding=s' => \$encoding, + 'fontsize=f' => \$fontsize, + 'fontwidth=f' => \$fontwidth, + 'minwidth=s' => \$minwidth, + 'title=s' => \$titletext, + 'subtitle=s' => \$subtitletext, + 'nametype=s' => \$nametype, + 'countname=s' => \$countname, + 'nameattr=s' => \$nameattrfile, + 'total=s' => \$timemax, + 'factor=f' => \$factor, + 'colors=s' => \$colors, + 'bgcolors=s' => \$bgcolors, + 'hash' => \$hash, + 'random' => \$rand, + 'cp' => \$palette, + 'reverse' => \$stackreverse, + 'inverted' => \$inverted, + 'flamechart' => \$flamechart, + 'negate' => \$negate, + 'notes=s' => \$notestext, + 'help' => \$help, +) or usage(); +$help && usage(); + +# internals +my $ypad1 = $fontsize * 3; # pad top, include title +my $ypad2 = $fontsize * 2 + 10; # pad bottom, include labels +my $ypad3 = $fontsize * 2; # pad top, include subtitle (optional) +my $xpad = 10; # pad lefm and right +my $framepad = 1; # vertical padding for frames +my $depthmax = 0; +my %Events; +my %nameattr; + +if ($flamechart && $titletext eq "") { + $titletext = "Flame Chart"; +} + +if ($titletext eq "") { + unless ($inverted) { + $titletext = $titledefault; + } else { + $titletext = $titleinverted; + } +} + +if ($nameattrfile) { + # The name-attribute file format is a function name followed by a tab then + # a sequence of tab separated name=value pairs. + open my $attrfh, $nameattrfile or die "Can't read $nameattrfile: $!\n"; + while (<$attrfh>) { + chomp; + my ($funcname, $attrstr) = split /\t/, $_, 2; + die "Invalid format in $nameattrfile" unless defined $attrstr; + $nameattr{$funcname} = { map { split /=/, $_, 2 } split /\t/, $attrstr }; + } +} + +if ($notestext =~ /[<>]/) { + die "Notes string can't contain < or >" +} + +# Ensure minwidth is a valid floating-point number, +# print usage string if not +my $minwidth_f; +if ($minwidth =~ /^([0-9.]+)%?$/) { + $minwidth_f = $1; +} else { + warn "Value '$minwidth' is invalid for minwidth, expected a float.\n"; + usage(); +} + +# background colors: +# - yellow gradient: default (hot, java, js, perl) +# - green gradient: mem +# - blue gradient: io, wakeup, chain +# - gray gradient: flat colors (red, green, blue, ...) +if ($bgcolors eq "") { + # choose a default + if ($colors eq "mem") { + $bgcolors = "green"; + } elsif ($colors =~ /^(io|wakeup|chain)$/) { + $bgcolors = "blue"; + } elsif ($colors =~ /^(red|green|blue|aqua|yellow|purple|orange)$/) { + $bgcolors = "grey"; + } else { + $bgcolors = "yellow"; + } +} +my ($bgcolor1, $bgcolor2); +if ($bgcolors eq "yellow") { + $bgcolor1 = "#eeeeee"; # background color gradient start + $bgcolor2 = "#eeeeb0"; # background color gradient stop +} elsif ($bgcolors eq "blue") { + $bgcolor1 = "#eeeeee"; $bgcolor2 = "#e0e0ff"; +} elsif ($bgcolors eq "green") { + $bgcolor1 = "#eef2ee"; $bgcolor2 = "#e0ffe0"; +} elsif ($bgcolors eq "grey") { + $bgcolor1 = "#f8f8f8"; $bgcolor2 = "#e8e8e8"; +} elsif ($bgcolors =~ /^#......$/) { + $bgcolor1 = $bgcolor2 = $bgcolors; +} else { + die "Unrecognized bgcolor option \"$bgcolors\"" +} + +# SVG functions +{ package SVG; + sub new { + my $class = shift; + my $self = {}; + bless ($self, $class); + return $self; + } + + sub header { + my ($self, $w, $h) = @_; + my $enc_attr = ''; + if (defined $encoding) { + $enc_attr = qq{ encoding="$encoding"}; + } + $self->{svg} .= < + + + + +SVG + } + + sub include { + my ($self, $content) = @_; + $self->{svg} .= $content; + } + + sub colorAllocate { + my ($self, $r, $g, $b) = @_; + return "rgb($r,$g,$b)"; + } + + sub group_start { + my ($self, $attr) = @_; + + my @g_attr = map { + exists $attr->{$_} ? sprintf(qq/$_="%s"/, $attr->{$_}) : () + } qw(id class); + push @g_attr, $attr->{g_extra} if $attr->{g_extra}; + if ($attr->{href}) { + my @a_attr; + push @a_attr, sprintf qq/xlink:href="%s"/, $attr->{href} if $attr->{href}; + # default target=_top else links will open within SVG + push @a_attr, sprintf qq/target="%s"/, $attr->{target} || "_top"; + push @a_attr, $attr->{a_extra} if $attr->{a_extra}; + $self->{svg} .= sprintf qq/\n/, join(' ', (@a_attr, @g_attr)); + } else { + $self->{svg} .= sprintf qq/\n/, join(' ', @g_attr); + } + + $self->{svg} .= sprintf qq/%s<\/title>/, $attr->{title} + if $attr->{title}; # should be first element within g container + } + + sub group_end { + my ($self, $attr) = @_; + $self->{svg} .= $attr->{href} ? qq/<\/a>\n/ : qq/<\/g>\n/; + } + + sub filledRectangle { + my ($self, $x1, $y1, $x2, $y2, $fill, $extra) = @_; + $x1 = sprintf "%0.1f", $x1; + $x2 = sprintf "%0.1f", $x2; + my $w = sprintf "%0.1f", $x2 - $x1; + my $h = sprintf "%0.1f", $y2 - $y1; + $extra = defined $extra ? $extra : ""; + $self->{svg} .= qq/\n/; + } + + sub stringTTF { + my ($self, $id, $x, $y, $str, $extra) = @_; + $x = sprintf "%0.2f", $x; + $id = defined $id ? qq/id="$id"/ : ""; + $extra ||= ""; + $self->{svg} .= qq/$str<\/text>\n/; + } + + sub svg { + my $self = shift; + return "$self->{svg}\n"; + } + 1; +} + +sub namehash { + # Generate a vector hash for the name string, weighting early over + # later characters. We want to pick the same colors for function + # names across different flame graphs. + my $name = shift; + my $vector = 0; + my $weight = 1; + my $max = 1; + my $mod = 10; + # if module name present, trunc to 1st char + $name =~ s/.(.*?)`//; + foreach my $c (split //, $name) { + my $i = (ord $c) % $mod; + $vector += ($i / ($mod++ - 1)) * $weight; + $max += 1 * $weight; + $weight *= 0.70; + last if $mod > 12; + } + return (1 - $vector / $max) +} + +sub sum_namehash { + my $name = shift; + return unpack("%32W*", $name); +} + +sub random_namehash { + # Generate a random hash for the name string. + # This ensures that functions with the same name have the same color, + # both within a flamegraph and across multiple flamegraphs without + # needing to set a palette and while preserving the original flamegraph + # optic, unlike what happens with --hash. + my $name = shift; + my $hash = sum_namehash($name); + srand($hash); + return rand(1) +} + +sub color { + my ($type, $hash, $name) = @_; + my ($v1, $v2, $v3); + + if ($hash) { + $v1 = namehash($name); + $v2 = $v3 = namehash(scalar reverse $name); + } elsif ($rand) { + $v1 = rand(1); + $v2 = rand(1); + $v3 = rand(1); + } else { + $v1 = random_namehash($name); + $v2 = random_namehash($name); + $v3 = random_namehash($name); + } + + # theme palettes + if (defined $type and $type eq "hot") { + my $r = 205 + int(50 * $v3); + my $g = 0 + int(230 * $v1); + my $b = 0 + int(55 * $v2); + return "rgb($r,$g,$b)"; + } + if (defined $type and $type eq "mem") { + my $r = 0; + my $g = 190 + int(50 * $v2); + my $b = 0 + int(210 * $v1); + return "rgb($r,$g,$b)"; + } + if (defined $type and $type eq "io") { + my $r = 80 + int(60 * $v1); + my $g = $r; + my $b = 190 + int(55 * $v2); + return "rgb($r,$g,$b)"; + } + + # multi palettes + if (defined $type and $type eq "java") { + # Handle both annotations (_[j], _[i], ...; which are + # accurate), as well as input that lacks any annotations, as + # best as possible. Without annotations, we get a little hacky + # and match on java|org|com, etc. + if ($name =~ m:_\[j\]$:) { # jit annotation + $type = "green"; + } elsif ($name =~ m:_\[i\]$:) { # inline annotation + $type = "aqua"; + } elsif ($name =~ m:^L?(java|javax|jdk|net|org|com|io|sun)/:) { # Java + $type = "green"; + } elsif ($name =~ /:::/) { # Java, typical perf-map-agent method separator + $type = "green"; + } elsif ($name =~ /::/) { # C++ + $type = "yellow"; + } elsif ($name =~ m:_\[k\]$:) { # kernel annotation + $type = "orange"; + } elsif ($name =~ /::/) { # C++ + $type = "yellow"; + } else { # system + $type = "red"; + } + # fall-through to color palettes + } + if (defined $type and $type eq "perl") { + if ($name =~ /::/) { # C++ + $type = "yellow"; + } elsif ($name =~ m:Perl: or $name =~ m:\.pl:) { # Perl + $type = "green"; + } elsif ($name =~ m:_\[k\]$:) { # kernel + $type = "orange"; + } else { # system + $type = "red"; + } + # fall-through to color palettes + } + if (defined $type and $type eq "js") { + # Handle both annotations (_[j], _[i], ...; which are + # accurate), as well as input that lacks any annotations, as + # best as possible. Without annotations, we get a little hacky, + # and match on a "/" with a ".js", etc. + if ($name =~ m:_\[j\]$:) { # jit annotation + if ($name =~ m:/:) { + $type = "green"; # source + } else { + $type = "aqua"; # builtin + } + } elsif ($name =~ /::/) { # C++ + $type = "yellow"; + } elsif ($name =~ m:/.*\.js:) { # JavaScript (match "/" in path) + $type = "green"; + } elsif ($name =~ m/:/) { # JavaScript (match ":" in builtin) + $type = "aqua"; + } elsif ($name =~ m/^ $/) { # Missing symbol + $type = "green"; + } elsif ($name =~ m:_\[k\]:) { # kernel + $type = "orange"; + } else { # system + $type = "red"; + } + # fall-through to color palettes + } + if (defined $type and $type eq "wakeup") { + $type = "aqua"; + # fall-through to color palettes + } + if (defined $type and $type eq "chain") { + if ($name =~ m:_\[w\]:) { # waker + $type = "aqua" + } else { # off-CPU + $type = "blue"; + } + # fall-through to color palettes + } + + # color palettes + if (defined $type and $type eq "red") { + my $r = 200 + int(55 * $v1); + my $x = 50 + int(80 * $v1); + return "rgb($r,$x,$x)"; + } + if (defined $type and $type eq "green") { + my $g = 200 + int(55 * $v1); + my $x = 50 + int(60 * $v1); + return "rgb($x,$g,$x)"; + } + if (defined $type and $type eq "blue") { + my $b = 205 + int(50 * $v1); + my $x = 80 + int(60 * $v1); + return "rgb($x,$x,$b)"; + } + if (defined $type and $type eq "yellow") { + my $x = 175 + int(55 * $v1); + my $b = 50 + int(20 * $v1); + return "rgb($x,$x,$b)"; + } + if (defined $type and $type eq "purple") { + my $x = 190 + int(65 * $v1); + my $g = 80 + int(60 * $v1); + return "rgb($x,$g,$x)"; + } + if (defined $type and $type eq "aqua") { + my $r = 50 + int(60 * $v1); + my $g = 165 + int(55 * $v1); + my $b = 165 + int(55 * $v1); + return "rgb($r,$g,$b)"; + } + if (defined $type and $type eq "orange") { + my $r = 190 + int(65 * $v1); + my $g = 90 + int(65 * $v1); + return "rgb($r,$g,0)"; + } + + return "rgb(0,0,0)"; +} + +sub color_scale { + my ($value, $max) = @_; + my ($r, $g, $b) = (255, 255, 255); + $value = -$value if $negate; + if ($value > 0) { + $g = $b = int(210 * ($max - $value) / $max); + } elsif ($value < 0) { + $r = $g = int(210 * ($max + $value) / $max); + } + return "rgb($r,$g,$b)"; +} + +sub color_map { + my ($colors, $func) = @_; + if (exists $palette_map{$func}) { + return $palette_map{$func}; + } else { + $palette_map{$func} = color($colors, $hash, $func); + return $palette_map{$func}; + } +} + +sub write_palette { + open(FILE, ">$pal_file"); + foreach my $key (sort keys %palette_map) { + print FILE $key."->".$palette_map{$key}."\n"; + } + close(FILE); +} + +sub read_palette { + if (-e $pal_file) { + open(FILE, $pal_file) or die "can't open file $pal_file: $!"; + while ( my $line = ) { + chomp($line); + (my $key, my $value) = split("->",$line); + $palette_map{$key}=$value; + } + close(FILE) + } +} + +my %Node; # Hash of merged frame data +my %Tmp; + +# flow() merges two stacks, storing the merged frames and value data in %Node. +sub flow { + my ($last, $this, $v, $d) = @_; + + my $len_a = @$last - 1; + my $len_b = @$this - 1; + + my $i = 0; + my $len_same; + for (; $i <= $len_a; $i++) { + last if $i > $len_b; + last if $last->[$i] ne $this->[$i]; + } + $len_same = $i; + + for ($i = $len_a; $i >= $len_same; $i--) { + my $k = "$last->[$i];$i"; + # a unique ID is constructed from "func;depth;etime"; + # func-depth isn't unique, it may be repeated later. + $Node{"$k;$v"}->{stime} = delete $Tmp{$k}->{stime}; + if (defined $Tmp{$k}->{delta}) { + $Node{"$k;$v"}->{delta} = delete $Tmp{$k}->{delta}; + } + delete $Tmp{$k}; + } + + for ($i = $len_same; $i <= $len_b; $i++) { + my $k = "$this->[$i];$i"; + $Tmp{$k}->{stime} = $v; + if (defined $d) { + $Tmp{$k}->{delta} += $i == $len_b ? $d : 0; + } + } + + return $this; +} + +# parse input +my @Data; +my @SortedData; +my $last = []; +my $time = 0; +my $delta = undef; +my $ignored = 0; +my $line; +my $maxdelta = 1; + +# reverse if needed +foreach (<>) { + chomp; + $line = $_; + if ($stackreverse) { + # there may be an extra samples column for differentials + # XXX todo: redo these REs as one. It's repeated below. + my($stack, $samples) = (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + my $samples2 = undef; + if ($stack =~ /^(.*)\s+?(\d+(?:\.\d*)?)$/) { + $samples2 = $samples; + ($stack, $samples) = $stack =~ (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + unshift @Data, join(";", reverse split(";", $stack)) . " $samples $samples2"; + } else { + unshift @Data, join(";", reverse split(";", $stack)) . " $samples"; + } + } else { + unshift @Data, $line; + } +} + +if ($flamechart) { + # In flame chart mode, just reverse the data so time moves from left to right. + @SortedData = reverse @Data; +} else { + @SortedData = sort @Data; +} + +# process and merge frames +foreach (@SortedData) { + chomp; + # process: folded_stack count + # eg: func_a;func_b;func_c 31 + my ($stack, $samples) = (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + unless (defined $samples and defined $stack) { + ++$ignored; + next; + } + + # there may be an extra samples column for differentials: + my $samples2 = undef; + if ($stack =~ /^(.*)\s+?(\d+(?:\.\d*)?)$/) { + $samples2 = $samples; + ($stack, $samples) = $stack =~ (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + } + $delta = undef; + if (defined $samples2) { + $delta = $samples2 - $samples; + $maxdelta = abs($delta) if abs($delta) > $maxdelta; + } + + # for chain graphs, annotate waker frames with "_[w]", for later + # coloring. This is a hack, but has a precedent ("_[k]" from perf). + if ($colors eq "chain") { + my @parts = split ";--;", $stack; + my @newparts = (); + $stack = shift @parts; + $stack .= ";--;"; + foreach my $part (@parts) { + $part =~ s/;/_[w];/g; + $part .= "_[w]"; + push @newparts, $part; + } + $stack .= join ";--;", @parts; + } + + # merge frames and populate %Node: + $last = flow($last, [ '', split ";", $stack ], $time, $delta); + + if (defined $samples2) { + $time += $samples2; + } else { + $time += $samples; + } +} +flow($last, [], $time, $delta); + +if ($countname eq "samples") { + # If $countname is used, it's likely that we're not measuring in stack samples + # (e.g. time could be the unit), so don't warn. + warn "Stack count is low ($time). Did something go wrong?\n" if $time < 100; +} + +warn "Ignored $ignored lines with invalid format\n" if $ignored; +unless ($time) { + warn "ERROR: No stack counts found\n"; + my $im = SVG->new(); + # emit an error message SVG, for tools automating flamegraph use + my $imageheight = $fontsize * 5; + $im->header($imagewidth, $imageheight); + $im->stringTTF(undef, int($imagewidth / 2), $fontsize * 2, + "ERROR: No valid input provided to flamegraph.pl."); + print $im->svg; + exit 2; +} +if ($timemax and $timemax < $time) { + warn "Specified --total $timemax is less than actual total $time, so ignored\n" + if $timemax/$time > 0.02; # only warn is significant (e.g., not rounding etc) + undef $timemax; +} +$timemax ||= $time; + +my $widthpertime = ($imagewidth - 2 * $xpad) / $timemax; + +# Treat as a percentage of time if the string ends in a "%". +my $minwidth_time; +if ($minwidth =~ /%$/) { + $minwidth_time = $timemax * $minwidth_f / 100; +} else { + $minwidth_time = $minwidth_f / $widthpertime; +} + +# prune blocks that are too narrow and determine max depth +while (my ($id, $node) = each %Node) { + my ($func, $depth, $etime) = split ";", $id; + my $stime = $node->{stime}; + die "missing start for $id" if not defined $stime; + + if (($etime-$stime) < $minwidth_time) { + delete $Node{$id}; + next; + } + $depthmax = $depth if $depth > $depthmax; +} + +# draw canvas, and embed interactive JavaScript program +my $imageheight = (($depthmax + 1) * $frameheight) + $ypad1 + $ypad2; +$imageheight += $ypad3 if $subtitletext ne ""; +my $titlesize = $fontsize + 5; +my $im = SVG->new(); +my ($black, $vdgrey, $dgrey) = ( + $im->colorAllocate(0, 0, 0), + $im->colorAllocate(160, 160, 160), + $im->colorAllocate(200, 200, 200), + ); +$im->header($imagewidth, $imageheight); +my $inc = < + + + + + + + +INC +$im->include($inc); +$im->filledRectangle(0, 0, $imagewidth, $imageheight, 'url(#background)'); +$im->stringTTF("title", int($imagewidth / 2), $fontsize * 2, $titletext); +$im->stringTTF("subtitle", int($imagewidth / 2), $fontsize * 4, $subtitletext) if $subtitletext ne ""; +$im->stringTTF("details", $xpad, $imageheight - ($ypad2 / 2), " "); +$im->stringTTF("unzoom", $xpad, $fontsize * 2, "Reset Zoom", 'class="hide"'); +$im->stringTTF("search", $imagewidth - $xpad - 100, $fontsize * 2, "Search"); +$im->stringTTF("ignorecase", $imagewidth - $xpad - 16, $fontsize * 2, "ic"); +$im->stringTTF("matched", $imagewidth - $xpad - 100, $imageheight - ($ypad2 / 2), " "); + +if ($palette) { + read_palette(); +} + +# draw frames +$im->group_start({id => "frames"}); +while (my ($id, $node) = each %Node) { + my ($func, $depth, $etime) = split ";", $id; + my $stime = $node->{stime}; + my $delta = $node->{delta}; + + $etime = $timemax if $func eq "" and $depth == 0; + + my $x1 = $xpad + $stime * $widthpertime; + my $x2 = $xpad + $etime * $widthpertime; + my ($y1, $y2); + unless ($inverted) { + $y1 = $imageheight - $ypad2 - ($depth + 1) * $frameheight + $framepad; + $y2 = $imageheight - $ypad2 - $depth * $frameheight; + } else { + $y1 = $ypad1 + $depth * $frameheight; + $y2 = $ypad1 + ($depth + 1) * $frameheight - $framepad; + } + + # Add commas per perlfaq5: + # https://perldoc.perl.org/perlfaq5#How-can-I-output-my-numbers-with-commas-added? + my $samples = sprintf "%.0f", ($etime - $stime) * $factor; + (my $samples_txt = $samples) + =~ s/(^[-+]?\d+?(?=(?>(?:\d{3})+)(?!\d))|\G\d{3}(?=\d))/$1,/g; + + my $info; + if ($func eq "" and $depth == 0) { + $info = "all ($samples_txt $countname, 100%)"; + } else { + my $pct = sprintf "%.2f", ((100 * $samples) / ($timemax * $factor)); + my $escaped_func = $func; + # clean up SVG breaking characters: + $escaped_func =~ s/&/&/g; + $escaped_func =~ s//>/g; + $escaped_func =~ s/"/"/g; + $escaped_func =~ s/_\[[kwij]\]$//; # strip any annotation + unless (defined $delta) { + $info = "$escaped_func ($samples_txt $countname, $pct%)"; + } else { + my $d = $negate ? -$delta : $delta; + my $deltapct = sprintf "%.2f", ((100 * $d) / ($timemax * $factor)); + $deltapct = $d > 0 ? "+$deltapct" : $deltapct; + $info = "$escaped_func ($samples_txt $countname, $pct%; $deltapct%)"; + } + } + + my $nameattr = { %{ $nameattr{$func}||{} } }; # shallow clone + $nameattr->{title} ||= $info; + $im->group_start($nameattr); + + my $color; + if ($func eq "--") { + $color = $vdgrey; + } elsif ($func eq "-") { + $color = $dgrey; + } elsif (defined $delta) { + $color = color_scale($delta, $maxdelta); + } elsif ($palette) { + $color = color_map($colors, $func); + } else { + $color = color($colors, $hash, $func); + } + $im->filledRectangle($x1, $y1, $x2, $y2, $color, 'rx="2" ry="2"'); + + my $chars = int( ($x2 - $x1) / ($fontsize * $fontwidth)); + my $text = ""; + if ($chars >= 3) { # room for one char plus two dots + $func =~ s/_\[[kwij]\]$//; # strip any annotation + $text = substr $func, 0, $chars; + substr($text, -2, 2) = ".." if $chars < length $func; + $text =~ s/&/&/g; + $text =~ s//>/g; + } + $im->stringTTF(undef, $x1 + 3, 3 + ($y1 + $y2) / 2, $text); + + $im->group_end($nameattr); +} +$im->group_end(); + +print $im->svg; + +if ($palette) { + write_palette(); +} + +# vim: ts=8 sts=8 sw=8 noexpandtab diff --git a/tests/benchmarks/_script/flamegraph/jmaps b/tests/benchmarks/_script/flamegraph/jmaps new file mode 100755 index 00000000000..f8014f5a82f --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/jmaps @@ -0,0 +1,104 @@ +#!/bin/bash +# +# jmaps - creates java /tmp/perf-PID.map symbol maps for all java processes. +# +# This is a helper script that finds all running "java" processes, then executes +# perf-map-agent on them all, creating symbol map files in /tmp. These map files +# are read by perf_events (aka "perf") when doing system profiles (specifically, +# the "report" and "script" subcommands). +# +# USAGE: jmaps [-u] +# -u # unfoldall: include inlined symbols +# +# My typical workflow is this: +# +# perf record -F 99 -a -g -- sleep 30; jmaps +# perf script > out.stacks +# ./stackcollapse-perf.pl out.stacks | ./flamegraph.pl --color=java --hash > out.stacks.svg +# +# The stackcollapse-perf.pl and flamegraph.pl programs come from: +# https://github.com/brendangregg/FlameGraph +# +# REQUIREMENTS: +# Tune two environment settings below. +# +# 13-Feb-2015 Brendan Gregg Created this. +# 20-Feb-2017 " " Added -u for unfoldall. + +JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/java-8-oracle} +AGENT_HOME=${AGENT_HOME:-/usr/lib/jvm/perf-map-agent} # from https://github.com/jvm-profiling-tools/perf-map-agent +debug=0 + +if [[ "$USER" != root ]]; then + echo "ERROR: not root user? exiting..." + exit +fi + +if [[ ! -x $JAVA_HOME ]]; then + echo "ERROR: JAVA_HOME not set correctly; edit $0 and fix" + exit +fi + +if [[ ! -x $AGENT_HOME ]]; then + echo "ERROR: AGENT_HOME not set correctly; edit $0 and fix" + exit +fi + +if [[ "$1" == "-u" ]]; then + opts=unfoldall +fi + +# figure out where the agent files are: +AGENT_OUT="" +AGENT_JAR="" +if [[ -e $AGENT_HOME/out/attach-main.jar ]]; then + AGENT_JAR=$AGENT_HOME/out/attach-main.jar +elif [[ -e $AGENT_HOME/attach-main.jar ]]; then + AGENT_JAR=$AGENT_HOME/attach-main.jar +fi +if [[ -e $AGENT_HOME/out/libperfmap.so ]]; then + AGENT_OUT=$AGENT_HOME/out +elif [[ -e $AGENT_HOME/libperfmap.so ]]; then + AGENT_OUT=$AGENT_HOME +fi +if [[ "$AGENT_OUT" == "" || "$AGENT_JAR" == "" ]]; then + echo "ERROR: Missing perf-map-agent files in $AGENT_HOME. Check installation." + exit +fi + +# Fetch map for all "java" processes +echo "Fetching maps for all java processes..." +for pid in $(pgrep -x java); do + mapfile=/tmp/perf-$pid.map + [[ -e $mapfile ]] && rm $mapfile + + cmd="cd $AGENT_OUT; $JAVA_HOME/bin/java -Xms32m -Xmx128m -cp $AGENT_JAR:$JAVA_HOME/lib/tools.jar net.virtualvoid.perf.AttachOnce $pid $opts" + (( debug )) && echo $cmd + + user=$(ps ho user -p $pid) + group=$(ps ho group -p $pid) + if [[ "$user" != root ]]; then + if [[ "$user" == [0-9]* ]]; then + # UID only, likely GID too, run sudo with #UID: + cmd="sudo -u '#'$user -g '#'$group sh -c '$cmd'" + else + cmd="sudo -u $user -g $group sh -c '$cmd'" + fi + fi + + echo "Mapping PID $pid (user $user):" + if (( debug )); then + time eval $cmd + else + eval $cmd + fi + if [[ -e "$mapfile" ]]; then + chown root $mapfile + chmod 666 $mapfile + else + echo "ERROR: $mapfile not created." + fi + + echo "wc(1): $(wc $mapfile)" + echo +done diff --git a/tests/benchmarks/_script/flamegraph/pkgsplit-perf.pl b/tests/benchmarks/_script/flamegraph/pkgsplit-perf.pl new file mode 100755 index 00000000000..3a9902da49f --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/pkgsplit-perf.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl -w +# +# pkgsplit-perf.pl Split IP samples on package names "/", eg, Java. +# +# This is for the creation of Java package flame graphs. Example steps: +# +# perf record -F 199 -a -- sleep 30; ./jmaps +# perf script | ./pkgsplit-perf.pl | ./flamegraph.pl > out.svg +# +# Note that stack traces are not sampled (no -g), as we split Java package +# names into frames rather than stack frames. +# +# (jmaps is a helper script for automating perf-map-agent: Java symbol dumps.) +# +# The default output of "perf script" varies between kernel versions, so we'll +# need to deal with that here. I could make people use the perf script option +# to pick fields, so our input is static, but A) I prefer the simplicity of +# just saying: run "perf script", and B) the option to choose fields itself +# changed between kernel versions! -f became -F. +# +# Copyright 2017 Netflix, Inc. +# Licensed under the Apache License, Version 2.0 (the "License") +# +# 20-Sep-2016 Brendan Gregg Created this. + +use strict; + +my $include_pname = 1; # include process names in stacks +my $include_pid = 0; # include process ID with process name +my $include_tid = 0; # include process & thread ID with process name + +while (<>) { + # filter comments + next if /^#/; + + # filter idle events + next if /xen_hypercall_sched_op|cpu_idle|native_safe_halt/; + + my ($pid, $tid, $pname); + + # Linux 3.13: + # java 13905 [000] 8048.096572: cpu-clock: 7fd781ac3053 Ljava/util/Arrays$ArrayList;::toArray (/tmp/perf-12149.map) + # java 8301 [050] 13527.392454: cycles: 7fa8a80d9bff Dictionary::find(int, unsigned int, Symbol*, ClassLoaderData*, Handle, Thread*) (/usr/lib/jvm/java-8-oracle-1.8.0.121/jre/lib/amd64/server/libjvm.so) + # java 4567/8603 [023] 13527.389886: cycles: 7fa863349895 Lcom/google/gson/JsonObject;::add (/tmp/perf-4567.map) + # + # Linux 4.8: + # java 30894 [007] 452884.077440: 10101010 cpu-clock: 7f0acc8eff67 Lsun/nio/ch/SocketChannelImpl;::read+0x27 (/tmp/perf-30849.map) + # bash 26858/26858 [006] 5440237.995639: cpu-clock: 433573 [unknown] (/bin/bash) + # + if (/^\s+(\S.+?)\s+(\d+)\/*(\d+)*\s.*?:.*:/) { + # parse process name and pid/tid + if ($3) { + ($pid, $tid) = ($2, $3); + } else { + ($pid, $tid) = ("?", $2); + } + + if ($include_tid) { + $pname = "$1-$pid/$tid"; + } elsif ($include_pid) { + $pname = "$1-$pid"; + } else { + $pname = $1; + } + $pname =~ tr/ /_/; + } else { + # not a match + next; + } + + # parse rest of line + s/^.*?:.*?:\s+//; + s/ \(.*?\)$//; + chomp; + my ($addr, $func) = split(' ', $_, 2); + + # strip Java's leading "L" + $func =~ s/^L//; + + # replace numbers with X + $func =~ s/[0-9]/X/g; + + # colon delimitered + $func =~ s:/:;:g; + print "$pname;$func 1\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/range-perf.pl b/tests/benchmarks/_script/flamegraph/range-perf.pl new file mode 100755 index 00000000000..0fca6decd23 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/range-perf.pl @@ -0,0 +1,137 @@ +#!/usr/bin/perl -w +# +# range-perf Extract a time range from Linux "perf script" output. +# +# USAGE EXAMPLE: +# +# perf record -F 100 -a -- sleep 60 +# perf script | ./perf2range.pl 10 20 # range 10 to 20 seconds only +# perf script | ./perf2range.pl 0 0.5 # first half second only +# +# MAKING A SERIES OF FLAME GRAPHS: +# +# Let's say you had the output of "perf script" in a file, out.stacks01, which +# was for a 180 second profile. The following command creates a series of +# flame graphs for each 10 second interval: +# +# for i in `seq 0 10 170`; do cat out.stacks01 | \ +# ./perf2range.pl $i $((i + 10)) | ./stackcollapse-perf.pl | \ +# grep -v cpu_idle | ./flamegraph.pl --hash --color=java \ +# --title="range $i $((i + 10))" > out.range_$i.svg; echo $i done; done +# +# In that example, I used "--color=java" for the Java palette, and excluded +# the idle CPU task. Customize as needed. +# +# Copyright 2017 Netflix, Inc. +# Licensed under the Apache License, Version 2.0 (the "License") +# +# 21-Feb-2017 Brendan Gregg Created this. + +use strict; +use Getopt::Long; +use POSIX 'floor'; + +sub usage { + die < \$timeraw, + 'timezerosecs' => \$timezerosecs, +) or usage(); + +if (@ARGV < 2 || $ARGV[0] eq "-h" || $ARGV[0] eq "--help") { + usage(); + exit; +} +my $begin = $ARGV[0]; +my $end = $ARGV[1]; + +# +# Parsing +# +# IP only examples: +# +# java 52025 [026] 99161.926202: cycles: +# java 14341 [016] 252732.474759: cycles: 7f36571947c0 nmethod::is_nmethod() const (/... +# java 14514 [022] 28191.353083: cpu-clock: 7f92b4fdb7d4 Ljava_util_List$size$0;::call (/tmp/perf-11936.map) +# swapper 0 [002] 6035557.056977: 10101010 cpu-clock: ffffffff810013aa xen_hypercall_sched_op+0xa (/lib/modules/4.9-virtual/build/vmlinux) +# bash 25370 603are 6036.991603: 10101010 cpu-clock: 4b931e [unknown] (/bin/bash) +# bash 25370/25370 6036036.799684: cpu-clock: 4b913b [unknown] (/bin/bash) +# other combinations are possible. +# +# Stack examples (-g): +# +# swapper 0 [021] 28648.467059: cpu-clock: +# ffffffff810013aa xen_hypercall_sched_op ([kernel.kallsyms]) +# ffffffff8101cb2f default_idle ([kernel.kallsyms]) +# ffffffff8101d406 arch_cpu_idle ([kernel.kallsyms]) +# ffffffff810bf475 cpu_startup_entry ([kernel.kallsyms]) +# ffffffff81010228 cpu_bringup_and_idle ([kernel.kallsyms]) +# +# java 14375 [022] 28648.467079: cpu-clock: +# 7f92bdd98965 Ljava/io/OutputStream;::write (/tmp/perf-11936.map) +# 7f8808cae7a8 [unknown] ([unknown]) +# +# swapper 0 [005] 5076.836336: cpu-clock: +# ffffffff81051586 native_safe_halt ([kernel.kallsyms]) +# ffffffff8101db4f default_idle ([kernel.kallsyms]) +# ffffffff8101e466 arch_cpu_idle ([kernel.kallsyms]) +# ffffffff810c2b31 cpu_startup_entry ([kernel.kallsyms]) +# ffffffff810427cd start_secondary ([kernel.kallsyms]) +# +# swapper 0 [002] 6034779.719110: 10101010 cpu-clock: +# 2013aa xen_hypercall_sched_op+0xfe20000a (/lib/modules/4.9-virtual/build/vmlinux) +# a72f0e default_idle+0xfe20001e (/lib/modules/4.9-virtual/build/vmlinux) +# 2392bf arch_cpu_idle+0xfe20000f (/lib/modules/4.9-virtual/build/vmlinux) +# a73333 default_idle_call+0xfe200023 (/lib/modules/4.9-virtual/build/vmlinux) +# 2c91a4 cpu_startup_entry+0xfe2001c4 (/lib/modules/4.9-virtual/build/vmlinux) +# 22b64a cpu_bringup_and_idle+0xfe20002a (/lib/modules/4.9-virtual/build/vmlinux) +# +# bash 25370/25370 6035935.188539: cpu-clock: +# b9218 [unknown] (/bin/bash) +# 2037fe8 [unknown] ([unknown]) +# other combinations are possible. +# +# This regexp matches the event line, and puts time in $1, and the event name +# in $2: +# +my $event_regexp = qr/ +([0-9\.]+): *\S* *(\S+):/; + +my $line; +my $start = 0; +my $ok = 0; +my $time; + +while (1) { + $line = ; + last unless defined $line; + next if $line =~ /^#/; # skip comments + + if ($line =~ $event_regexp) { + my ($ts, $event) = ($1, $2, $3); + $start = $ts if $start == 0; + + if ($timezerosecs) { + $time = $ts - floor($start); + } elsif (!$timeraw) { + $time = $ts - $start; + } else { + $time = $ts; # raw times + } + + $ok = 1 if $time >= $begin; + # assume samples are in time order: + exit if $time > $end; + } + + print $line if $ok; +} diff --git a/tests/benchmarks/_script/flamegraph/record-test.sh b/tests/benchmarks/_script/flamegraph/record-test.sh new file mode 100755 index 00000000000..569ecc966bb --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/record-test.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# record-test.sh - Overwrite flame graph test result files. +# +# See test.sh, which checks these resulting files. +# +# Currently only tests stackcollapse-perf.pl. + +set -v -x + +# ToDo: add some form of --inline, and --inline --context tests. These are +# tricky since they use addr2line, whose output will vary based on the test +# system's binaries and symbol tables. +for opt in pid tid kernel jit all addrs; do + for testfile in test/*.txt ; do + echo testing $testfile : $opt + outfile=${testfile#*/} + outfile=test/results/${outfile%.txt}"-collapsed-${opt}.txt" + ./stackcollapse-perf.pl --"${opt}" "${testfile}" 2> /dev/null > $outfile + done +done diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-aix.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-aix.pl new file mode 100755 index 00000000000..8456d56b918 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-aix.pl @@ -0,0 +1,61 @@ +#!/usr/bin/perl -ws +# +# stackcollapse-aix Collapse AIX /usr/bin/procstack backtraces +# +# Parse a list of backtraces as generated with the poor man's aix-perf.pl +# profiler +# + +use strict; + +my $process = ""; +my $current = ""; +my $previous_function = ""; + +my %stacks; + +while(<>) { + chomp; + if (m/^\d+:/) { + if(!($current eq "")) { + $current = $process . ";" . $current; + $stacks{$current} += 1; + $current = ""; + } + m/^\d+: ([^ ]*)/; + $process = $1; + $current = ""; + } + elsif(m/^---------- tid# \d+/){ + if(!($current eq "")) { + $current = $process . ";" . $current; + $stacks{$current} += 1; + } + $current = ""; + } + elsif(m/^(0x[0-9abcdef]*) *([^ ]*) ([^ ]*) ([^ ]*)/) { + my $function = $2; + my $alt = $1; + $function=~s/\(.*\)?//; + if($function =~ /^\[.*\]$/) { + $function = $alt; + } + if ($current) { + $current = $function . ";" . $current; + } + else { + $current = $function; + } + } +} + +if(!($current eq "")) { + $current = $process . ";" . $current; + $stacks{$current} += 1; + $current = ""; + $process = ""; +} + +foreach my $k (sort { $a cmp $b } keys %stacks) { + print "$k $stacks{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-bpftrace.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-bpftrace.pl new file mode 100755 index 00000000000..f458c3e3af1 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-bpftrace.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -w +# +# stackcollapse-bpftrace.pl collapse bpftrace samples into single lines. +# +# USAGE ./stackcollapse-bpftrace.pl infile > outfile +# +# Example input: +# +# @[ +# _raw_spin_lock_bh+0 +# tcp_recvmsg+808 +# inet_recvmsg+81 +# sock_recvmsg+67 +# sock_read_iter+144 +# new_sync_read+228 +# __vfs_read+41 +# vfs_read+142 +# sys_read+85 +# do_syscall_64+115 +# entry_SYSCALL_64_after_hwframe+61 +# ]: 3 +# +# Example output: +# +# entry_SYSCALL_64_after_hwframe+61;do_syscall_64+115;sys_read+85;vfs_read+142;__vfs_read+41;new_sync_read+228;sock_read_iter+144;sock_recvmsg+67;inet_recvmsg+81;tcp_recvmsg+808;_raw_spin_lock_bh+0 3 +# +# Copyright 2018 Peter Sanford. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# (http://www.gnu.org/copyleft/gpl.html) +# + +use strict; + +my @stack; +my $in_stack = 0; + +foreach (<>) { + chomp; + if (!$in_stack) { + if (/^@\[$/) { + $in_stack = 1; + } elsif (/^@\[,\s(.*)\]: (\d+)/) { + print $1 . " $2\n"; + } + } else { + if (m/^,?\s?(.*)\]: (\d+)/) { + if (length $1) { + push(@stack, $1); + } + print join(';', reverse(@stack)) . " $2\n"; + $in_stack = 0; + @stack = (); + } else { + $_ =~ s/^\s+//; + push(@stack, $_); + } + } +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-chrome-tracing.py b/tests/benchmarks/_script/flamegraph/stackcollapse-chrome-tracing.py new file mode 100755 index 00000000000..b4869781d90 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-chrome-tracing.py @@ -0,0 +1,144 @@ +#!/usr/bin/python +# +# stackcolllapse-chrome-tracing.py collapse Trace Event Format [1] +# callstack events into single lines. +# +# [1] https://github.com/catapult-project/catapult/wiki/Trace-Event-Format +# +# USAGE: ./stackcollapse-chrome-tracing.py input_json [input_json...] > outfile +# +# Example input: +# +# {"traceEvents":[ +# {"pid":1,"tid":2,"ts":0,"ph":"X","name":"Foo","dur":50}, +# {"pid":1,"tid":2,"ts":10,"ph":"X","name":"Bar","dur":30} +# ]} +# +# Example output: +# +# Foo 20.0 +# Foo;Bar 30.0 +# +# Input may contain many stack trace events from many processes/threads. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 +# +# 4-Jan-2018 Marcin Kolny Created this. +import argparse +import json + +stack_identifiers = {} + + +class Event: + def __init__(self, label, timestamp, dur): + self.label = label + self.timestamp = timestamp + self.duration = dur + self.total_duration = dur + + def get_stop_timestamp(self): + return self.timestamp + self.duration + + +def cantor_pairing(a, b): + s = a + b + return s * (s + 1) / 2 + b + + +def get_trace_events(trace_file, events_dict): + json_data = json.load(trace_file) + + for entry in json_data['traceEvents']: + if entry['ph'] == 'X': + cantor_val = cantor_pairing(int(entry['tid']), int(entry['pid'])) + if 'dur' not in entry: + continue + if cantor_val not in events_dict: + events_dict[cantor_val] = [] + events_dict[cantor_val].append(Event(entry['name'], float(entry['ts']), float(entry['dur']))) + + +def load_events(trace_files): + events = {} + + for trace_file in trace_files: + get_trace_events(trace_file, events) + + for key in events: + events[key].sort(key=lambda x: x.timestamp) + + return events + + +def save_stack(stack): + first = True + event = None + identifier = '' + + for event in stack: + if first: + first = False + else: + identifier += ';' + identifier += event.label + + if not event: + return + + if identifier in stack_identifiers: + stack_identifiers[identifier] += event.total_duration + else: + stack_identifiers[identifier] = event.total_duration + + +def load_stack_identifiers(events): + event_stack = [] + + for e in events: + if not event_stack: + event_stack.append(e) + else: + while event_stack and event_stack[-1].get_stop_timestamp() <= e.timestamp: + save_stack(event_stack) + event_stack.pop() + + if event_stack: + event_stack[-1].total_duration -= e.duration + + event_stack.append(e) + + while event_stack: + save_stack(event_stack) + event_stack.pop() + + +parser = argparse.ArgumentParser() +parser.add_argument('input_file', nargs='+', + type=argparse.FileType('r'), + help='Chrome Tracing input files') +args = parser.parse_args() + +all_events = load_events(args.input_file) +for tid_pid in all_events: + load_stack_identifiers(all_events[tid_pid]) + +for identifiers, duration in stack_identifiers.items(): + print(identifiers + ' ' + str(duration)) diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-elfutils.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-elfutils.pl new file mode 100755 index 00000000000..c5e6b17e44b --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-elfutils.pl @@ -0,0 +1,98 @@ +#!/usr/bin/perl -w +# +# stackcollapse-elfutils Collapse elfutils stack (eu-stack) backtraces +# +# Parse a list of elfutils backtraces as generated with the poor man's +# profiler [1]: +# +# for x in $(seq 1 "$nsamples"); do +# eu-stack -p "$pid" "$@" +# sleep "$sleeptime" +# done +# +# [1] http://poormansprofiler.org/ +# +# Copyright 2014 Gabriel Corona. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 + +use strict; +use Getopt::Long; + +my $with_pid = 0; +my $with_tid = 0; + +GetOptions('pid' => \$with_pid, + 'tid' => \$with_tid) +or die < outfile\n + --pid # include PID + --tid # include TID +USAGE_END + +my $pid = ""; +my $tid = ""; +my $current = ""; +my $previous_function = ""; + +my %stacks; + +sub add_current { + if(!($current eq "")) { + my $entry; + if ($with_tid) { + $current = "TID=$tid;$current"; + } + if ($with_pid) { + $current = "PID=$pid;$current"; + } + $stacks{$current} += 1; + $current = ""; + } +} + +while(<>) { + chomp; + if (m/^PID ([0-9]*)/) { + add_current(); + $pid = $1; + } + elsif(m/^TID ([0-9]*)/) { + add_current(); + $tid = $1; + } elsif(m/^#[0-9]* *0x[0-9a-f]* (.*)/) { + if ($current eq "") { + $current = $1; + } else { + $current = "$1;$current"; + } + } elsif(m/^#[0-9]* *0x[0-9a-f]*/) { + if ($current eq "") { + $current = "[unknown]"; + } else { + $current = "[unknown];$current"; + } + } +} +add_current(); + +foreach my $k (sort { $a cmp $b } keys %stacks) { + print "$k $stacks{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-faulthandler.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-faulthandler.pl new file mode 100755 index 00000000000..4fe74ffa7b8 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-faulthandler.pl @@ -0,0 +1,61 @@ +#!/usr/bin/perl -ws +# +# stackcollapse-faulthandler Collapse Python faulthandler backtraces +# +# Parse a list of Python faulthandler backtraces as generated with +# faulthandler.dump_traceback_later. +# +# Copyright 2014 Gabriel Corona. All rights reserved. +# Copyright 2017 Jonathan Kolb. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 + +use strict; + +my $current = ""; + +my %stacks; + +while(<>) { + chomp; + if (m/^Thread/) { + $current="" + } + elsif(m/^ File "([^"]*)", line ([0-9]*) in (.*)/) { + my $function = $1 . ":" . $2 . ":" . $3; + if ($current eq "") { + $current = $function; + } else { + $current = $function . ";" . $current; + } + } elsif(!($current eq "")) { + $stacks{$current} += 1; + $current = ""; + } +} + +if(!($current eq "")) { + $stacks{$current} += 1; + $current = ""; +} + +foreach my $k (sort { $a cmp $b } keys %stacks) { + print "$k $stacks{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-gdb.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-gdb.pl new file mode 100755 index 00000000000..8e9831b22e5 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-gdb.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -ws +# +# stackcollapse-gdb Collapse GDB backtraces +# +# Parse a list of GDB backtraces as generated with the poor man's +# profiler [1]: +# +# for x in $(seq 1 500); do +# gdb -ex "set pagination 0" -ex "thread apply all bt" -batch -p $pid 2> /dev/null +# sleep 0.01 +# done +# +# [1] http://poormansprofiler.org/ +# +# Copyright 2014 Gabriel Corona. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 + +use strict; + +my $current = ""; +my $previous_function = ""; + +my %stacks; + +while(<>) { + chomp; + if (m/^Thread/) { + $current="" + } + elsif(m/^#[0-9]* *([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*)/) { + my $function = $3; + my $alt = $1; + if(not($1 =~ /0x[a-zA-Z0-9]*/)) { + $function = $alt; + } + if ($current eq "") { + $current = $function; + } else { + $current = $function . ";" . $current; + } + } elsif(!($current eq "")) { + $stacks{$current} += 1; + $current = ""; + } +} + +if(!($current eq "")) { + $stacks{$current} += 1; + $current = ""; +} + +foreach my $k (sort { $a cmp $b } keys %stacks) { + print "$k $stacks{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-go.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-go.pl new file mode 100755 index 00000000000..3b2ce3c552f --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-go.pl @@ -0,0 +1,150 @@ +#!/usr/bin/perl -w +# +# stackcollapse-go.pl collapse golang samples into single lines. +# +# Parses golang smaples generated by "go tool pprof" and outputs stacks as +# single lines, with methods separated by semicolons, and then a space and an +# occurrence count. For use with flamegraph.pl. +# +# USAGE: ./stackcollapse-go.pl infile > outfile +# +# Example Input: +# ... +# Samples: +# samples/count cpu/nanoseconds +# 1 10000000: 1 2 +# 2 10000000: 3 2 +# 1 10000000: 4 2 +# ... +# Locations +# 1: 0x58b265 scanblock :0 s=0 +# 2: 0x599530 GC :0 s=0 +# 3: 0x58a999 flushptrbuf :0 s=0 +# 4: 0x58d6a8 runtime.MSpan_Sweep :0 s=0 +# ... +# Mappings +# ... +# +# Example Output: +# +# GC;flushptrbuf 2 +# GC;runtime.MSpan_Sweep 1 +# GC;scanblock 1 +# +# Input may contain many stacks as generated from go tool pprof: +# +# go tool pprof -seconds=60 -raw -output=a.pprof http://$ADDR/debug/pprof/profile +# +# For format of text profile, See golang/src/internal/pprof/profile/profile.go +# +# Copyright 2017 Sijie Yang (yangsijie@baidu.com). All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# (http://www.gnu.org/copyleft/gpl.html) +# +# 16-Jan-2017 Sijie Yang Created this. + +use strict; + +use Getopt::Long; + +# tunables +my $help = 0; + +sub usage { + die < outfile\n +USAGE_END +} + +GetOptions( + 'help' => \$help, +) or usage(); +$help && usage(); + +# internals +my $state = "ignore"; +my %stacks; +my %frames; +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $stacks{$stack} += $count; +} + +# +# Output stack string in required format. For example, for the following samples, +# format_statck() would return GC;runtime.MSpan_Sweep for stack "4 2" +# +# Locations +# 1: 0x58b265 scanblock :0 s=0 +# 2: 0x599530 GC :0 s=0 +# 3: 0x58a999 flushptrbuf :0 s=0 +# 4: 0x58d6a8 runtime.MSpan_Sweep :0 s=0 +# +sub format_statck { + my ($stack) = @_; + my @loc_list = split(/ /, $stack); + + for (my $i=0; $i<=$#loc_list; $i++) { + my $loc_name = $frames{$loc_list[$i]}; + $loc_list[$i] = $loc_name if ($loc_name); + } + return join(";", reverse(@loc_list)); +} + +foreach (<>) { + next if m/^#/; + chomp; + + if ($state eq "ignore") { + if (/Samples:/) { + $state = "sample"; + next; + } + + } elsif ($state eq "sample") { + if (/^\s*([0-9]+)\s*[0-9]+: ([0-9 ]+)/) { + my $samples = $1; + my $stack = $2; + remember_stack($stack, $samples); + } elsif (/Locations/) { + $state = "location"; + next; + } + + } elsif ($state eq "location") { + if (/^\s*([0-9]*): 0x[0-9a-f]+ (M=[0-9]+ )?([^ ]+) .*/) { + my $loc_id = $1; + my $loc_name = $3; + $frames{$loc_id} = $loc_name; + } elsif (/Mappings/) { + $state = "mapping"; + last; + } + } +} + +foreach my $k (keys %stacks) { + my $stack = format_statck($k); + my $count = $stacks{$k}; + $collapsed{$stack} += $count; +} + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + print "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-ibmjava.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-ibmjava.pl new file mode 100644 index 00000000000..f8ffa8bd4d7 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-ibmjava.pl @@ -0,0 +1,145 @@ +#!/usr/bin/perl -w +# +# stackcollapse-ibmjava.pl collapse jstack samples into single lines. +# +# Parses Java stacks generated by IBM Java with methods separated by semicolons, +# and then a space and an occurrence count. +# +# USAGE: ./stackcollapse-ibmjava.pl infile > outfile +# +# Example input: +# +# NULL +# 1XMTHDINFO Thread Details +# NULL +# NULL +# 3XMTHREADINFO "Default Executor-thread-149164" J9VMThread:0x0000000008132B00, j9thread_t:0x000000001A810B90, java/lang/Thread:0x0000000712BE8E48, state:R, prio=5 +# 3XMJAVALTHREAD (java/lang/Thread getId:0x3493E, isDaemon:true) +# 3XMTHREADINFO1 (native thread ID:0x3158, native priority:0x5, native policy:UNKNOWN, vmstate:R, vm thread flags:0x00000001) +# 3XMCPUTIME CPU usage total: 0.421875000 secs, user: 0.343750000 secs, system: 0.078125000 secs, current category="Application" +# 3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0) +# 3XMTHREADINFO3 Java callstack: +# 4XESTACKTRACE at java/net/SocketInputStream.socketRead0(Native Method) +# 4XESTACKTRACE at java/net/SocketInputStream.socketRead(SocketInputStream.java:127(Compiled Code)) +# 4XESTACKTRACE at java/net/SocketInputStream.read(SocketInputStream.java:182(Compiled Code)) +# 4XESTACKTRACE at java/net/SocketInputStream.read(SocketInputStream.java:152(Compiled Code)) +# 4XESTACKTRACE at java/io/FilterInputStream.read(FilterInputStream.java:144(Compiled Code)) +# ... +# 4XESTACKTRACE at java/lang/Thread.run(Thread.java:785(Compiled Code)) +# +# Example output: +# +# Default Executor-thread-149164;java/lang/Thread.run;java/net/SocketInputStream/read;java/net/SocketInputStream.socketRead0 1 +# +# +# Copyright 2014 Federico Juinio. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# (http://www.gnu.org/copyleft/gpl.html) +# +# 23-Aug-2023 Federico Juinio created this based from stackcollapse-jstack.pl + +use strict; + +use Getopt::Long; + +# tunables +my $include_tname = 1; # include thread names in stacks +my $include_tid = 0; # include thread IDs in stacks +my $shorten_pkgs = 0; # shorten package names +my $help = 0; + +sub usage { + die < outfile\n + --include-tname + --no-include-tname # include/omit thread names in stacks (default: include) + --include-tid + --no-include-tid # include/omit thread IDs in stacks (default: omit) + --shorten-pkgs + --no-shorten-pkgs # (don't) shorten package names (default: don't shorten) + + eg, + $0 --no-include-tname stacks.txt > collapsed.txt +USAGE_END +} + +GetOptions( + 'include-tname!' => \$include_tname, + 'include-tid!' => \$include_tid, + 'shorten-pkgs!' => \$shorten_pkgs, + 'help' => \$help, +) or usage(); +$help && usage(); + + +# internals +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $collapsed{$stack} += $count; +} + +my @stack; +my $tname; +my $state = "?"; + +foreach (<>) { + next if m/^#/; + chomp; + + if (m/^3XMTHREADINFO3 Native callstack:/) { + # save stack + if (defined $tname) { unshift @stack, $tname; } + remember_stack(join(";", @stack), 1) if @stack; + undef @stack; + undef $tname; + $state = "?"; + next; + } + + # look for thread header line and parse thread name and state + if (/^3XMTHREADINFO "([^"]*).* state:(.*), /) { + my $name = $1; + if ($include_tname) { + $tname = $name; + } + $state = $2; + # special handling for "Anonymous native threads" + } elsif (/3XMTHREADINFO Anonymous native thread/) { + $tname = "Anonymous native thread"; + # look for thread id + } elsif (/^3XMTHREADINFO1 \(native thread ID:([^ ]*), native priority/) { + if ($include_tname && $include_tid) { + $tname = $tname . "-" . $1 + } + # collect stack frames + } elsif (/^4XESTACKTRACE at ([^\(]*)/) { + my $func = $1; + if ($shorten_pkgs) { + my ($pkgs, $clsFunc) = ( $func =~ m/(.*\.)([^.]+\.[^.]+)$/ ); + $pkgs =~ s/(\w)\w*/$1/g; + $func = $pkgs . $clsFunc; + } + unshift @stack, $func; + + } +} + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + print "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-instruments.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-instruments.pl new file mode 100755 index 00000000000..3cbaa87bc27 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-instruments.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w +# +# stackcollapse-instruments.pl +# +# Parses a file containing a call tree as produced by XCode Instruments +# (Edit > Deep Copy) and produces output suitable for flamegraph.pl. +# +# USAGE: ./stackcollapse-instruments.pl infile > outfile + +use strict; + +my @stack = (); + +<>; +foreach (<>) { + chomp; + /\d+\.\d+ (?:min|s|ms)\s+\d+\.\d+%\s+(\d+(?:\.\d+)?) (min|s|ms)\t \t(\s*)(.+)/ or die; + my $func = $4; + my $depth = length ($3); + $stack [$depth] = $4; + foreach my $i (0 .. $depth - 1) { + print $stack [$i]; + print ";"; + } + + my $time = 0 + $1; + if ($2 eq "min") { + $time *= 60*1000; + } elsif ($2 eq "s") { + $time *= 1000; + } + + printf("%s %.0f\n", $func, $time); +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-java-exceptions.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-java-exceptions.pl new file mode 100755 index 00000000000..19badbca6cb --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-java-exceptions.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -w +# +# stackcolllapse-java-exceptions.pl collapse java exceptions (found in logs) into single lines. +# +# Parses Java error stacks found in a log file and outputs them as +# single lines, with methods separated by semicolons, and then a space and an +# occurrence count. Inspired by stackcollapse-jstack.pl except that it does +# not act as a performance profiler. +# +# It can be useful if a Java process dumps a lot of different stacks in its logs +# and you want to quickly identify the biggest culprits. +# +# USAGE: ./stackcollapse-java-exceptions.pl infile > outfile +# +# Copyright 2018 Paul de Verdiere. All rights reserved. + +use strict; +use Getopt::Long; + +# tunables +my $shorten_pkgs = 0; # shorten package names +my $no_pkgs = 0; # really shorten package names!! +my $help = 0; + +sub usage { + die < outfile\n + --shorten-pkgs : shorten package names + --no-pkgs : suppress package names (makes SVG much more readable) + +USAGE_END +} + +GetOptions( + 'shorten-pkgs!' => \$shorten_pkgs, + 'no-pkgs!' => \$no_pkgs, + 'help' => \$help, +) or usage(); +$help && usage(); + +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $collapsed{$stack} += $count; +} + +my @stack; + +foreach (<>) { + chomp; + + if (/^\s*at ([^\(]*)/) { + my $func = $1; + if ($shorten_pkgs || $no_pkgs) { + my ($pkgs, $clsFunc) = ( $func =~ m/(.*\.)([^.]+\.[^.]+)$/ ); + $pkgs =~ s/(\w)\w*/$1/g; + $func = $no_pkgs ? $clsFunc: $pkgs . $clsFunc; + } + unshift @stack, $func; + } elsif (@stack ) { + next if m/.*waiting on .*/; + remember_stack(join(";", @stack), 1) if @stack; + undef @stack; + } +} + +remember_stack(join(";", @stack), 1) if @stack; + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + print "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-jstack.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-jstack.pl new file mode 100755 index 00000000000..da5740b6ee6 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-jstack.pl @@ -0,0 +1,176 @@ +#!/usr/bin/perl -w +# +# stackcollapse-jstack.pl collapse jstack samples into single lines. +# +# Parses Java stacks generated by jstack(1) and outputs RUNNABLE stacks as +# single lines, with methods separated by semicolons, and then a space and an +# occurrence count. This also filters some other "RUNNABLE" states that we +# know are probably not running, such as epollWait. For use with flamegraph.pl. +# +# You want this to process the output of at least 100 jstack(1)s. ie, run it +# 100 times with a sleep interval, and append to a file. This is really a poor +# man's Java profiler, due to the overheads of jstack(1), and how it isn't +# capturing stacks asynchronously. For a better profiler, see: +# http://www.brendangregg.com/blog/2014-06-12/java-flame-graphs.html +# +# USAGE: ./stackcollapse-jstack.pl infile > outfile +# +# Example input: +# +# "MyProg" #273 daemon prio=9 os_prio=0 tid=0x00007f273c038800 nid=0xe3c runnable [0x00007f28a30f2000] +# java.lang.Thread.State: RUNNABLE +# at java.net.SocketInputStream.socketRead0(Native Method) +# at java.net.SocketInputStream.read(SocketInputStream.java:121) +# ... +# at java.lang.Thread.run(Thread.java:744) +# +# Example output: +# +# MyProg;java.lang.Thread.run;java.net.SocketInputStream.read;java.net.SocketInputStream.socketRead0 1 +# +# Input may be created and processed using: +# +# i=0; while (( i++ < 200 )); do jstack PID >> out.jstacks; sleep 10; done +# cat out.jstacks | ./stackcollapse-jstack.pl > out.stacks-folded +# +# WARNING: jstack(1) incurs overheads. Test before use, or use a real profiler. +# +# Copyright 2014 Brendan Gregg. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# (http://www.gnu.org/copyleft/gpl.html) +# +# 14-Sep-2014 Brendan Gregg Created this. + +use strict; + +use Getopt::Long; + +# tunables +my $include_tname = 1; # include thread names in stacks +my $include_tid = 0; # include thread IDs in stacks +my $shorten_pkgs = 0; # shorten package names +my $help = 0; + +sub usage { + die < outfile\n + --include-tname + --no-include-tname # include/omit thread names in stacks (default: include) + --include-tid + --no-include-tid # include/omit thread IDs in stacks (default: omit) + --shorten-pkgs + --no-shorten-pkgs # (don't) shorten package names (default: don't shorten) + + eg, + $0 --no-include-tname stacks.txt > collapsed.txt +USAGE_END +} + +GetOptions( + 'include-tname!' => \$include_tname, + 'include-tid!' => \$include_tid, + 'shorten-pkgs!' => \$shorten_pkgs, + 'help' => \$help, +) or usage(); +$help && usage(); + + +# internals +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $collapsed{$stack} += $count; +} + +my @stack; +my $tname; +my $state = "?"; + +foreach (<>) { + next if m/^#/; + chomp; + + if (m/^$/) { + # only include RUNNABLE states + goto clear if $state ne "RUNNABLE"; + + # save stack + if (defined $tname) { unshift @stack, $tname; } + remember_stack(join(";", @stack), 1) if @stack; +clear: + undef @stack; + undef $tname; + $state = "?"; + next; + } + + # + # While parsing jstack output, the $state variable may be altered from + # RUNNABLE to other states. This causes the stacks to be filtered later, + # since only RUNNABLE stacks are included. + # + + if (/^"([^"]*)/) { + my $name = $1; + + if ($include_tname) { + $tname = $name; + unless ($include_tid) { + $tname =~ s/-\d+$//; + } + } + + # set state for various background threads + $state = "BACKGROUND" if $name =~ /C. CompilerThread/; + $state = "BACKGROUND" if $name =~ /Signal Dispatcher/; + $state = "BACKGROUND" if $name =~ /Service Thread/; + $state = "BACKGROUND" if $name =~ /Attach Listener/; + + } elsif (/java.lang.Thread.State: (\S+)/) { + $state = $1 if $state eq "?"; + } elsif (/^\s*at ([^\(]*)/) { + my $func = $1; + if ($shorten_pkgs) { + my ($pkgs, $clsFunc) = ( $func =~ m/(.*\.)([^.]+\.[^.]+)$/ ); + $pkgs =~ s/(\w)\w*/$1/g; + $func = $pkgs . $clsFunc; + } + unshift @stack, $func; + + # fix state for epollWait + $state = "WAITING" if $func =~ /epollWait/; + $state = "WAITING" if $func =~ /EPoll\.wait/; + + + # fix state for various networking functions + $state = "NETWORK" if $func =~ /socketAccept$/; + $state = "NETWORK" if $func =~ /Socket.*accept0$/; + $state = "NETWORK" if $func =~ /socketRead0$/; + + } elsif (/^\s*-/ or /^2\d\d\d-/ or /^Full thread dump/ or + /^JNI global references:/) { + # skip these info lines + next; + } else { + warn "Unrecognized line: $_"; + } +} + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + print "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-ljp.awk b/tests/benchmarks/_script/flamegraph/stackcollapse-ljp.awk new file mode 100755 index 00000000000..59aaae3d73b --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-ljp.awk @@ -0,0 +1,74 @@ +#!/usr/bin/awk -f +# +# stackcollapse-ljp.awk collapse lightweight java profile reports +# into single lines stacks. +# +# Parses a list of multiline stacks generated by: +# +# https://code.google.com/p/lightweight-java-profiler +# +# and outputs a semicolon separated stack followed by a space and a count. +# +# USAGE: ./stackcollapse-ljp.pl infile > outfile +# +# Example input: +# +# 42 3 my_func_b(prog.java:455) +# my_func_a(prog.java:123) +# java.lang.Thread.run(Thread.java:744) +# [...] +# +# Example output: +# +# java.lang.Thread.run;my_func_a;my_func_b 42 +# +# The unused number is the number of frames in each stack. +# +# Copyright 2014 Brendan Gregg. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 +# +# 12-Jun-2014 Brendan Gregg Created this. + +$1 == "Total" { + # We're done. Print last stack and exit. + print stack, count + exit +} + +{ + # Strip file location. Comment this out to keep. + gsub(/\(.*\)/, "") +} + +NF == 3 { + # New stack begins. Print previous buffered stack. + if (count) + print stack, count + + # Begin a new stack. + count = $1 + stack = $3 +} + +NF == 1 { + # Build stack. + stack = $1 ";" stack +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-perf-sched.awk b/tests/benchmarks/_script/flamegraph/stackcollapse-perf-sched.awk new file mode 100755 index 00000000000..e1a122d459e --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-perf-sched.awk @@ -0,0 +1,228 @@ +#!/usr/bin/awk -f + +# +# This program generates collapsed off-cpu stacks fit for use by flamegraph.pl +# from scheduler data collected via perf_events. +# +# Outputs the cumulative time off cpu in us for each distinct stack observed. +# +# Some awk variables further control behavior: +# +# record_tid If truthy, causes all stack traces to include the +# command and LWP id. +# +# record_wake_stack If truthy, stacks include the frames from the wakeup +# event in addition to the sleep event. +# See http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html#Wakeup +# +# recurse If truthy, attempt to recursively identify and +# visualize the full wakeup stack chain. +# See http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html#ChainGraph +# +# Note that this is only an approximation, as only the +# last sleep event is recorded (e.g. if a thread slept +# multiple times before waking another thread, only the +# last sleep event is used). Implies record_wake_stack=1 +# +# To set any of these variables from the command line, run via: +# +# stackcollapse-perf-sched.awk -v recurse=1 +# +# == Important warning == +# +# WARNING: tracing all scheduler events is very high overhead in perf. Even +# more alarmingly, there appear to be bugs in perf that prevent it from reliably +# getting consistent traces (even with large trace buffers), causing it to +# produce empty perf.data files with error messages of the form: +# +# 0x952790 [0x736d]: failed to process type: 3410 +# +# This failure is not determinisitic, so re-executing perf record will +# eventually succeed. +# +# == Usage == +# +# First, record data via perf_events: +# +# sudo perf record -g -e 'sched:sched_switch' \ +# -e 'sched:sched_stat_sleep' -e 'sched:sched_stat_blocked' \ +# -p -o perf.data -- sleep 1 +# +# Then post process with this script: +# +# sudo perf script -f time,comm,pid,tid,event,ip,sym,dso,trace -i perf.data | \ +# stackcollapse-perf-sched.awk -v recurse=1 | \ +# flamegraph.pl --color=io --countname=us >out.svg +# + +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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) 2015 by MemSQL. All rights reserved. +# + +# +# Match a perf captured variable, returning just the contents. For example, for +# the following line, get_perf_captured_variable("pid") would return "27235": +# +# swapper 0 [006] 708189.626415: sched:sched_stat_sleep: comm=memsqld pid=27235 delay=100078421 [ns +# +function get_perf_captured_variable(variable) +{ + match($0, variable "=[^[:space:]]+") + return substr($0, RSTART + length(variable) + 1, + RLENGTH - length(variable) - 1) +} + +# +# The timestamp is the first field that ends in a colon, e.g.: +# +# swapper 0 [006] 708189.626415: sched:sched_stat_sleep: comm=memsqld pid=27235 delay=100078421 [ns +# +# or +# +# swapper 0/0 708189.626415: sched:sched_stat_sleep: comm=memsqld pid=27235 delay=100078421 [ns] +# +function get_perf_timestamp() +{ + match($0, " [^ :]+:") + return substr($0, RSTART + 1, RLENGTH - 2) +} + +!/^#/ && /sched:sched_switch/ { + switchcommand = get_perf_captured_variable("comm") + + switchpid = get_perf_captured_variable("prev_pid") + + switchtime=get_perf_timestamp() + + switchstack="" +} + +# +# Strip the function name from a stack entry +# +# Stack entry is expected to be formatted like: +# c60849 MyClass::Foo(unsigned long) (/home/areece/a.out) +# +function get_function_name() +{ + # We start from 2 since we don't need the hex offset. + # We stop at NF - 1 since we don't need the library path. + funcname = $2 + for (i = 3; i <= NF - 1; i++) { + funcname = funcname " " $i + } + return funcname +} + +(switchpid != 0 && /^\s/) { + if (switchstack == "") { + switchstack = get_function_name() + } else { + switchstack = get_function_name() ";" switchstack + } +} + +(switchpid != 0 && /^$/) { + switch_stacks[switchpid] = switchstack + delete last_switch_stacks[switchpid] + switch_time[switchpid] = switchtime + + switchpid=0 + switchcommand="" + switchstack="" +} + +!/^#/ && (/sched:sched_stat_sleep/ || /sched:sched_stat_blocked/) { + wakecommand=$1 + wakepid=$2 + + waketime=get_perf_timestamp() + + stat_next_command = get_perf_captured_variable("comm") + + stat_next_pid = get_perf_captured_variable("pid") + + stat_delay_ns = int(get_perf_captured_variable("delay")) + + wakestack="" +} + +(stat_next_pid != 0 && /^\s/) { + if (wakestack == "") { + wakestack = get_function_name() + } else { + # We build the wakestack in reverse order. + wakestack = wakestack ";" get_function_name() + } +} + +(stat_next_pid != 0 && /^$/) { + # + # For some reason, perf appears to output duplicate + # sched:sched_stat_sleep and sched:sched_stat_blocked events. We only + # handle the first event. + # + if (stat_next_pid in switch_stacks) { + last_wake_time[stat_next_pid] = waketime + + stack = switch_stacks[stat_next_pid] + if (recurse || record_wake_stack) { + stack = stack ";" wakestack + if (record_tid) { + stack = stack ";" wakecommand "-" wakepid + } else { + stack = stack ";" wakecommand + } + } + + if (recurse) { + if (last_wake_time[wakepid] > last_switch_time[stat_next_pid]) { + stack = stack ";-;" last_switch_stacks[wakepid] + } + last_switch_stacks[stat_next_pid] = stack + } + + delete switch_stacks[stat_next_pid] + + if (record_tid) { + stack_times[stat_next_command "-" stat_next_pid ";" stack] += stat_delay_ns + } else { + stack_times[stat_next_command ";" stack] += stat_delay_ns + } + } + + wakecommand="" + wakepid=0 + stat_next_pid=0 + stat_next_command="" + stat_delay_ms=0 +} + +END { + for (stack in stack_times) { + if (int(stack_times[stack] / 1000) > 0) { + print stack, int(stack_times[stack] / 1000) + } + } +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-perf.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-perf.pl new file mode 100755 index 00000000000..3ff39bfb87f --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-perf.pl @@ -0,0 +1,435 @@ +#!/usr/bin/perl -w +# +# stackcollapse-perf.pl collapse perf samples into single lines. +# +# Parses a list of multiline stacks generated by "perf script", and +# outputs a semicolon separated stack followed by a space and a count. +# If memory addresses (+0xd) are present, they are stripped, and resulting +# identical stacks are colased with their counts summed. +# +# USAGE: ./stackcollapse-perf.pl [options] infile > outfile +# +# Run "./stackcollapse-perf.pl -h" to list options. +# +# Example input: +# +# swapper 0 [000] 158665.570607: cpu-clock: +# ffffffff8103ce3b native_safe_halt ([kernel.kallsyms]) +# ffffffff8101c6a3 default_idle ([kernel.kallsyms]) +# ffffffff81013236 cpu_idle ([kernel.kallsyms]) +# ffffffff815bf03e rest_init ([kernel.kallsyms]) +# ffffffff81aebbfe start_kernel ([kernel.kallsyms].init.text) +# [...] +# +# Example output: +# +# swapper;start_kernel;rest_init;cpu_idle;default_idle;native_safe_halt 1 +# +# Input may be created and processed using: +# +# perf record -a -g -F 997 sleep 60 +# perf script | ./stackcollapse-perf.pl > out.stacks-folded +# +# The output of "perf script" should include stack traces. If these are missing +# for you, try manually selecting the perf script output; eg: +# +# perf script -f comm,pid,tid,cpu,time,event,ip,sym,dso,trace | ... +# +# This is also required for the --pid or --tid options, so that the output has +# both the PID and TID. +# +# Copyright 2012 Joyent, Inc. All rights reserved. +# Copyright 2012 Brendan Gregg. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 +# +# 02-Mar-2012 Brendan Gregg Created this. +# 02-Jul-2014 " " Added process name to stacks. + +use strict; +use Getopt::Long; + +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $collapsed{$stack} += $count; +} +my $annotate_kernel = 0; # put an annotation on kernel function +my $annotate_jit = 0; # put an annotation on jit symbols +my $annotate_all = 0; # enale all annotations +my $include_pname = 1; # include process names in stacks +my $include_pid = 0; # include process ID with process name +my $include_tid = 0; # include process & thread ID with process name +my $include_addrs = 0; # include raw address where a symbol can't be found +my $tidy_java = 1; # condense Java signatures +my $tidy_generic = 1; # clean up function names a little +my $target_pname; # target process name from perf invocation +my $event_filter = ""; # event type filter, defaults to first encountered event +my $event_defaulted = 0; # whether we defaulted to an event (none provided) +my $event_warning = 0; # if we printed a warning for the event + +my $show_inline = 0; +my $show_context = 0; + +my $srcline_in_input = 0; # if there are extra lines with source location (perf script -F+srcline) +GetOptions('inline' => \$show_inline, + 'context' => \$show_context, + 'srcline' => \$srcline_in_input, + 'pid' => \$include_pid, + 'kernel' => \$annotate_kernel, + 'jit' => \$annotate_jit, + 'all' => \$annotate_all, + 'tid' => \$include_tid, + 'addrs' => \$include_addrs, + 'event-filter=s' => \$event_filter) +or die < outfile\n + --pid # include PID with process names [1] + --tid # include TID and PID with process names [1] + --inline # un-inline using addr2line + --all # all annotations (--kernel --jit) + --kernel # annotate kernel functions with a _[k] + --jit # annotate jit functions with a _[j] + --context # adds source context to --inline + --srcline # parses output of 'perf script -F+srcline' and adds source context + --addrs # include raw addresses where symbols can't be found + --event-filter=EVENT # event name filter\n +[1] perf script must emit both PID and TIDs for these to work; eg, Linux < 4.1: + perf script -f comm,pid,tid,cpu,time,event,ip,sym,dso,trace + for Linux >= 4.1: + perf script -F comm,pid,tid,cpu,time,event,ip,sym,dso,trace + If you save this output add --header on Linux >= 3.14 to include perf info. +USAGE_END + +if ($annotate_all) { + $annotate_kernel = $annotate_jit = 1; +} + +my %inlineCache; + +my %nmCache; + +sub inlineCacheAdd { + my ($pc, $mod, $result) = @_; + if (defined($inlineCache{$pc})) { + $inlineCache{$pc}{$mod} = $result; + } else { + $inlineCache{$pc} = {$mod => $result}; + } +} + +# for the --inline option +sub inline { + my ($pc, $rawfunc, $mod) = @_; + + return $inlineCache{$pc}{$mod} if defined($inlineCache{$pc}{$mod}); + + # capture addr2line output + my $a2l_output = `addr2line -a $pc -e $mod -i -f -s -C`; + + # remove first line + $a2l_output =~ s/^(.*\n){1}//; + + if ($a2l_output =~ /\?\?\n\?\?:0/) { + # if addr2line fails and rawfunc is func+offset, then fall back to it + if ($rawfunc =~ /^(.+)\+0x([0-9a-f]+)$/) { + my $func = $1; + my $addr = hex $2; + + $nmCache{$mod}=`nm $mod` unless defined $nmCache{$mod}; + + if ($nmCache{$mod} =~ /^([0-9a-f]+) . \Q$func\E$/m) { + my $base = hex $1; + my $newPc = sprintf "0x%x", $base+$addr; + my $result = inline($newPc, '', $mod); + inlineCacheAdd($pc, $mod, $result); + return $result; + } + } + } + + my @fullfunc; + my $one_item = ""; + for (split /^/, $a2l_output) { + chomp $_; + + # remove discriminator info if exists + $_ =~ s/ \(discriminator \S+\)//; + + if ($one_item eq "") { + $one_item = $_; + } else { + if ($show_context == 1) { + unshift @fullfunc, $one_item . ":$_"; + } else { + unshift @fullfunc, $one_item; + } + $one_item = ""; + } + } + + my $result = join ";" , @fullfunc; + + inlineCacheAdd($pc, $mod, $result); + + return $result; +} + +my @stack; +my $pname; +my $m_pid; +my $m_tid; +my $m_period; + +# +# Main loop +# +while (defined($_ = <>)) { + + # find the name of the process launched by perf, by stepping backwards + # over the args to find the first non-option (no dash): + if (/^# cmdline/) { + my @args = split ' ', $_; + foreach my $arg (reverse @args) { + if ($arg !~ /^-/) { + $target_pname = $arg; + $target_pname =~ s:.*/::; # strip pathname + last; + } + } + } + + # skip remaining comments + next if m/^#/; + chomp; + + # end of stack. save cached data. + if (m/^$/) { + # ignore filtered samples + next if not $pname; + + if ($include_pname) { + if (defined $pname) { + unshift @stack, $pname; + } else { + unshift @stack, ""; + } + } + remember_stack(join(";", @stack), $m_period) if @stack; + undef @stack; + undef $pname; + next; + } + + # + # event record start + # + if (/^(\S.+?)\s+(\d+)\/*(\d+)*\s+/) { + # default "perf script" output has TID but not PID + # eg, "java 25607 4794564.109216: 1 cycles:" + # eg, "java 12688 [002] 6544038.708352: 235 cpu-clock:" + # eg, "V8 WorkerThread 25607 4794564.109216: 104345 cycles:" + # eg, "java 24636/25607 [000] 4794564.109216: 1 cycles:" + # eg, "java 12688/12764 6544038.708352: 10309278 cpu-clock:" + # eg, "V8 WorkerThread 24636/25607 [000] 94564.109216: 100 cycles:" + # other combinations possible + my ($comm, $pid, $tid, $period) = ($1, $2, $3, ""); + if (not $tid) { + $tid = $pid; + $pid = "?"; + } + + if (/:\s*(\d+)*\s+(\S+):\s*$/) { + $period = $1; + my $event = $2; + + if ($event_filter eq "") { + # By default only show events of the first encountered + # event type. Merging together different types, such as + # instructions and cycles, produces misleading results. + $event_filter = $event; + $event_defaulted = 1; + } elsif ($event ne $event_filter) { + if ($event_defaulted and $event_warning == 0) { + # only print this warning if necessary: + # when we defaulted and there was + # multiple event types. + print STDERR "Filtering for events of type: $event\n"; + $event_warning = 1; + } + next; + } + } + + if (not $period) { + $period = 1 + } + ($m_pid, $m_tid, $m_period) = ($pid, $tid, $period); + + if ($include_tid) { + $pname = "$comm-$m_pid/$m_tid"; + } elsif ($include_pid) { + $pname = "$comm-$m_pid"; + } else { + $pname = "$comm"; + } + $pname =~ tr/ /_/; + + # + # stack line + # + } elsif (/^\s*(\w+)\s*(.+) \((.*)\)/) { + # ignore filtered samples + next if not $pname; + + my ($pc, $rawfunc, $mod) = ($1, $2, $3); + + if ($show_inline == 1 && $mod !~ m/(perf-\d+.map|kernel\.|\[[^\]]+\])/) { + my $inlineRes = inline($pc, $rawfunc, $mod); + # - empty result this happens e.g., when $mod does not exist or is a path to a compressed kernel module + # if this happens, the user will see error message from addr2line written to stderr + # - if addr2line results in "??" , then it's much more sane to fall back than produce a '??' in graph + if($inlineRes ne "" and $inlineRes ne "??" and $inlineRes ne "??:??:0" ) { + unshift @stack, $inlineRes; + next; + } + } + + # Linux 4.8 included symbol offsets in perf script output by default, eg: + # 7fffb84c9afc cpu_startup_entry+0x800047c022ec ([kernel.kallsyms]) + # strip these off: + $rawfunc =~ s/\+0x[\da-f]+$//; + + next if $rawfunc =~ /^\(/; # skip process names + + my $is_unknown=0; + my @inline; + for (split /\->/, $rawfunc) { + my $func = $_; + + if ($func eq "[unknown]") { + if ($mod ne "[unknown]") { # use module name instead, if known + $func = $mod; + $func =~ s/.*\///; + } else { + $func = "unknown"; + $is_unknown=1; + } + + if ($include_addrs) { + $func = "\[$func \<$pc\>\]"; + } else { + $func = "\[$func\]"; + } + } + + if ($tidy_generic) { + $func =~ s/;/:/g; + if ($func !~ m/\.\(.*\)\./) { + # This doesn't look like a Go method name (such as + # "net/http.(*Client).Do"), so everything after the first open + # paren (that is not part of an "(anonymous namespace)") is + # just noise. + $func =~ s/\((?!anonymous namespace\)).*//; + } + # now tidy this horrible thing: + # 13a80b608e0a RegExp:[&<>\"\'] (/tmp/perf-7539.map) + $func =~ tr/"\'//d; + # fall through to $tidy_java + } + + if ($tidy_java and $pname =~ m/^java/) { + # along with $tidy_generic, converts the following: + # Lorg/mozilla/javascript/ContextFactory;.call(Lorg/mozilla/javascript/ContextAction;)Ljava/lang/Object; + # Lorg/mozilla/javascript/ContextFactory;.call(Lorg/mozilla/javascript/C + # Lorg/mozilla/javascript/MemberBox;.(Ljava/lang/reflect/Method;)V + # into: + # org/mozilla/javascript/ContextFactory:.call + # org/mozilla/javascript/ContextFactory:.call + # org/mozilla/javascript/MemberBox:.init + $func =~ s/^L// if $func =~ m:/:; + } + + # + # Annotations + # + # detect inlined from the @inline array + # detect kernel from the module name; eg, frames to parse include: + # ffffffff8103ce3b native_safe_halt ([kernel.kallsyms]) + # 8c3453 tcp_sendmsg (/lib/modules/4.3.0-rc1-virtual/build/vmlinux) + # 7d8 ipv4_conntrack_local+0x7f8f80b8 ([nf_conntrack_ipv4]) + # detect jit from the module name; eg: + # 7f722d142778 Ljava/io/PrintStream;::print (/tmp/perf-19982.map) + if (scalar(@inline) > 0) { + $func .= "_[i]" unless $func =~ m/\_\[i\]/; # inlined + } elsif ($annotate_kernel == 1 && $mod =~ m/(^\[|vmlinux$)/ && $mod !~ /unknown/) { + $func .= "_[k]"; # kernel + } elsif ($annotate_jit == 1 && $mod =~ m:/tmp/perf-\d+\.map:) { + $func .= "_[j]" unless $func =~ m/\_\[j\]/; # jitted + } + + # + # Source lines + # + # + # Sample outputs: + # | a.out 35081 252436.005167: 667783 cycles: + # | 408ebb some_method_name+0x8b (/full/path/to/a.out) + # | uniform_int_dist.h:300 + # | 4069f5 main+0x935 (/full/path/to/a.out) + # | file.cpp:137 + # | 7f6d2148eb25 __libc_start_main+0xd5 (/lib64/libc-2.33.so) + # | libc-2.33.so[27b25] + # + # | a.out 35081 252435.738165: 306459 cycles: + # | 7f6d213c2750 [unknown] (/usr/lib64/libkmod.so.2.3.6) + # | libkmod.so.2.3.6[6750] + # + # | a.out 35081 252435.738373: 315813 cycles: + # | 7f6d215ca51b __strlen_avx2+0x4b (/lib64/libc-2.33.so) + # | libc-2.33.so[16351b] + # | 7ffc71ee9580 [unknown] ([unknown]) + # | + # + # | a.out 35081 252435.718940: 247984 cycles: + # | ffffffff814f9302 up_write+0x32 ([kernel.kallsyms]) + # | [kernel.kallsyms][ffffffff814f9302] + if($srcline_in_input and not $is_unknown){ + $_ = <>; + chomp; + s/\[.*?\]//g; + s/^\s*//g; + s/\s*$//g; + $func.=':'.$_ unless $_ eq ""; + } + + push @inline, $func; + } + + unshift @stack, @inline; + } else { + warn "Unrecognized line: $_"; + } +} + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + print "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-pmc.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-pmc.pl new file mode 100755 index 00000000000..5bd7c2dada4 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-pmc.pl @@ -0,0 +1,74 @@ +#!/usr/bin/env perl +# +# Copyright (c) 2014 Ed Maste. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# stackcollapse-pmc.pl collapse hwpmc samples into single lines. +# +# Parses a list of multiline stacks generated by "hwpmc -G", and outputs a +# semicolon-separated stack followed by a space and a count. +# +# Usage: +# pmcstat -S unhalted-cycles -O pmc.out +# pmcstat -R pmc.out -z16 -G pmc.graph +# stackcollapse-pmc.pl pmc.graph > pmc.stack +# +# Example input: +# +# 03.07% [17] witness_unlock @ /boot/kernel/kernel +# 70.59% [12] __mtx_unlock_flags +# 16.67% [2] selfdfree +# 100.0% [2] sys_poll +# 100.0% [2] amd64_syscall +# 08.33% [1] pmap_ts_referenced +# 100.0% [1] vm_pageout +# 100.0% [1] fork_exit +# ... +# +# Example output: +# +# amd64_syscall;sys_poll;selfdfree;__mtx_unlock_flags;witness_unlock 2 +# amd64_syscall;sys_poll;pmap_ts_referenced;__mtx_unlock_flagsgeout;fork_exit 1 +# ... + +use warnings; +use strict; + +my @stack; +my $prev_count; +my $prev_indent = -1; + +while (defined($_ = <>)) { + if (m/^( *)[0-9.]+% \[([0-9]+)\]\s*(\S+)/) { + my $indent = length($1); + if ($indent <= $prev_indent) { + print join(';', reverse(@stack[0 .. $prev_indent])) . + " $prev_count\n"; + } + $stack[$indent] = $3; + $prev_count = $2; + $prev_indent = $indent; + } +} +print join(';', reverse(@stack[0 .. $prev_indent])) . " $prev_count\n"; diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-recursive.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-recursive.pl new file mode 100755 index 00000000000..9eae54592c4 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-recursive.pl @@ -0,0 +1,60 @@ +#!/usr/bin/perl -ws +# +# stackcollapse-recursive Collapse direct recursive backtraces +# +# Post-process a stack list and merge direct recursive calls: +# +# Example input: +# +# main;recursive;recursive;recursive;helper 1 +# +# Output: +# +# main;recursive;helper 1 +# +# Copyright 2014 Gabriel Corona. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 + +my %stacks; + +while(<>) { + chomp; + my ($stack_, $value) = (/^(.*)\s+?(\d+(?:\.\d*)?)$/); + if ($stack_) { + my @stack = split(/;/, $stack_); + + my @result = (); + my $i; + my $last=""; + for($i=0; $i!=@stack; ++$i) { + if(!($stack[$i] eq $last)) { + $result[@result] = $stack[$i]; + $last = $stack[$i]; + } + } + + $stacks{join(";", @result)} += $value; + } +} + +foreach my $k (sort { $a cmp $b } keys %stacks) { + print "$k $stacks{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-sample.awk b/tests/benchmarks/_script/flamegraph/stackcollapse-sample.awk new file mode 100755 index 00000000000..bafc4af3468 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-sample.awk @@ -0,0 +1,231 @@ +#!/usr/bin/awk -f +# +# Uses MacOS' /usr/bin/sample to generate a flamegraph of a process +# +# Usage: +# +# sudo sample [pid] -file /dev/stdout | stackcollapse-sample.awk | flamegraph.pl +# +# Options: +# +# The output will show the name of the library/framework at the call-site +# with the form AppKit`NSApplication or libsystem`start_wqthread. +# +# If showing the framework or library name is not required, pass +# MODULES=0 as an argument of the sample program. +# +# The generated SVG will be written to the output stream, and can be piped +# into flamegraph.pl directly, or written to a file for conversion later. +# +# --- +# +# Copyright (c) 2017, Apple Inc. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +BEGIN { + + # Command line options + MODULES = 1 # Allows the user to enable/disable printing of modules. + + # Internal variables + _FOUND_STACK = 0 # Found the stack traces in the output. + _LEVEL = -1 # The current level of indentation we are running. + + # The set of symbols to ignore for 'waiting' threads, for ease of use. + # This will hide waiting threads from the view, making it easier to + # see what is actually running in the sample. These may be adjusted + # as necessary or appended to if other symbols need to be filtered out. + + _IGNORE["libsystem_kernel`__psynch_cvwait"] = 1 + _IGNORE["libsystem_kernel`__select"] = 1 + _IGNORE["libsystem_kernel`__semwait_signal"] = 1 + _IGNORE["libsystem_kernel`__ulock_wait"] = 1 + _IGNORE["libsystem_kernel`__wait4"] = 1 + _IGNORE["libsystem_kernel`__workq_kernreturn"] = 1 + _IGNORE["libsystem_kernel`kevent"] = 1 + _IGNORE["libsystem_kernel`mach_msg_trap"] = 1 + _IGNORE["libsystem_kernel`read"] = 1 + _IGNORE["libsystem_kernel`semaphore_wait_trap"] = 1 + + # The same set of symbols as above, without the module name. + _IGNORE["__psynch_cvwait"] = 1 + _IGNORE["__select"] = 1 + _IGNORE["__semwait_signal"] = 1 + _IGNORE["__ulock_wait"] = 1 + _IGNORE["__wait4"] = 1 + _IGNORE["__workq_kernreturn"] = 1 + _IGNORE["kevent"] = 1 + _IGNORE["mach_msg_trap"] = 1 + _IGNORE["read"] = 1 + _IGNORE["semaphore_wait_trap"] = 1 + +} + +# This is the first line in the /usr/bin/sample output that indicates the +# samples follow subsequently. Until we see this line, the rest is ignored. + +/^Call graph/ { + _FOUND_STACK = 1 +} + +# This is found when we have reached the end of the stack output. +# Identified by the string "Total number in stack (...)". + +/^Total number/ { + _FOUND_STACK = 0 + printStack(_NEST,0) +} + +# Prints the stack from FROM to TO (where FROM > TO) +# Called when indenting back from a previous level, or at the end +# of processing to flush the last recorded sample + +function printStack(FROM,TO) { + + # We ignore certain blocking wait states, in the absence of being + # able to filter these threads from collection, otherwise + # we'll end up with many threads of equal length that represent + # the total time the sample was collected. + # + # Note that we need to collect the information to ensure that the + # timekeeping for the parental functions is appropriately adjusted + # so we just avoid printing it out when that occurs. + _PRINT_IT = !_IGNORE[_NAMES[FROM]] + + # We run through all the names, from the root to the leaf, so that + # we generate a line that flamegraph.pl will like, of the form: + # Thread1234;example`main;example`otherFn 1234 + + for(l = FROM; l>=TO; l--) { + if (_PRINT_IT) { + printf("%s", _NAMES[0]) + for(i=1; i<=l; i++) { + printf(";%s", _NAMES[i]) + } + print " " _TIMES[l] + } + + # We clean up our current state to avoid bugs. + delete _NAMES[l] + delete _TIMES[l] + } +} + +# This is where we process each line, of the form: +# 5130 Thread_8749954 +# + 5130 start_wqthread (in libsystem_pthread.dylib) ... +# + 4282 _pthread_wqthread (in libsystem_pthread.dylib) ... +# + ! 4282 __doworkq_kernreturn (in libsystem_kernel.dylib) ... +# + 848 _pthread_wqthread (in libsystem_pthread.dylib) ... +# + 848 __doworkq_kernreturn (in libsystem_kernel.dylib) ... + +_FOUND_STACK && match($0,/^ [^0-9]*[0-9]/) { + + # We maintain two counters: + # _LEVEL: the high water mark of the indentation level we have seen. + # _NEST: the current indentation level. + # + # We keep track of these two levels such that when the nesting level + # decreases, we print out the current state of where we are. + + _NEST=(RLENGTH-5)/2 + sub(/^[^0-9]*/,"") # Normalise the leading content so we start with time. + _TIME=$1 # The time recorded by 'sample', first integer value. + + # The function name is in one or two parts, depending on what kind of + # function it is. + # + # If it is a standard C or C++ function, it will be of the form: + # exampleFunction + # Example::Function + # + # If it is an Objective-C funtion, it will be of the form: + # -[NSExample function] + # +[NSExample staticFunction] + # -[NSExample function:withParameter] + # +[NSExample staticFunction:withParameter:andAnother] + + _FN1 = $2 + _FN2 = $3 + + # If it is a standard C or C++ function then the following word will + # either be blank, or the text '(in', so we jut use the first one: + + if (_FN2 == "(in" || _FN2 == "") { + _FN =_FN1 + } else { + # Otherwise we concatenate the first two parts with . + _FN = _FN1 "." _FN2 + } + + # Modules are shown with '(in libfoo.dylib)' or '(in AppKit)' + + _MODULE = "" + match($0, /\(in [^)]*\)/) + + if (RSTART > 0 && MODULES) { + + # Strip off the '(in ' (4 chars) and the final ')' char (1 char) + _MODULE = substr($0, RSTART+4, RLENGTH-5) + + # Remove the .dylib function, since it adds no value. + gsub(/\.dylib/, "", _MODULE) + + # The function name is 'module`functionName' + _FN = _MODULE "`" _FN + } + + # Now we have set up the variables, we can decide how to apply it + # If we are descending in the nesting, we don't print anything out: + # a + # ab + # abc + # + # We only print out something when we go back a level, or hit the end: + # abcd + # abe < prints out the stack up until this point, i.e. abcd + + # We store a pair of arrays, indexed by the nesting level: + # + # _TIMES - a list of the time reported to that function + # _NAMES - a list of the function names for each current stack trace + + # If we are backtracking, we need to flush the current output. + if (_NEST <= _LEVEL) { + printStack(_LEVEL,_NEST) + } + + # Record the name and time of the function where we are. + _NAMES[_NEST] = _FN + _TIMES[_NEST] = _TIME + + # We subtract the time we took from our parent so we don't double count. + if (_NEST > 0) { + _TIMES[_NEST-1] -= _TIME + } + + # Raise the high water mark of the level we have reached. + _LEVEL = _NEST +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-stap.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-stap.pl new file mode 100755 index 00000000000..bca4046192f --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-stap.pl @@ -0,0 +1,84 @@ +#!/usr/bin/perl -w +# +# stackcollapse-stap.pl collapse multiline SystemTap stacks +# into single lines. +# +# Parses a multiline stack followed by a number on a separate line, and +# outputs a semicolon separated stack followed by a space and the number. +# If memory addresses (+0xd) are present, they are stripped, and resulting +# identical stacks are colased with their counts summed. +# +# USAGE: ./stackcollapse.pl infile > outfile +# +# Example input: +# +# 0xffffffff8103ce3b : native_safe_halt+0xb/0x10 [kernel] +# 0xffffffff8101c6a3 : default_idle+0x53/0x1d0 [kernel] +# 0xffffffff81013236 : cpu_idle+0xd6/0x120 [kernel] +# 0xffffffff815bf03e : rest_init+0x72/0x74 [kernel] +# 0xffffffff81aebbfe : start_kernel+0x3ba/0x3c5 [kernel] +# 2404 +# +# Example output: +# +# start_kernel;rest_init;cpu_idle;default_idle;native_safe_halt 2404 +# +# Input may contain many stacks as generated from SystemTap. +# +# Copyright 2011 Joyent, Inc. All rights reserved. +# Copyright 2011 Brendan Gregg. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 +# +# 16-Feb-2012 Brendan Gregg Created this. + +use strict; + +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $collapsed{$stack} += $count; +} + +my @stack; + +foreach (<>) { + chomp; + + if (m/^\s*(\d+)+$/) { + remember_stack(join(";", @stack), $1); + @stack = (); + next; + } + + next if (m/^\s*$/); + + my $frame = $_; + $frame =~ s/^\s*//; + $frame =~ s/\+[^+]*$//; + $frame =~ s/.* : //; + $frame = "-" if $frame eq ""; + unshift @stack, $frame; +} + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + printf "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-vsprof.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-vsprof.pl new file mode 100755 index 00000000000..a13c1daab35 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-vsprof.pl @@ -0,0 +1,98 @@ +#!/usr/bin/perl -w +# +# stackcollapse-vsprof.pl +# +# Parses the CSV file containing a call tree from a visual studio profiler and produces an output suitable for flamegraph.pl. +# +# USAGE: perl stackcollapse-vsprof.pl infile > outfile +# +# WORKFLOW: +# +# This example assumes you have visual studio 2015 installed. +# +# 1. Profile C++ your application using visual studio +# 2. On visual studio, choose export the call tree as csv +# 3. Generate a flamegraph: perl stackcollapse-vsprof CallTreeSummary.csv | perl flamegraph.pl > result_vsprof.svg +# +# INPUT EXAMPLE : +# +# Level,Function Name,Inclusive Samples,Exclusive Samples,Inclusive Samples %,Exclusive Samples %,Module Name, +# 1,"main","8,735",0,100.00,0.00,"an_executable.exe", +# 2,"testing::UnitTest::Run","8,735",0,100.00,0.00,"an_executable.exe", +# 3,"boost::trim_end_iter_select > >,boost::is_classifiedF>",306,16,3.50,0.18,"an_executable.exe", +# +# OUTPUT EXAMPLE : +# +# main;testing::UnitTest::Run;boost::trim_end_iter_select>>,boost::is_classifiedF> 306 + +use strict; + +sub massage_function_names; +sub parse_integer; +sub print_stack_trace; + +# data initialization +my @stack = (); +my $line_number = 0; +my $previous_samples = 0; + +my $num_args = $#ARGV + 1; +if ($num_args != 1) { + print "$ARGV[0]\n"; + print "Usage : stackcollapse-vsprof.pl > out.txt\n"; + exit; +} + +my $input_csv_file = $ARGV[0]; +my $line_parser_rx = qr{ + ^\s*(\d+?), # level in the stack + ("[^"]+" | [^,]+), # function name (beware of spaces) + ("[^"]+" | [^,]+), # number of samples (beware of locale number formatting) +}ox; + +open(my $fh, '<', $input_csv_file) or die "Can't read file '$input_csv_file' [$!]\n"; + +while (my $current_line = <$fh>){ + $line_number = $line_number + 1; + + # to discard first line which typically contains headers + next if $line_number == 1; + next if $current_line =~ /^\s*$/o; + + ($current_line =~ $line_parser_rx) or die "Error in regular expression at line $line_number : $current_line\n"; + + my $level = int $1; + my $function = massage_function_names($2); + my $samples = parse_integer($3); + my $stack_len = @stack; + + #print "[DEBUG] $line_number : $level $function $samples $stack_len\n"; + + next if not $level; + ($level <= $stack_len + 1) or die "Error in stack at line $line_number : $current_line\n"; + + if ($level <= $stack_len) { + print_stack_trace(\@stack, $previous_samples); + my $to_remove = $level - $stack_len - 1; + splice(@stack, $to_remove); + } + + $stack_len < 1000 or die "Stack overflow at line $line_number"; + push(@stack, $function); + $previous_samples = $samples; +} +print_stack_trace(\@stack, $previous_samples); + +sub massage_function_names { + return ($_[0] =~ s/\s*|^"|"$//gro); +} + +sub parse_integer { + return int ($_[0] =~ s/[., ]|^"|"$//gro); +} + +sub print_stack_trace { + my ($stack_ref, $sample) = @_; + my $stack_trace = join(";", @$stack_ref); + print "$stack_trace $sample\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-vtune-mc.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-vtune-mc.pl new file mode 100755 index 00000000000..e132ab08cf3 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-vtune-mc.pl @@ -0,0 +1,103 @@ +#!/usr/bin/perl -w +# +# stackcollapse-vtune-mc.pl +# +# Parses the CSV file containing a call tree from Intel VTune memory-consumption profiler and produces an output suitable for flamegraph.pl. +# +# USAGE: perl stackcollapse-vtune-mc.pl [options] infile > outfile +# +# WORKFLOW: +# +# This assumes you have Intel VTune installed and on path (using Command Line) +# +# 1. Profile C++ application tachyon (example shipped with Intel VTune 2019): +# +# amplxe-cl -collect memory-consumption -r mc_tachyon -- ./tachyon +# +# 2. Export raw VTune data to csv file: +# ### for Intel VTune 2019 +# amplxe-cl -R top-down -call-stack-mode all \ +# -column="Allocations:Self","Allocation Size:Self","Module" \ +# -report-out allocations.csv -format csv \ +# -csv-delimiter comma -r mc_tachyon +# +# 3. Generate a flamegraph: +# ## Generate for allocations amount. +# perl stackcollapse-vtune-mc.pl allocations.csv > out.folded +# perl flamegraph.pl --countname=allocations out.folded > vtune_tachyon_mc.svg +# +# ## Or you can generate for allocation size in bytes. +# perl stackcollapse-vtune-mc.pl -s allocations.csv > out.folded +# perl flamegraph.pl --countname=allocations out.folded > vtune_tachyon_mc_size.svg +# +# AUTHOR: Rohith Bakkannagari +# 27-Nov-2019 UnpluggedCoder Forked from stackcollapse-vtune.pl, for memory-consumption flamegraph + +use strict; +use Getopt::Long; + +sub usage { + die < out.folded\n + --size # Accumulate allocation size in bytes instead of allocation counts.\n +NOTE : The csv file should exported by `amplxe-cl` tool with the exact -column parameter shows below. + amplxe-cl -R top-down -call-stack-mode all \ + -column="Allocations:Self","Allocation Size:Self","Module" \ + -report-out allocations.csv -format csv \ + -csv-delimiter comma -r mc_tachyon +USAGE_END +} + +# data initialization +my @stack = (); +my $rowCounter = 0; # flag for row number + +my $accSize = ''; +GetOptions ('size' => \$accSize) +or usage(); + +my $numArgs = $#ARGV + 1; +if ($numArgs != 1){ + usage(); + exit; +} + +my $inputCSVFile = $ARGV[0]; +open(my $fh, '<', $inputCSVFile) or die "Can't read file '$inputCSVFile' [$!]\n"; + +while (my $currLine = <$fh>){ + # discard warning line + next if $rowCounter == 0 && rindex($currLine, "war:", 0) == 0; + $rowCounter = $rowCounter + 1; + # to discard first row which typically contains headers + next if $rowCounter == 1; + chomp $currLine; + #VTune - sometimes the call stack information is enclosed in double quotes (?). To remove double quotes. + $currLine =~ s/\"//g; + + ### for Intel VTune 2019 + ### CSV header should be like below + ### Function Stack,Allocation Size:Self,Deallocation Size:Self,Allocations:Self,Module + $currLine =~ /(\s*)(.*?),([0-9]*?\.?[0-9]*?),([0-9]*?\.?[0-9]*?),([0-9]*?\.?[0-9]*?),(.*)/ or die "Error in regular expression on the current line $currLine\n"; + my $func = $2.'('.$6.')'; # function(module) + my $depth = length ($1); + my $allocBytes = $3; # allocation size + my $allocs = $5; # allocations + + my $tempString = ''; + $stack [$depth] = $func; + if ($accSize){ + next if $allocBytes eq ''; + foreach my $i (0 .. $depth - 1) { + $tempString = $tempString.$stack[$i].";"; + } + $tempString = $tempString.$func." $allocBytes\n"; + } else { + next if $allocs == 0; + foreach my $i (0 .. $depth - 1) { + $tempString = $tempString.$stack[$i].";"; + } + $tempString = $tempString.$func." $allocs\n"; + } + print "$tempString"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-vtune.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-vtune.pl new file mode 100644 index 00000000000..2a13e3b2d95 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-vtune.pl @@ -0,0 +1,97 @@ +#!/usr/bin/perl -w +# +# stackcollapse-vtune.pl +# +# Parses the CSV file containing a call tree from Intel VTune hotspots profiler and produces an output suitable for flamegraph.pl. +# +# USAGE: perl stackcollapse-vtune.pl infile > outfile +# +# WORKFLOW: +# +# This assumes you have Intel VTune installed and on path (using Command Line) +# +# 1. Profile C++ application tachyon_find_hotspots (example shipped with Intel VTune 2013): +# +# amplxe-cl -collect hotspots -r result_vtune_tachyon -- ./tachyon_find_hotspots +# +# 2. Export raw VTune data to csv file: +# +##### VTune 2013 & 2015 +# amplxe-cl -R top-down -report-out result_vtune_tachyon.csv -filter "Function Stack" -format csv -csv-delimiter comma -r result_vtune_tachyon +#### VTune 2016 +# amplxe-cl.exe -R top-down -call-stack-mode all -column="CPU Time:Self","Module" -report-output result_vtune_tachyon.csv -filter "Function Stack" -format csv -csv-delimiter comma -r result_vtune_tachyon +# +# 3. Generate a flamegraph: +# +# perl stackcollapse-vtune result_vtune_tachyon.csv | perl flamegraph.pl > result_vtune_tachyon.svg +# +# AUTHOR: Rohith Bakkannagari + +use strict; + +# data initialization +my @stack = (); +my $rowCounter = 0; #flag for row number + +my $numArgs = $#ARGV + 1; +if ($numArgs != 1) +{ +print "$ARGV[0]\n"; +print "Usage : stackcollapse-vtune.pl > out.txt\n"; +exit; +} + +my $inputCSVFile = $ARGV[0]; +my $funcOnly = ''; +my $depth = 0; +my $selfTime = 0; +my $dllName = ''; + +open(my $fh, '<', $inputCSVFile) or die "Can't read file '$inputCSVFile' [$!]\n"; + +while (my $currLine = <$fh>){ + $rowCounter = $rowCounter + 1; + # to discard first row which typically contains headers + next if $rowCounter == 1; + chomp $currLine; + + ### VTune 2013 & 2015 + #VTune - sometimes the call stack information is enclosed in double quotes (?). To remove double quotes. Not necessary for XCode instruments (MAC) + $currLine =~ s/\"//g; + $currLine =~ /(\s*)(.*),(.*),.*,([0-9]*\.?[0-9]+)/ or die "Error in regular expression on the current line\n"; + $dllName = $3; + $func = $dllName.'!'.$2; # Eg : m_lxe.dll!MathWorks::lxe::IrEngineDecorator::Apply + $depth = length ($1); + $selfTime = $4*1000; # selfTime in msec + ### VTune 2013 & 2015 + + ### VTune 2016 + # $currLine =~ /(\s*)(.*?),([0-9]*\.?[0-9]+?),(.*)/ or die "Error in regular expression on the current line $currLine\n"; + # if ($2 =~ /\"/) + # { + # $currLine =~ /(\s*)\"(.*?)\",([0-9]*\.?[0-9]+?),(.*)/ or die "Error in regular expression on the current line $currLine\n"; + # $funcOnly = $2; + # $depth = length ($1); + # $selfTime = $3*1000; # selfTime in msec + # $dllName = $4; + # } + # else + # { + # $funcOnly = $2; + # $depth = length ($1); + # $selfTime = $3*1000; # selfTime in msec + # $dllName = $4; + # } + # my $func = $dllName.'!'.$funcOnly; # Eg : m_lxe.dll!MathWorks::lxe::IrEngineDecorator::Apply + ### VTune 2016 + + my $tempString = ''; + $stack [$depth] = $func; + foreach my $i (0 .. $depth - 1) { + $tempString = $tempString.$stack[$i].";"; + } + $tempString = $tempString.$func." $selfTime\n"; + if ($selfTime != 0){ + print "$tempString"; + } +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-wcp.pl b/tests/benchmarks/_script/flamegraph/stackcollapse-wcp.pl new file mode 100755 index 00000000000..4d1d58434a0 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-wcp.pl @@ -0,0 +1,69 @@ +#!/usr/bin/perl -ws +# +# stackcollapse-wcp Collapse wallClockProfiler backtraces +# +# Parse a list of GDB backtraces as generated by https://github.com/jasonrohrer/wallClockProfiler +# +# Copyright 2014 Gabriel Corona. All rights reserved. +# Portions Copyright 2020 Ștefan Talpalaru +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 + +use strict; + +my $current = ""; +my $start_processing = 0; +my $samples = 0; +my %stacks; + +while(<>) { + s/^\s+|\s+$//g; + + if (m/^Full stacks/) { + $start_processing = 1; + next; + } + + if (not $start_processing) { + next; + } + + if(m/^\d+\.\d+% =+ \((\d+) samples\)/) { + # 99.791% ===================================== (17194 samples) + $samples = $1; + next; + } elsif (m/^\d+: (.*)$/) { + # 1: poll__YNjd8fE6xG8CRNwfLnrx0g_2 (at /mnt/sde1/storage/nim-beacon-chain-clean/vendor/nim-chronos/chronos/asyncloop.nim:343) + my $function = $1; + if ($current eq "") { + $current = $function; + } else { + $current = $function . ";" . $current; + } + } elsif (m/^$/ and $current ne "") { + $stacks{$current} += $samples; + $current = ""; + } +} + +foreach my $k (sort { $a cmp $b } keys %stacks) { + print "$k $stacks{$k}\n"; +} + diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse-xdebug.php b/tests/benchmarks/_script/flamegraph/stackcollapse-xdebug.php new file mode 100755 index 00000000000..52cc3d65a0c --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse-xdebug.php @@ -0,0 +1,197 @@ +#!/usr/bin/php + outfile + -h --help Show this message + -t Weight stack counts by duration using the time index in the trace (default) + -c Invocation counts only. Simply count stacks in the trace and sum duplicates, don't weight by duration. + +Example input: +For more info on xdebug and generating traces see +https://xdebug.org/docs/execution_trace. + +Version: 2.0.0RC4-dev +TRACE START [2007-05-06 18:29:01] +1 0 0 0.010870 114112 {main} 1 ../trace.php 0 +2 1 0 0.032009 114272 str_split 0 ../trace.php 8 +2 1 1 0.032073 116632 +2 2 0 0.033505 117424 ret_ord 1 ../trace.php 10 +3 3 0 0.033531 117584 ord 0 ../trace.php 5 +3 3 1 0.033551 117584 +... +TRACE END [2007-05-06 18:29:01] + +Example output: + +- c +{main};str_split 1 +{main};ret_ord;ord 6 + +-t +{main} 23381 +{main};str_split 64 +{main};ret_ord 215 +{main};ret_ord;ord 106 + +EOT; + + exit($exit); +} + +function collapseStack(array $stack, string $func_name_key): string { + return implode(';', array_column($stack, $func_name_key)); +} + +function addCurrentStackToStacks(array $stack, float $dur, array &$stacks) { + $collapsed = implode(';', $stack); + $duration = SCALE_FACTOR * $dur; + + if (array_key_exists($collapsed, $stacks)) { + $stacks[$collapsed] += $duration; + } else { + $stacks[$collapsed] = $duration; + } +} + +function isEOTrace(string $l) { + $pattern = "/^(\\t|TRACE END)/"; + return preg_match($pattern, $l); +} + +$filename = $argv[$optind] ?? null; +if ($filename === null) { + usage(1); +} + +$do_time = !isset($args['c']); + +// First make sure our file is consistently formatted with only one \t delimiting each field +$out = []; +$retval = null; +exec("sed -in 's/\t\+/\t/g' " . escapeshellarg($filename), $out, $retval); +if ($retval !== 0) { + usage(1); +} + +$handle = fopen($filename, 'r'); + +if ($handle === false) { + echo "Unable to open $filename \n\n"; + usage(1); +} + +// Loop till we find TRACE START +while ($l = fgets($handle)) { + if (strpos($l, "TRACE START") === 0) { + break; + } +} + +const SCALE_FACTOR = 1000000; +$stacks = []; +$current_stack = []; +$was_exit = false; +$prev_start_time = 0; + +if ($do_time) { + // Weight counts by duration + // Xdebug trace time indices have 6 sigfigs of precision + // We have a perfect trace, but let's instead pretend that + // this was collected by sampling at 10^6 Hz + // then each millionth of a second this stack took to execute is 1 count + while ($l = fgets($handle)) { + if (isEOTrace($l)) { + break; + } + + $parts = explode("\t", $l); + list($level, $fn_no, $is_exit, $time) = $parts; + + if ($is_exit) { + if (empty($current_stack)) { + echo "[WARNING] Found function exit without corresponding entrance. Discarding line. Check your input.\n"; + continue; + } + + addCurrentStackToStacks($current_stack, $time - $prev_start_time, $stacks); + array_pop($current_stack); + } else { + $func_name = $parts[5]; + + if (!empty($current_stack)) { + addCurrentStackToStacks($current_stack, $time - $prev_start_time, $stacks); + } + + $current_stack[] = $func_name; + } + $prev_start_time = $time; + } +} else { + // Counts only + while ($l = fgets($handle)) { + if (isEOTrace($l)) { + break; + } + + $parts = explode("\t", $l); + list($level, $fn_no, $is_exit) = $parts; + + if ($is_exit === "1") { + if (!$was_exit) { + $collapsed = implode(";", $current_stack); + if (array_key_exists($collapsed, $stacks)) { + $stacks[$collapsed]++; + } else { + $stacks[$collapsed] = 1; + } + } + + array_pop($current_stack); + $was_exit = true; + } else { + $func_name = $parts[5]; + $current_stack[] = $func_name; + $was_exit = false; + } + } +} + +foreach ($stacks as $stack => $count) { + echo "$stack $count\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/stackcollapse.pl b/tests/benchmarks/_script/flamegraph/stackcollapse.pl new file mode 100755 index 00000000000..1e00c521368 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/stackcollapse.pl @@ -0,0 +1,109 @@ +#!/usr/bin/perl -w +# +# stackcollapse.pl collapse multiline stacks into single lines. +# +# Parses a multiline stack followed by a number on a separate line, and +# outputs a semicolon separated stack followed by a space and the number. +# If memory addresses (+0xd) are present, they are stripped, and resulting +# identical stacks are colased with their counts summed. +# +# USAGE: ./stackcollapse.pl infile > outfile +# +# Example input: +# +# unix`i86_mwait+0xd +# unix`cpu_idle_mwait+0xf1 +# unix`idle+0x114 +# unix`thread_start+0x8 +# 1641 +# +# Example output: +# +# unix`thread_start;unix`idle;unix`cpu_idle_mwait;unix`i86_mwait 1641 +# +# Input may contain many stacks, and can be generated using DTrace. The +# first few lines of input are skipped (see $headerlines). +# +# Copyright 2011 Joyent, Inc. All rights reserved. +# Copyright 2011 Brendan Gregg. All rights reserved. +# +# 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 docs/cddl1.txt or +# http://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 docs/cddl1.txt. +# 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 +# +# 14-Aug-2011 Brendan Gregg Created this. + +use strict; + +my $headerlines = 3; # number of input lines to skip +my $includeoffset = 0; # include function offset (except leafs) +my %collapsed; + +sub remember_stack { + my ($stack, $count) = @_; + $collapsed{$stack} += $count; +} + +my $nr = 0; +my @stack; + +foreach (<>) { + next if $nr++ < $headerlines; + chomp; + + if (m/^\s*(\d+)+$/) { + my $count = $1; + my $joined = join(";", @stack); + + # trim leaf offset if these were retained: + $joined =~ s/\+[^+]*$// if $includeoffset; + + remember_stack($joined, $count); + @stack = (); + next; + } + + next if (m/^\s*$/); + + my $frame = $_; + $frame =~ s/^\s*//; + $frame =~ s/\+[^+]*$// unless $includeoffset; + + # Remove arguments from C++ function names: + $frame =~ s/(::.*)[(<].*/$1/; + + $frame = "-" if $frame eq ""; + + my @inline; + for (split /\->/, $frame) { + my $func = $_; + + # Strip out L and ; included in java stacks + $func =~ tr/\;/:/; + $func =~ s/^L//; + $func .= "_[i]" if scalar(@inline) > 0; #inlined + + push @inline, $func; + } + + unshift @stack, @inline; +} + +foreach my $k (sort { $a cmp $b } keys %collapsed) { + print "$k $collapsed{$k}\n"; +} diff --git a/tests/benchmarks/_script/flamegraph/test.sh b/tests/benchmarks/_script/flamegraph/test.sh new file mode 100755 index 00000000000..3592f351f10 --- /dev/null +++ b/tests/benchmarks/_script/flamegraph/test.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# test.sh - Check flame graph software vs test result files. +# +# This is used to detect regressions in the flame graph software. +# See record-test.sh, which refreshes these files after intended software +# changes. +# +# Currently only tests stackcollapse-perf.pl. + +set -euo pipefail +set -x +set -v + +# ToDo: add some form of --inline, and --inline --context tests. These are +# tricky since they use addr2line, whose output will vary based on the test +# system's binaries and symbol tables. +for opt in pid tid kernel jit all addrs; do + for testfile in test/*.txt ; do + echo testing $testfile : $opt + outfile=${testfile#*/} + outfile=test/results/${outfile%.txt}"-collapsed-${opt}.txt" + perl ./stackcollapse-perf.pl --"${opt}" "${testfile}" 2> /dev/null | diff -u - "${outfile}" + perl ./flamegraph.pl "${outfile}" > /dev/null + done +done diff --git a/tests/benchmarks/benchmark_helpers.sh b/tests/benchmarks/benchmark_helpers.sh index 0ff6b03ef35..1f15976b95f 100644 --- a/tests/benchmarks/benchmark_helpers.sh +++ b/tests/benchmarks/benchmark_helpers.sh @@ -7,15 +7,17 @@ set -eo pipefail # command-line parsing # -usage() { echo "usage: $(basename "$0") [--cli ] [--baseline-cli ] [--output-style