summaryrefslogtreecommitdiffstats
path: root/include/sys/dsl_userhold.h
diff options
context:
space:
mode:
authorSteven Hartland <[email protected]>2013-05-25 02:06:23 +0000
committerBrian Behlendorf <[email protected]>2013-11-04 11:17:48 -0800
commit95fd54a1c5b93bb2aa3e7dffc28c784b1e21a8bb (patch)
tree601d05db488f2e7ea24913dfa4028681928d64eb /include/sys/dsl_userhold.h
parent7bc7f25040e68d6094a6c46fc300a3c4d66d2970 (diff)
Illumos #3740
3740 Poor ZFS send / receive performance due to snapshot hold / release processing Reviewed by: Matthew Ahrens <[email protected]> Approved by: Christopher Siden <[email protected]> References: https://www.illumos.org/issues/3740 illumos/illumos-gate@a7a845e4bf22fd1b2a284729ccd95c7370a0438c Ported-by: Richard Yao <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #1775 Porting notes: 1. 13fe019870c8779bf2f5b3ff731b512cf89133ef introduced a merge conflict in dsl_dataset_user_release_tmp where some variables were moved outside of the preprocessor directive. 2. dea9dfefdd747534b3846845629d2200f0616dad made the previous merge conflict worse by switching KM_SLEEP to KM_PUSHPAGE. This is notable because this commit refactors the code, adding a new KM_SLEEP allocation. It is not clear to me whether this should be converted to KM_PUSHPAGE. 3. We had a merge conflict in libzfs_sendrecv.c because of copyright notices. 4. Several small C99 compatibility fixed were made.
Diffstat (limited to 'include/sys/dsl_userhold.h')
-rw-r--r--include/sys/dsl_userhold.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/sys/dsl_userhold.h b/include/sys/dsl_userhold.h
index 56c6c8f47..071aeb86d 100644
--- a/include/sys/dsl_userhold.h
+++ b/include/sys/dsl_userhold.h
@@ -23,6 +23,7 @@
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
* Copyright (c) 2012, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2013 Steven Hartland. All rights reserved.
*/
#ifndef _SYS_DSL_USERHOLD_H
@@ -43,8 +44,7 @@ int dsl_dataset_user_hold(nvlist_t *holds, minor_t cleanup_minor,
nvlist_t *errlist);
int dsl_dataset_user_release(nvlist_t *holds, nvlist_t *errlist);
int dsl_dataset_get_holds(const char *dsname, nvlist_t *nvl);
-void dsl_dataset_user_release_tmp(struct dsl_pool *dp, uint64_t dsobj,
- const char *htag);
+void dsl_dataset_user_release_tmp(struct dsl_pool *dp, nvlist_t *holds);
int dsl_dataset_user_hold_check_one(struct dsl_dataset *ds, const char *htag,
boolean_t temphold, struct dmu_tx *tx);
void dsl_dataset_user_hold_sync_one(struct dsl_dataset *ds, const char *htag,