Re: [PATCH 12/24] xfs: pin inode backing buffer to the inode log item

Christoph Hellwig
2020-05-24T05:31:30Z

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.