mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
Illumos 4370, 4371
4370 avoid transmitting holes during zfs send 4371 DMU code clean up Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net> Approved by: Garrett D'Amore <garrett@damore.org>a References: https://www.illumos.org/issues/4370 https://www.illumos.org/issues/4371 https://github.com/illumos/illumos-gate/commit/43466aa Ported by: Tim Chase <tim@chase2k.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #2529
This commit is contained in:
committed by
Brian Behlendorf
parent
fa86b5dbb6
commit
b0bc7a84d9
@@ -558,7 +558,6 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
|
||||
dmu_buf_t *db;
|
||||
timestruc_t now;
|
||||
uint64_t gen, obj;
|
||||
int err;
|
||||
int bonuslen;
|
||||
sa_handle_t *sa_hdl;
|
||||
dmu_object_type_t obj_type;
|
||||
@@ -591,10 +590,9 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
|
||||
*/
|
||||
if (S_ISDIR(vap->va_mode)) {
|
||||
if (zsb->z_replay) {
|
||||
err = zap_create_claim_norm(zsb->z_os, obj,
|
||||
VERIFY0(zap_create_claim_norm(zsb->z_os, obj,
|
||||
zsb->z_norm, DMU_OT_DIRECTORY_CONTENTS,
|
||||
obj_type, bonuslen, tx);
|
||||
ASSERT0(err);
|
||||
obj_type, bonuslen, tx));
|
||||
} else {
|
||||
obj = zap_create_norm(zsb->z_os,
|
||||
zsb->z_norm, DMU_OT_DIRECTORY_CONTENTS,
|
||||
@@ -602,10 +600,9 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
|
||||
}
|
||||
} else {
|
||||
if (zsb->z_replay) {
|
||||
err = dmu_object_claim(zsb->z_os, obj,
|
||||
VERIFY0(dmu_object_claim(zsb->z_os, obj,
|
||||
DMU_OT_PLAIN_FILE_CONTENTS, 0,
|
||||
obj_type, bonuslen, tx);
|
||||
ASSERT0(err);
|
||||
obj_type, bonuslen, tx));
|
||||
} else {
|
||||
obj = dmu_object_alloc(zsb->z_os,
|
||||
DMU_OT_PLAIN_FILE_CONTENTS, 0,
|
||||
@@ -784,8 +781,7 @@ zfs_mknode(znode_t *dzp, vattr_t *vap, dmu_tx_t *tx, cred_t *cr,
|
||||
|
||||
if (obj_type == DMU_OT_ZNODE ||
|
||||
acl_ids->z_aclp->z_version < ZFS_ACL_VERSION_FUID) {
|
||||
err = zfs_aclset_common(*zpp, acl_ids->z_aclp, cr, tx);
|
||||
ASSERT0(err);
|
||||
VERIFY0(zfs_aclset_common(*zpp, acl_ids->z_aclp, cr, tx));
|
||||
}
|
||||
kmem_free(sa_attrs, sizeof (sa_bulk_attr_t) * ZPL_END);
|
||||
ZFS_OBJ_HOLD_EXIT(zsb, obj);
|
||||
|
||||
Reference in New Issue
Block a user