Autogrow, Autodelete are not tied well with cifs i/o .
Lets say i/o is happening to a cifs share in a volume. And volume has autogrow and autodelete enabled. The volume is about to become full. In this scenario, the cifs writes can fail. Autogrow or autodelete will trigger on the volume, but they do not guarantee that space will be available in timely fashion for cifs writes to succeed.
For NFS, iscsi and FCP, autogrow,autodelete are tied to protocol i/o path. And they are triggered in a timely fashion to ensure writes do not fail for these protocols.
Because of this reason, we do not allow cifs to be enabled on datasets with autogrow,autodelete policy. For cifs, only option is to use thick provisioning. (guarantee=volume). Or complete thin provisioning (guarantee=none).
Thanks
Sivaprasad K