You can destroy a file system or dataset even if the dataset has dependent clones. Snapshots of the destroyed dataset automatically become hidden and no longer appear in the dataset listings. Being hidden, these snapshots cannot be cloned, held, or sent. Further, you cannot roll back to these snapshots.
By default, the destroy operation is performed asynchronously. The destroyed datasets are immediately reclaimed after the operation is completed and the destroy command returns to the caller. To perform a synchronous destroy operation, use the –s option when issuing the command.