-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
zfs destroy is failing #47
Comments
This issue is same as you have documented in zfs_windows_unmount(). The 'ds_longholds' ref count is held during zfs mount and released during zfs unmount. So in successful case, zfs.exe is able to find mount point and sends unmount ioctl and followed by destroy ioctl. In failure case, zfs.exe is not able to find mount point and it only sends destroy command and hence ref count is not decreased. But compared to zfsin, function zfs_remove_driveletter() is still called from zfs_windows_unmount(). If this function call is commented, then this "zfs destroy" functionality works fine as in zfsin
|
To repro, create and destroy same zfs twice. zpool create -f testpool PHYSICALDRIVE1 error: cannot destroy testpool/fs1/fs2: dataset is busy. |
After you unmount the dataset, the directory/reparse point is still there (and can't be deleted), so that is going to be a problem.... |
Ah amusingly, when we go to delete it, it calls zfs_lookup, and |
OK so in the Finally This part works. However, the directory can not be removed, (not empty), I believe due to |
OK part one 3e83da0 still has the "Is Busy" problem you already mentioned |
As you mentioned, with 8c4a594 commented out, i can create/destroy multiple times. It is not an area that I am familiar with. |
zfs destroy is failing most of the times. It is failing at dsl_destroy_head_check_impl() where it expects holds to be 0, but is 1 as in #9
The text was updated successfully, but these errors were encountered: