svn commit: r367343 - in head/sys/contrib/openzfs/include/os: freebsd/zfs/sys linux/zfs/sys
Mateusz Guzik
mjg at FreeBSD.org
Wed Nov 4 21:18:52 UTC 2020
Author: mjg
Date: Wed Nov 4 21:18:51 2020
New Revision: 367343
URL: https://svnweb.freebsd.org/changeset/base/367343
Log:
zfs: add branch prediction to ZFS_ENTER and ZFS_VERIFY_ZP macros
They are expected to fail only in corner cases.
Modified:
head/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h
head/sys/contrib/openzfs/include/os/linux/zfs/sys/zfs_znode_impl.h
Modified: head/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h
==============================================================================
--- head/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h Wed Nov 4 21:18:27 2020 (r367342)
+++ head/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h Wed Nov 4 21:18:51 2020 (r367343)
@@ -119,7 +119,7 @@ extern minor_t zfsdev_minor_alloc(void);
#define ZFS_ENTER(zfsvfs) \
{ \
rrm_enter_read(&(zfsvfs)->z_teardown_lock, FTAG); \
- if ((zfsvfs)->z_unmounted) { \
+ if (__predict_false((zfsvfs)->z_unmounted)) { \
ZFS_EXIT(zfsvfs); \
return (EIO); \
} \
@@ -130,7 +130,7 @@ extern minor_t zfsdev_minor_alloc(void);
/* Verifies the znode is valid */
#define ZFS_VERIFY_ZP(zp) \
- if ((zp)->z_sa_hdl == NULL) { \
+ if (__predict_false((zp)->z_sa_hdl == NULL)) { \
ZFS_EXIT((zp)->z_zfsvfs); \
return (EIO); \
} \
Modified: head/sys/contrib/openzfs/include/os/linux/zfs/sys/zfs_znode_impl.h
==============================================================================
--- head/sys/contrib/openzfs/include/os/linux/zfs/sys/zfs_znode_impl.h Wed Nov 4 21:18:27 2020 (r367342)
+++ head/sys/contrib/openzfs/include/os/linux/zfs/sys/zfs_znode_impl.h Wed Nov 4 21:18:51 2020 (r367343)
@@ -76,7 +76,7 @@ extern "C" {
#define ZFS_ENTER_ERROR(zfsvfs, error) \
do { \
rrm_enter_read(&(zfsvfs)->z_teardown_lock, FTAG); \
- if ((zfsvfs)->z_unmounted) { \
+ if (unlikely((zfsvfs)->z_unmounted)) { \
ZFS_EXIT(zfsvfs); \
return (error); \
} \
@@ -95,7 +95,7 @@ do { \
/* Verifies the znode is valid. */
#define ZFS_VERIFY_ZP_ERROR(zp, error) \
do { \
- if ((zp)->z_sa_hdl == NULL) { \
+ if (unlikely((zp)->z_sa_hdl == NULL)) { \
ZFS_EXIT(ZTOZSB(zp)); \
return (error); \
} \
More information about the svn-src-all
mailing list