]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: handle buffer log item IO errors directly
authorDave Chinner <dchinner@redhat.com>
Mon, 29 Jun 2020 21:49:14 +0000 (14:49 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Tue, 7 Jul 2020 14:15:07 +0000 (07:15 -0700)
commit419e384201de5eb13fd38318d6d6bc4d03e583db
treef6d8e185eda1d906bb15c42bb5a62569c0bf5d88
parent7e6f51cc99ce7179860553614a8f24646d2f0e2b
xfs: handle buffer log item IO errors directly

Currently when a buffer with attached log items has an IO error
it called ->iop_error for each attched log item. These all call
xfs_set_li_failed() to handle the error, but we are about to change
the way log items manage buffers. hence we first need to remove the
per-item dependency on buffer handling done by xfs_set_li_failed().

We already have specific buffer type IO completion routines, so move
the log item error handling out of the generic error handling and
into the log item specific functions so we can implement per-type
error handling easily.

This requires a more complex return value from the error handling
code so that we can take the correct action the failure handling
requires.  This results in some repeated boilerplate in the
functions, but that can be cleaned up later once all the changes
cascade through this code.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_buf_item.c