aboutsummaryrefslogtreecommitdiff
path: root/include/sys/dsl_dir.h
diff options
context:
space:
mode:
authorPaul Dagnelie <pcd@delphix.com>2020-04-01 17:02:06 +0000
committerGitHub <noreply@github.com>2020-04-01 17:02:06 +0000
commit5a42ef04fd390dc96fbbf31bc9f3d05695998211 (patch)
treeee4aec968084618faa92988b08a3c41c9b904327 /include/sys/dsl_dir.h
parentc9e3efdb3a6111b9795becc6594b3c52ba004522 (diff)
downloadsrc-5a42ef04fd390dc96fbbf31bc9f3d05695998211.tar.gz
src-5a42ef04fd390dc96fbbf31bc9f3d05695998211.zip
Diffstat (limited to 'include/sys/dsl_dir.h')
-rw-r--r--include/sys/dsl_dir.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/sys/dsl_dir.h b/include/sys/dsl_dir.h
index bb6921027135..88fd61035407 100644
--- a/include/sys/dsl_dir.h
+++ b/include/sys/dsl_dir.h
@@ -121,6 +121,11 @@ struct dsl_dir {
bplist_t dd_pending_frees;
bplist_t dd_pending_allocs;
+ kmutex_t dd_activity_lock;
+ kcondvar_t dd_activity_cv;
+ boolean_t dd_activity_cancelled;
+ uint64_t dd_activity_waiters;
+
/* protected by dd_lock; keep at end of struct for better locality */
char dd_myname[ZFS_MAX_DATASET_NAME_LEN];
};
@@ -192,6 +197,9 @@ boolean_t dsl_dir_is_zapified(dsl_dir_t *dd);
void dsl_dir_livelist_open(dsl_dir_t *dd, uint64_t obj);
void dsl_dir_livelist_close(dsl_dir_t *dd);
void dsl_dir_remove_livelist(dsl_dir_t *dd, dmu_tx_t *tx, boolean_t total);
+int dsl_dir_wait(dsl_dir_t *dd, dsl_dataset_t *ds, zfs_wait_activity_t activity,
+ boolean_t *waited);
+void dsl_dir_cancel_waiters(dsl_dir_t *dd);
/* internal reserved dir name */
#define MOS_DIR_NAME "$MOS"