On Sun, May 24, 2020 at 07:43:34AM +1000, Dave Chinner wrote: > I've got to rework the error handling code anyway, so I might end up > getting rid of ->li_error and hard coding these like I've done the > iodone functions. That way the different objects can use different > failure mechanisms until the dquot code is converted to the same > "hold at dirty time" flushing mechanism... FYI, while reviewing your series I looked at that area a bit, and found the (pre-existing) code structure a little weird: - xfs_buf_iodone_callback_errorl deals with the buffer itself and thus should sit in xfs_buf.c, not xfs_buf_item.c - xfs_buf_do_callbacks_fail really nees to be a buffer level methods instead of polig into b_li_list, which nothing else in "common" code does. My though was to either add another method or overload the b_write_done method to pass the error back to the buffer owner and let the owner deal with the list iteration an exact error handling method.