Improve ZFS on zvol support

Commit 6c2856726fbae681649930d9620d9087080e58fc did not handle all potential deadlocks. In particular, it fails to handle situations where LVM or cryptoloop is backed by a zvol and being presented to ZFS. It also broke compatibility with Linux 2.6.26, which is issue #1205. Lets revert it in favor handling all cases while maintaining compatibility.