mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +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
+8
-8
@@ -21,7 +21,7 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 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.
|
||||
*/
|
||||
|
||||
#include <sys/zfs_context.h>
|
||||
@@ -390,7 +390,7 @@ sa_attr_op(sa_handle_t *hdl, sa_bulk_attr_t *bulk, int count,
|
||||
switch (data_op) {
|
||||
case SA_LOOKUP:
|
||||
if (bulk[i].sa_addr == NULL)
|
||||
return (ENOENT);
|
||||
return (SET_ERROR(ENOENT));
|
||||
if (bulk[i].sa_data) {
|
||||
SA_COPY_DATA(bulk[i].sa_data_func,
|
||||
bulk[i].sa_addr, bulk[i].sa_data,
|
||||
@@ -522,7 +522,7 @@ sa_resize_spill(sa_handle_t *hdl, uint32_t size, dmu_tx_t *tx)
|
||||
blocksize = SPA_MINBLOCKSIZE;
|
||||
} else if (size > SPA_MAXBLOCKSIZE) {
|
||||
ASSERT(0);
|
||||
return (EFBIG);
|
||||
return (SET_ERROR(EFBIG));
|
||||
} else {
|
||||
blocksize = P2ROUNDUP_TYPED(size, SPA_MINBLOCKSIZE, uint32_t);
|
||||
}
|
||||
@@ -696,7 +696,7 @@ sa_build_layouts(sa_handle_t *hdl, sa_bulk_attr_t *attr_desc, int attr_count,
|
||||
SA_BONUS, &i, &used, &spilling);
|
||||
|
||||
if (used > SPA_MAXBLOCKSIZE)
|
||||
return (EFBIG);
|
||||
return (SET_ERROR(EFBIG));
|
||||
|
||||
VERIFY(0 == dmu_set_bonus(hdl->sa_bonus, spilling ?
|
||||
MIN(DN_MAX_BONUSLEN - sizeof (blkptr_t), used + hdrsize) :
|
||||
@@ -720,7 +720,7 @@ sa_build_layouts(sa_handle_t *hdl, sa_bulk_attr_t *attr_desc, int attr_count,
|
||||
&spill_used, &dummy);
|
||||
|
||||
if (spill_used > SPA_MAXBLOCKSIZE)
|
||||
return (EFBIG);
|
||||
return (SET_ERROR(EFBIG));
|
||||
|
||||
buf_space = hdl->sa_spill->db_size - spillhdrsize;
|
||||
if (BUF_SPACE_NEEDED(spill_used, spillhdrsize) >
|
||||
@@ -877,7 +877,7 @@ sa_attr_table_setup(objset_t *os, sa_attr_reg_t *reg_attrs, int count)
|
||||
*/
|
||||
if (error || (error == 0 && sa_attr_count == 0)) {
|
||||
if (error == 0)
|
||||
error = EINVAL;
|
||||
error = SET_ERROR(EINVAL);
|
||||
goto bail;
|
||||
}
|
||||
sa_reg_count = sa_attr_count;
|
||||
@@ -908,7 +908,7 @@ sa_attr_table_setup(objset_t *os, sa_attr_reg_t *reg_attrs, int count)
|
||||
error = zap_lookup(os, sa->sa_reg_attr_obj,
|
||||
reg_attrs[i].sa_name, 8, 1, &attr_value);
|
||||
else
|
||||
error = ENOENT;
|
||||
error = SET_ERROR(ENOENT);
|
||||
switch (error) {
|
||||
case ENOENT:
|
||||
sa->sa_user_table[i] = (sa_attr_type_t)sa_attr_count;
|
||||
@@ -1067,7 +1067,7 @@ sa_setup(objset_t *os, uint64_t sa_obj, sa_attr_reg_t *reg_attrs, int count,
|
||||
*/
|
||||
if (error || (error == 0 && layout_count == 0)) {
|
||||
if (error == 0)
|
||||
error = EINVAL;
|
||||
error = SET_ERROR(EINVAL);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user