Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 124938
b: refs/heads/master
c: 583fa58
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Hellwig authored and Niv Sardi committed Dec 4, 2008
1 parent 0c4a752 commit b40f974
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f95099ba5ae06b96a9c17ef93cc655f686d79077
refs/heads/master: 583fa586f0e4a8222dd091ce971b85c1364f3d92
17 changes: 13 additions & 4 deletions trunk/fs/xfs/linux-2.6/xfs_aops.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
16 changes: 0 additions & 16 deletions trunk/fs/xfs/linux-2.6/xfs_vnode.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) \
Expand Down
1 change: 0 additions & 1 deletion trunk/fs/xfs/linux-2.6/xfs_vnode.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 { \
Expand Down

0 comments on commit b40f974

Please sign in to comment.