mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 16:49:22 +00:00
kill vn_ioerror
There's just one caller of this helper, and it's much cleaner to just merge the xfs_do_force_shutdown call into it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com> Signed-off-by: Niv Sardi <xaiki@sgi.com>
This commit is contained in:
parent
f95099ba5a
commit
583fa586f0
3 changed files with 13 additions and 21 deletions
|
@ -146,16 +146,25 @@ xfs_destroy_ioend(
|
|||
xfs_ioend_t *ioend)
|
||||
{
|
||||
struct buffer_head *bh, *next;
|
||||
struct xfs_inode *ip = XFS_I(ioend->io_inode);
|
||||
|
||||
for (bh = ioend->io_buffer_head; bh; bh = next) {
|
||||
next = bh->b_private;
|
||||
bh->b_end_io(bh, !ioend->io_error);
|
||||
}
|
||||
if (unlikely(ioend->io_error)) {
|
||||
vn_ioerror(XFS_I(ioend->io_inode), ioend->io_error,
|
||||
__FILE__,__LINE__);
|
||||
|
||||
/*
|
||||
* Volume managers supporting multiple paths can send back ENODEV
|
||||
* when the final path disappears. In this case continuing to fill
|
||||
* the page cache with dirty data which cannot be written out is
|
||||
* evil, so prevent that.
|
||||
*/
|
||||
if (unlikely(ioend->io_error == -ENODEV)) {
|
||||
xfs_do_force_shutdown(ip->i_mount, SHUTDOWN_DEVICE_REQ,
|
||||
__FILE__, __LINE__);
|
||||
}
|
||||
vn_iowake(XFS_I(ioend->io_inode));
|
||||
|
||||
vn_iowake(ip);
|
||||
mempool_free(ioend, xfs_ioend_pool);
|
||||
}
|
||||
|
||||
|
|
|
@ -66,22 +66,6 @@ vn_iowake(
|
|||
wake_up(vptosync(ip));
|
||||
}
|
||||
|
||||
/*
|
||||
* Volume managers supporting multiple paths can send back ENODEV when the
|
||||
* final path disappears. In this case continuing to fill the page cache
|
||||
* with dirty data which cannot be written out is evil, so prevent that.
|
||||
*/
|
||||
void
|
||||
vn_ioerror(
|
||||
xfs_inode_t *ip,
|
||||
int error,
|
||||
char *f,
|
||||
int l)
|
||||
{
|
||||
if (unlikely(error == -ENODEV))
|
||||
xfs_do_force_shutdown(ip->i_mount, SHUTDOWN_DEVICE_REQ, f, l);
|
||||
}
|
||||
|
||||
#ifdef XFS_INODE_TRACE
|
||||
|
||||
#define KTRACE_ENTER(ip, vk, s, line, ra) \
|
||||
|
|
|
@ -63,7 +63,6 @@ extern void vn_init(void);
|
|||
*/
|
||||
extern void vn_iowait(struct xfs_inode *ip);
|
||||
extern void vn_iowake(struct xfs_inode *ip);
|
||||
extern void vn_ioerror(struct xfs_inode *ip, int error, char *f, int l);
|
||||
|
||||
#define IHOLD(ip) \
|
||||
do { \
|
||||
|
|
Loading…
Reference in a new issue