Skip to content
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

[2.1] Fix raw receive with different indirect block size. #15073

Merged
merged 1 commit into from
Jul 20, 2023

Commits on Jul 16, 2023

  1. Fix raw receive with different indirect block size.

    Unlike regular receive, raw receive require destination to have the
    same block structure as the source.  In case of dnode reclaim this
    triggers two special cases, requiring special handling:
     - If dn_nlevels == 1, we can change the ibs, but dnode_set_blksz()
    should not dirty the data buffer if block size does not change, or
    durign receive dbuf_dirty_lightweight() will trigger assertion.
     - If dn_nlevels > 1, we just can't change the ibs, dnode_set_blksz()
    would fail and receive_object would trigger assertion, so we should
    destroy and recreate the dnode from scratch.
    
    Reviewed-by: Paul Dagnelie <[email protected]>
    Signed-off-by:	Alexander Motin <[email protected]>
    Sponsored by:	iXsystems, Inc.
    Closes openzfs#15039
    amotin committed Jul 16, 2023
    Configuration menu
    Copy the full SHA
    498c986 View commit details
    Browse the repository at this point in the history