mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-24 19:28:53 +03:00
Illumos 4951 - ZFS administrative commands should use reserved space
4951 ZFS administrative commands should use reserved space, not with ENOSPC Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Dan McDonald <danmcd@omniti.com> Approved by: Garrett D'Amore <garrett@damore.org> References: https://www.illumos.org/issues/4373 https://github.com/illumos/illumos-gate/commit/7d46dc6 Ported by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
committed by
Brian Behlendorf
parent
cfec5b17b3
commit
3d45fdd6c0
@@ -20,7 +20,7 @@
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2013 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2012, 2014 by Delphix. All rights reserved.
|
||||
* Copyright (c) 2013 Martin Matuska. All rights reserved.
|
||||
* Copyright (c) 2014 Joyent, Inc. All rights reserved.
|
||||
* Copyright (c) 2014 Spectra Logic Corporation, All rights reserved.
|
||||
@@ -665,7 +665,8 @@ dsl_dir_activate_fs_ss_limit(const char *ddname)
|
||||
int error;
|
||||
|
||||
error = dsl_sync_task(ddname, dsl_dir_actv_fs_ss_limit_check,
|
||||
dsl_dir_actv_fs_ss_limit_sync, (void *)ddname, 0);
|
||||
dsl_dir_actv_fs_ss_limit_sync, (void *)ddname, 0,
|
||||
ZFS_SPACE_CHECK_RESERVED);
|
||||
|
||||
if (error == EALREADY)
|
||||
error = 0;
|
||||
@@ -1529,7 +1530,7 @@ dsl_dir_set_quota(const char *ddname, zprop_source_t source, uint64_t quota)
|
||||
ddsqra.ddsqra_value = quota;
|
||||
|
||||
return (dsl_sync_task(ddname, dsl_dir_set_quota_check,
|
||||
dsl_dir_set_quota_sync, &ddsqra, 0));
|
||||
dsl_dir_set_quota_sync, &ddsqra, 0, ZFS_SPACE_CHECK_NONE));
|
||||
}
|
||||
|
||||
int
|
||||
@@ -1650,7 +1651,7 @@ dsl_dir_set_reservation(const char *ddname, zprop_source_t source,
|
||||
ddsqra.ddsqra_value = reservation;
|
||||
|
||||
return (dsl_sync_task(ddname, dsl_dir_set_reservation_check,
|
||||
dsl_dir_set_reservation_sync, &ddsqra, 0));
|
||||
dsl_dir_set_reservation_sync, &ddsqra, 0, ZFS_SPACE_CHECK_NONE));
|
||||
}
|
||||
|
||||
static dsl_dir_t *
|
||||
@@ -1932,7 +1933,8 @@ dsl_dir_rename(const char *oldname, const char *newname)
|
||||
ddra.ddra_cred = CRED();
|
||||
|
||||
return (dsl_sync_task(oldname,
|
||||
dsl_dir_rename_check, dsl_dir_rename_sync, &ddra, 3));
|
||||
dsl_dir_rename_check, dsl_dir_rename_sync, &ddra,
|
||||
3, ZFS_SPACE_CHECK_RESERVED));
|
||||
}
|
||||
|
||||
int
|
||||
|
||||
Reference in New Issue
Block a user