On Fri, Aug 11, 2017 at 05:53:10AM -0700, Christoph Hellwig wrote: > On Thu, Aug 10, 2017 at 07:33:07AM +1000, Dave Chinner wrote: > > Hmmmm, looking closer at xfs_defer_finish(), just holding the buffer > > here isn't sufficient. xfs_defer_finish() can roll the transaction a > > number of times and holding the buffer is a one-shot deal. Hence the > > buffer held buffer will have BLI_HOLD removed on the next commit > > and be unlocked by the second commit, whether it be inside > > xfs_defer_finish() or the roll that occurs below. > > > > ISTR a previous discussion with Darrick that we needed something > > like xfs_defer_join() with buffers instead of inodes to allow them > > to be held across a call to xfs_defer_finish().... > > We do. I actually have patches lying around that remove the > xfs_trans_roll and xfs_defer_finish inode arguments, and instead have a > separate helper for rolling over an inode and adding an inode to the > defer list. > > I've not added a magic helper for buffers yet, but that would be a > natural fit into that model. Could you send them to the list, please? :) --D > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html