yes i have 2 CIFS shares, one on each pools dataset.
And no snapshots except the one i created for pool 1 and moved to pool 2 for rollback.
So if i understand you correctly. You are misunderstanding some things.
You created a snap for "rollback". That does not mean you can undo your changes. It means you roll back your filesystem to that snapshot, that point in time. And the snapshot is on your pool1. No good for your pool2.
Test:
I now have two pools. vol01 and vol02. Both has their files and folders.
In addition:
Vol01 has the .system dataset
Vol02 has a empty dataset
I create a snap01 on vol01. Non recursive (not doing descendent file systems ie. Datasets).
This snapshot i want to send like you did to my vol02 for backup.
Code:
zfs send vol01@snap01 | vol02
And a error arrives:
cannot receive new filesystem stream: destination 'vol02' exists must specify -F to overwrite it
Did you use -F ? I bet u did... and it clearly says what it does:
-F to overwrite it.
So i do this to test.
Code:
zfs send vol01@snap01 | zfs receive -F vol02
And voila. All files/folders on the vol02 are replaced by the contents of vol01. The filesystem is overwritten.
The only thing left is my dataset on vol02 because it is a different filesystem and the .System is not replicated because i did not do a recursive snapshot.
So... not much help... but at least an explanation to what you did wrong...
You would be home free if you sent your snap to its own dataset on pool2.
Use datasets for everything.