• Dave Chinner's avatar
    xfs: ensure we copy buffer type in da btree root splits · 0a4edc8f
    Dave Chinner authored
    When splitting the root of the da btree, we shuffled data between
    buffers and the structures that track them. At one point, we copy
    data and state from one buffer to another, including the ops
    associated with the buffer. When we do this, we also need to copy
    the buffer type associated with the buf log item so that the buffer
    is logged correctly. If we don't do that, log recovery won't
    recognise it and hence it won't recalculate the CRC on the buffer
    after recovery. This leads to a directory block that can't be read
    after recovery has run.
    
    Found by inspection after finding the same problem with remote
    symlink buffers.
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarBen Myers <bpm@sgi.com>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>
    0a4edc8f
xfs_da_btree.c 72.1 KB