Mercurial > illumos > illumos-gate
diff usr/src/uts/common/fs/zfs/dsl_dataset.c @ 10799:395576ddfea9
6881321 zfs test rsend_012_pos panics when running daily.0807 archives
author | Chris Kirby <Chris.Kirby@sun.com> |
---|---|
date | Thu, 15 Oct 2009 07:09:05 -0600 |
parents | dc03f981ea18 |
children | e0bf032e8673 |
line wrap: on
line diff
--- a/usr/src/uts/common/fs/zfs/dsl_dataset.c Wed Oct 14 17:18:49 2009 -0600 +++ b/usr/src/uts/common/fs/zfs/dsl_dataset.c Thu Oct 15 07:09:05 2009 -0600 @@ -2824,6 +2824,10 @@ dsl_dir_space_available(csa->ohds->ds_dir, NULL, 0, TRUE)) return (ENOSPC); + if (csa->ohds->ds_quota != 0 && + csa->cds->ds_phys->ds_unique_bytes > csa->ohds->ds_quota) + return (EDQUOT); + return (0); } @@ -2835,7 +2839,8 @@ dsl_pool_t *dp = csa->cds->ds_dir->dd_pool; ASSERT(csa->cds->ds_reserved == 0); - ASSERT(csa->cds->ds_quota == csa->ohds->ds_quota); + ASSERT(csa->ohds->ds_quota == 0 || + csa->cds->ds_phys->ds_unique_bytes <= csa->ohds->ds_quota); dmu_buf_will_dirty(csa->cds->ds_dbuf, tx); dmu_buf_will_dirty(csa->ohds->ds_dbuf, tx);