Răsfoiți Sursa

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>
Christoph Hellwig 16 ani în urmă
părinte
comite
583fa586f0
3 a modificat fișierele cu 13 adăugiri și 21 ștergeri
  1. 13 4
      fs/xfs/linux-2.6/xfs_aops.c
  2. 0 16
      fs/xfs/linux-2.6/xfs_vnode.c
  3. 0 1
      fs/xfs/linux-2.6/xfs_vnode.h

+ 13 - 4
fs/xfs/linux-2.6/xfs_aops.c

@@ -146,16 +146,25 @@ xfs_destroy_ioend(
 	xfs_ioend_t		*ioend)
 	xfs_ioend_t		*ioend)
 {
 {
 	struct buffer_head	*bh, *next;
 	struct buffer_head	*bh, *next;
+	struct xfs_inode	*ip = XFS_I(ioend->io_inode);
 
 
 	for (bh = ioend->io_buffer_head; bh; bh = next) {
 	for (bh = ioend->io_buffer_head; bh; bh = next) {
 		next = bh->b_private;
 		next = bh->b_private;
 		bh->b_end_io(bh, !ioend->io_error);
 		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);
 	mempool_free(ioend, xfs_ioend_pool);
 }
 }
 
 

+ 0 - 16
fs/xfs/linux-2.6/xfs_vnode.c

@@ -66,22 +66,6 @@ vn_iowake(
 		wake_up(vptosync(ip));
 		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
 #ifdef	XFS_INODE_TRACE
 
 
 #define KTRACE_ENTER(ip, vk, s, line, ra)			\
 #define KTRACE_ENTER(ip, vk, s, line, ra)			\

+ 0 - 1
fs/xfs/linux-2.6/xfs_vnode.h

@@ -63,7 +63,6 @@ extern void	vn_init(void);
  */
  */
 extern void	vn_iowait(struct xfs_inode *ip);
 extern void	vn_iowait(struct xfs_inode *ip);
 extern void	vn_iowake(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) \
 #define IHOLD(ip) \
 do { \
 do { \