Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/cddl/osnet/dist/uts/common/fs/zfs With zfs_netbsd_r...



details:   https://anonhg.NetBSD.org/src/rev/0ae6b14f9717
branches:  trunk
changeset: 970315:0ae6b14f9717
user:      hannken <hannken%NetBSD.org@localhost>
date:      Fri Mar 20 08:26:01 2020 +0000

description:
With zfs_netbsd_reclaim() no longer doing an unconditional
zil commit dmu_buf_get_user() may return a NULL handle when
the znode already disappeared.

diffstat:

 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c |  6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diffs (16 lines):

diff -r 83ee3d2aa460 -r 0ae6b14f9717 external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c
--- a/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c    Fri Mar 20 08:02:55 2020 +0000
+++ b/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c    Fri Mar 20 08:26:01 2020 +0000
@@ -1315,7 +1315,11 @@
                return (SET_ERROR(EINVAL));
        }
        hdl = dmu_buf_get_user(db);
-       ASSERT3P(hdl, !=, NULL);
+       if (hdl == NULL) {
+               sa_buf_rele(db, NULL);
+               ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num);
+               return (SET_ERROR(EINVAL));
+       }
        zp = sa_get_userdata(hdl);
        ASSERT3U(zp->z_id, ==, obj_num);
        sa_buf_rele(db, NULL);



Home | Main Index | Thread Index | Old Index