git://git.camperquake.de
/
zfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert "Temporarily disable the reguid test."
[zfs.git]
/
module
/
zfs
/
dmu_send.c
diff --git
a/module/zfs/dmu_send.c
b/module/zfs/dmu_send.c
index
949f4d7
..
97c23cb
100644
(file)
--- a/
module/zfs/dmu_send.c
+++ b/
module/zfs/dmu_send.c
@@
-1077,8
+1077,8
@@
restore_object(struct restorearg *ra, objset_t *os, struct drr_object *drro)
void *data = NULL;
if (drro->drr_type == DMU_OT_NONE ||
void *data = NULL;
if (drro->drr_type == DMU_OT_NONE ||
-
drro->drr_type >= DMU_OT_NUMTYPES
||
-
drro->drr_bonustype >= DMU_OT_NUMTYPES
||
+
!DMU_OT_IS_VALID(drro->drr_type)
||
+
!DMU_OT_IS_VALID(drro->drr_bonustype)
||
drro->drr_checksumtype >= ZIO_CHECKSUM_FUNCTIONS ||
drro->drr_compress >= ZIO_COMPRESS_FUNCTIONS ||
P2PHASE(drro->drr_blksz, SPA_MINBLOCKSIZE) ||
drro->drr_checksumtype >= ZIO_CHECKSUM_FUNCTIONS ||
drro->drr_compress >= ZIO_COMPRESS_FUNCTIONS ||
P2PHASE(drro->drr_blksz, SPA_MINBLOCKSIZE) ||
@@
-1143,7
+1143,9
@@
restore_object(struct restorearg *ra, objset_t *os, struct drr_object *drro)
ASSERT3U(db->db_size, >=, drro->drr_bonuslen);
bcopy(data, db->db_data, drro->drr_bonuslen);
if (ra->byteswap) {
ASSERT3U(db->db_size, >=, drro->drr_bonuslen);
bcopy(data, db->db_data, drro->drr_bonuslen);
if (ra->byteswap) {
- dmu_ot[drro->drr_bonustype].ot_byteswap(db->db_data,
+ dmu_object_byteswap_t byteswap =
+ DMU_OT_BYTESWAP(drro->drr_bonustype);
+ dmu_ot_byteswap[byteswap].ob_func(db->db_data,
drro->drr_bonuslen);
}
dmu_buf_rele(db, FTAG);
drro->drr_bonuslen);
}
dmu_buf_rele(db, FTAG);
@@
-1186,7
+1188,7
@@
restore_write(struct restorearg *ra, objset_t *os,
int err;
if (drrw->drr_offset + drrw->drr_length < drrw->drr_offset ||
int err;
if (drrw->drr_offset + drrw->drr_length < drrw->drr_offset ||
-
drrw->drr_type >= DMU_OT_NUMTYPES
)
+
!DMU_OT_IS_VALID(drrw->drr_type)
)
return (EINVAL);
data = restore_read(ra, drrw->drr_length);
return (EINVAL);
data = restore_read(ra, drrw->drr_length);
@@
-1205,8
+1207,11
@@
restore_write(struct restorearg *ra, objset_t *os,
dmu_tx_abort(tx);
return (err);
}
dmu_tx_abort(tx);
return (err);
}
- if (ra->byteswap)
- dmu_ot[drrw->drr_type].ot_byteswap(data, drrw->drr_length);
+ if (ra->byteswap) {
+ dmu_object_byteswap_t byteswap =
+ DMU_OT_BYTESWAP(drrw->drr_type);
+ dmu_ot_byteswap[byteswap].ob_func(data, drrw->drr_length);
+ }
dmu_write(os, drrw->drr_object,
drrw->drr_offset, drrw->drr_length, data, tx);
dmu_tx_commit(tx);
dmu_write(os, drrw->drr_object,
drrw->drr_offset, drrw->drr_length, data, tx);
dmu_tx_commit(tx);