Reviewed by: Paul Dagnelie <[email protected]> Reviewed by: Pavel Zakharov <[email protected]> Reviewed by: George Wilson <[email protected]>
The problem is that when dsl_bookmark_destroy_check() is executed from open context (the pre-check), it fills in dbda_success based on the existence of the bookmark. But the bookmark (or containing filesystem as in this case) can be destroyed before we get to syncing context. When we re-run dsl_bookmark_destroy_check() in syncing context, it will not add the deleted bookmark to dbda_success, intending for dsl_bookmark_destroy_sync() to not process it. But because the bookmark is still in dbda_success from the open-context call, we do try to destroy it. The fix is that dsl_bookmark_destroy_check() should not modify dbda_success when called from open context. You can view, comment on, or merge this pull request online at: https://github.com/openzfs/openzfs/pull/399 -- Commit Summary -- * 8377 Panic in bookmark deletion -- File Changes -- M usr/src/uts/common/fs/zfs/dsl_bookmark.c (8) -- Patch Links -- https://github.com/openzfs/openzfs/pull/399.patch https://github.com/openzfs/openzfs/pull/399.diff -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/openzfs/openzfs/pull/399 ------------------------------------------ openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/Ta7d098dd5cc059e1-M3623413c57a952f344fb86cc Powered by Topicbox: https://topicbox.com
