On Fri, May 22, 2020 at 01:50:28PM +1000, Dave Chinner wrote: > +xfs_iflush_ail_updates( > + struct xfs_ail *ailp, > + struct list_head *list) > { > + struct xfs_log_item *lip; > + xfs_lsn_t tail_lsn = 0; > > + spin_lock(&ailp->ail_lock); > + list_for_each_entry(lip, list, li_bio_list) { > + struct xfs_inode_log_item *iip = INODE_ITEM(lip); > + xfs_lsn_t lsn; > > + if (iip->ili_flush_lsn != lip->li_lsn) { > + xfs_clear_li_failed(lip); > continue; > } > > + lsn = xfs_ail_delete_one(ailp, lip); > + if (!tail_lsn && lsn) > + tail_lsn = lsn; iip is only used once, this could be shortened by using INODE_ITEM() directly in the if expession: if (INODE_ITEM(lip)->ili_flush_lsn != lip->li_lsn) { > + list_for_each_entry_safe(lip, n, &bp->b_li_list, li_bio_list) { > + struct xfs_inode_log_item *iip = INODE_ITEM(lip); > + if (!iip->ili_last_fields) > + continue; Please add an empty line after the variable declaration.