I've improved this to more closely match the code uses on FreeBSD. It ensures that the dataset is visible, but also that it is writable (meaning it isn't one of the parents, but is a child of the delegated dataset)