mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
Illumos #3598
3598 want to dtrace when errors are generated in zfs Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Approved by: Garrett D'Amore <garrett@damore.org> References: https://www.illumos.org/issues/3598 illumos/illumos-gate@be6fd75a69 Ported-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #1775 Porting notes: 1. include/sys/zfs_context.h has been modified to render some new macros inert until dtrace is available on Linux. 2. Linux-specific changes have been adapted to use SET_ERROR(). 3. I'm NOT happy about this change. It does nothing but ugly up the code under Linux. Unfortunately we need to take it to avoid more merge conflicts in the future. -Brian
This commit is contained in:
committed by
Brian Behlendorf
parent
7011fb6004
commit
2e528b49f8
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2013 by Delphix. All rights reserved.
|
||||
*/
|
||||
|
||||
/* Portions Copyright 2007 Jeremy Teo */
|
||||
@@ -881,7 +881,7 @@ again:
|
||||
sa_buf_rele(db, NULL);
|
||||
ZFS_OBJ_HOLD_EXIT(zsb, obj_num);
|
||||
iput(ip);
|
||||
return (EINVAL);
|
||||
return (SET_ERROR(EINVAL));
|
||||
}
|
||||
|
||||
hdl = dmu_buf_get_user(db);
|
||||
@@ -913,7 +913,7 @@ again:
|
||||
mutex_enter(&zp->z_lock);
|
||||
ASSERT3U(zp->z_id, ==, obj_num);
|
||||
if (zp->z_unlinked) {
|
||||
err = ENOENT;
|
||||
err = SET_ERROR(ENOENT);
|
||||
} else {
|
||||
igrab(ZTOI(zp));
|
||||
*zpp = zp;
|
||||
@@ -941,7 +941,7 @@ again:
|
||||
zp = zfs_znode_alloc(zsb, db, doi.doi_data_block_size,
|
||||
doi.doi_bonus_type, obj_num, NULL, NULL);
|
||||
if (zp == NULL) {
|
||||
err = ENOENT;
|
||||
err = SET_ERROR(ENOENT);
|
||||
} else {
|
||||
*zpp = zp;
|
||||
}
|
||||
@@ -997,7 +997,7 @@ zfs_rezget(znode_t *zp)
|
||||
doi.doi_bonus_size < sizeof (znode_phys_t)))) {
|
||||
sa_buf_rele(db, NULL);
|
||||
ZFS_OBJ_HOLD_EXIT(zsb, obj_num);
|
||||
return (EINVAL);
|
||||
return (SET_ERROR(EINVAL));
|
||||
}
|
||||
|
||||
zfs_znode_sa_init(zsb, zp, db, doi.doi_bonus_type, NULL);
|
||||
@@ -1023,7 +1023,7 @@ zfs_rezget(znode_t *zp)
|
||||
if (sa_bulk_lookup(zp->z_sa_hdl, bulk, count)) {
|
||||
zfs_znode_dmu_fini(zp);
|
||||
ZFS_OBJ_HOLD_EXIT(zsb, obj_num);
|
||||
return (EIO);
|
||||
return (SET_ERROR(EIO));
|
||||
}
|
||||
|
||||
zp->z_mode = mode;
|
||||
@@ -1031,7 +1031,7 @@ zfs_rezget(znode_t *zp)
|
||||
if (gen != zp->z_gen) {
|
||||
zfs_znode_dmu_fini(zp);
|
||||
ZFS_OBJ_HOLD_EXIT(zsb, obj_num);
|
||||
return (EIO);
|
||||
return (SET_ERROR(EIO));
|
||||
}
|
||||
|
||||
zp->z_unlinked = (zp->z_links == 0);
|
||||
@@ -1408,7 +1408,7 @@ zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
|
||||
if (ip->i_flock && mandatory_lock(ip)) {
|
||||
uint64_t length = (len ? len : zp->z_size - off);
|
||||
if (!lock_may_write(ip, off, length))
|
||||
return (EAGAIN);
|
||||
return (SET_ERROR(EAGAIN));
|
||||
}
|
||||
|
||||
if (len == 0) {
|
||||
@@ -1629,7 +1629,7 @@ zfs_grab_sa_handle(objset_t *osp, uint64_t obj, sa_handle_t **hdlp,
|
||||
(doi.doi_bonus_type == DMU_OT_ZNODE &&
|
||||
doi.doi_bonus_size < sizeof (znode_phys_t))) {
|
||||
sa_buf_rele(*db, tag);
|
||||
return (ENOTSUP);
|
||||
return (SET_ERROR(ENOTSUP));
|
||||
}
|
||||
|
||||
error = sa_handle_get(osp, obj, NULL, SA_HDL_PRIVATE, hdlp);
|
||||
|
||||
Reference in New Issue
Block a user