201 void *tag, dsl_dataset_t **dsp);
202 int dsl_dataset_own_obj(struct dsl_pool *dp, uint64_t dsobj,
203 boolean_t inconsistentok, void *tag, dsl_dataset_t **dsp);
204 void dsl_dataset_name(dsl_dataset_t *ds, char *name);
205 void dsl_dataset_rele(dsl_dataset_t *ds, void *tag);
206 void dsl_dataset_disown(dsl_dataset_t *ds, void *tag);
207 void dsl_dataset_drop_ref(dsl_dataset_t *ds, void *tag);
208 boolean_t dsl_dataset_tryown(dsl_dataset_t *ds, boolean_t inconsistentok,
209 void *tag);
210 void dsl_dataset_make_exclusive(dsl_dataset_t *ds, void *tag);
211 void dsl_register_onexit_hold_cleanup(dsl_dataset_t *ds, const char *htag,
212 minor_t minor);
213 uint64_t dsl_dataset_create_sync(dsl_dir_t *pds, const char *lastname,
214 dsl_dataset_t *origin, uint64_t flags, cred_t *, dmu_tx_t *);
215 uint64_t dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin,
216 uint64_t flags, dmu_tx_t *tx);
217 int dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer);
218 dsl_checkfunc_t dsl_dataset_destroy_check;
219 dsl_syncfunc_t dsl_dataset_destroy_sync;
220 dsl_syncfunc_t dsl_dataset_user_hold_sync;
221 int dsl_dataset_snapshot_check(dsl_dataset_t *ds, const char *, dmu_tx_t *tx);
222 void dsl_dataset_snapshot_sync(dsl_dataset_t *ds, const char *, dmu_tx_t *tx);
223 int dsl_dataset_rename(char *name, const char *newname, boolean_t recursive);
224 int dsl_dataset_promote(const char *name, char *conflsnap);
225 int dsl_dataset_clone_swap(dsl_dataset_t *clone, dsl_dataset_t *origin_head,
226 boolean_t force);
227 int dsl_dataset_user_hold(char *dsname, char *snapname, char *htag,
228 boolean_t recursive, boolean_t temphold, int cleanup_fd);
229 int dsl_dataset_user_hold_for_send(dsl_dataset_t *ds, char *htag,
230 boolean_t temphold);
231 int dsl_dataset_user_release(char *dsname, char *snapname, char *htag,
232 boolean_t recursive);
233 int dsl_dataset_user_release_tmp(struct dsl_pool *dp, uint64_t dsobj,
234 char *htag, boolean_t retry);
235 int dsl_dataset_get_holds(const char *dsname, nvlist_t **nvp);
236
237 blkptr_t *dsl_dataset_get_blkptr(dsl_dataset_t *ds);
238 void dsl_dataset_set_blkptr(dsl_dataset_t *ds, blkptr_t *bp, dmu_tx_t *tx);
239
240 spa_t *dsl_dataset_get_spa(dsl_dataset_t *ds);
241
|
201 void *tag, dsl_dataset_t **dsp);
202 int dsl_dataset_own_obj(struct dsl_pool *dp, uint64_t dsobj,
203 boolean_t inconsistentok, void *tag, dsl_dataset_t **dsp);
204 void dsl_dataset_name(dsl_dataset_t *ds, char *name);
205 void dsl_dataset_rele(dsl_dataset_t *ds, void *tag);
206 void dsl_dataset_disown(dsl_dataset_t *ds, void *tag);
207 void dsl_dataset_drop_ref(dsl_dataset_t *ds, void *tag);
208 boolean_t dsl_dataset_tryown(dsl_dataset_t *ds, boolean_t inconsistentok,
209 void *tag);
210 void dsl_dataset_make_exclusive(dsl_dataset_t *ds, void *tag);
211 void dsl_register_onexit_hold_cleanup(dsl_dataset_t *ds, const char *htag,
212 minor_t minor);
213 uint64_t dsl_dataset_create_sync(dsl_dir_t *pds, const char *lastname,
214 dsl_dataset_t *origin, uint64_t flags, cred_t *, dmu_tx_t *);
215 uint64_t dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin,
216 uint64_t flags, dmu_tx_t *tx);
217 int dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer);
218 dsl_checkfunc_t dsl_dataset_destroy_check;
219 dsl_syncfunc_t dsl_dataset_destroy_sync;
220 dsl_syncfunc_t dsl_dataset_user_hold_sync;
221 int dsl_dataset_snapshot_check(dsl_dataset_t *ds, const char *, uint64_t,
222 dmu_tx_t *tx, cred_t *);
223 void dsl_dataset_snapshot_sync(dsl_dataset_t *ds, const char *, dmu_tx_t *tx);
224 int dsl_dataset_rename(char *name, const char *newname, boolean_t recursive);
225 int dsl_dataset_promote(const char *name, char *conflsnap);
226 int dsl_dataset_clone_swap(dsl_dataset_t *clone, dsl_dataset_t *origin_head,
227 boolean_t force);
228 int dsl_dataset_user_hold(char *dsname, char *snapname, char *htag,
229 boolean_t recursive, boolean_t temphold, int cleanup_fd);
230 int dsl_dataset_user_hold_for_send(dsl_dataset_t *ds, char *htag,
231 boolean_t temphold);
232 int dsl_dataset_user_release(char *dsname, char *snapname, char *htag,
233 boolean_t recursive);
234 int dsl_dataset_user_release_tmp(struct dsl_pool *dp, uint64_t dsobj,
235 char *htag, boolean_t retry);
236 int dsl_dataset_get_holds(const char *dsname, nvlist_t **nvp);
237
238 blkptr_t *dsl_dataset_get_blkptr(dsl_dataset_t *ds);
239 void dsl_dataset_set_blkptr(dsl_dataset_t *ds, blkptr_t *bp, dmu_tx_t *tx);
240
241 spa_t *dsl_dataset_get_spa(dsl_dataset_t *ds);
242
|