summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/fs/zfs/dmu_tx.c8
-rw-r--r--usr/src/uts/common/fs/zfs/zvol.c6
2 files changed, 12 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/zfs/dmu_tx.c b/usr/src/uts/common/fs/zfs/dmu_tx.c
index 6b6aa7a136..13fd8d4d9d 100644
--- a/usr/src/uts/common/fs/zfs/dmu_tx.c
+++ b/usr/src/uts/common/fs/zfs/dmu_tx.c
@@ -545,11 +545,15 @@ dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, char *name)
return;
}
+ /*
+ * Use max block size here, since we don't know how much
+ * the size will change between now and the dbuf dirty call.
+ */
if (dsl_dataset_block_freeable(dn->dn_objset->os_dsl_dataset,
dn->dn_phys->dn_blkptr[0].blk_birth))
- txh->txh_space_tooverwrite += dn->dn_datablksz;
+ txh->txh_space_tooverwrite += SPA_MAXBLOCKSIZE;
else
- txh->txh_space_towrite += dn->dn_datablksz;
+ txh->txh_space_towrite += SPA_MAXBLOCKSIZE;
return;
}
diff --git a/usr/src/uts/common/fs/zfs/zvol.c b/usr/src/uts/common/fs/zfs/zvol.c
index 2bacd61654..951b1a5d08 100644
--- a/usr/src/uts/common/fs/zfs/zvol.c
+++ b/usr/src/uts/common/fs/zfs/zvol.c
@@ -1068,6 +1068,12 @@ zvol_ioctl(dev_t dev, int cmd, intptr_t arg, int flag, cred_t *cr, int *rvalp)
}
return (error);
+ case DKIOCGGEOM:
+ case DKIOCGVTOC:
+ /* commands using these (like prtvtoc) expect ENOTSUP */
+ error = ENOTSUP;
+ break;
+
default:
error = ENOTTY;
break;