]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Help compiller optimize out abd_verify()
authorAlexander Motin <mav@FreeBSD.org>
Fri, 25 Jun 2021 23:38:31 +0000 (19:38 -0400)
committerGitHub <noreply@github.com>
Fri, 25 Jun 2021 23:38:31 +0000 (16:38 -0700)
While abd_verify() does nothing when built without debug, compiler
can't optimize it out by itself due to calls to external list_*()
and abd_verify_scatter().  This commit makes it explicit.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Adam Moss <c@yotes.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.
Closes #12280

module/zfs/abd.c

index 2d1be9752d4f48d7341d5f4b45f6eb96d685320c..d5fafccd08af4c4ad3cfcf93721f44ea27284da7 100644 (file)
@@ -108,15 +108,14 @@ int zfs_abd_scatter_enabled = B_TRUE;
 void
 abd_verify(abd_t *abd)
 {
+#ifdef ZFS_DEBUG
        ASSERT3U(abd->abd_size, >, 0);
        ASSERT3U(abd->abd_size, <=, SPA_MAXBLOCKSIZE);
        ASSERT3U(abd->abd_flags, ==, abd->abd_flags & (ABD_FLAG_LINEAR |
            ABD_FLAG_OWNER | ABD_FLAG_META | ABD_FLAG_MULTI_ZONE |
            ABD_FLAG_MULTI_CHUNK | ABD_FLAG_LINEAR_PAGE | ABD_FLAG_GANG |
            ABD_FLAG_GANG_FREE | ABD_FLAG_ZEROS | ABD_FLAG_ALLOCD));
-#ifdef ZFS_DEBUG
        IMPLY(abd->abd_parent != NULL, !(abd->abd_flags & ABD_FLAG_OWNER));
-#endif
        IMPLY(abd->abd_flags & ABD_FLAG_META, abd->abd_flags & ABD_FLAG_OWNER);
        if (abd_is_linear(abd)) {
                ASSERT3P(ABD_LINEAR_BUF(abd), !=, NULL);
@@ -133,6 +132,7 @@ abd_verify(abd_t *abd)
        } else {
                abd_verify_scatter(abd);
        }
+#endif
 }
 
 static void