On Tue, Mar 19, 2024 at 03:54:02PM -0700, Christoph Hellwig wrote: > > +static bool > > +xlog_recovery_is_dir_buf( > > + struct xfs_buf_log_format *buf_f) > > +{ > > + switch (xfs_blft_from_flags(buf_f)) { > > + case XFS_BLFT_DIR_BLOCK_BUF: > > + case XFS_BLFT_DIR_DATA_BUF: > > + case XFS_BLFT_DIR_FREE_BUF: > > + case XFS_BLFT_DIR_LEAF1_BUF: > > + case XFS_BLFT_DIR_LEAFN_BUF: > > + case XFS_BLFT_DA_NODE_BUF: > > XFS_BLFT_DA_NODE_BUF can also be a non-directory buffer. Maybe this > should be named something like xlog_recover_maybe_is_partial_dabuf? > > > + error = bp->b_error; > > goto out_release; > > } > > > > + > > This adds a spurious new line. > > Otherwise this looks good to me, but the lack over verifiation for these > multi-buffer recoveries really scares me.. I wondered if there was a good way to reconstruct the discontiguous buffer, but the only things I could think of relied on guessing from the subsequent buffer log items. Does anyone have a better idea? --D