Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 201777
b: refs/heads/master
c: fb511f2
h: refs/heads/master
i:
  201775: 5fea3b1
v: v3
  • Loading branch information
Christoph Hellwig authored and Alex Elder committed Jul 26, 2010
1 parent 9e62a40 commit 341acaa
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 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: 40e2e97316af6e62affab7a392e792494b8d9dde
refs/heads/master: fb511f2150174b18b28ad54708c1adda0df39b17
19 changes: 16 additions & 3 deletions trunk/fs/xfs/linux-2.6/xfs_aops.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,8 +265,11 @@ xfs_end_io(
xfs_finish_ioend(ioend, 0);
/* ensure we don't spin on blocked ioends */
delay(1);
} else
} else {
if (ioend->io_iocb)
aio_complete(ioend->io_iocb, ioend->io_result, 0);
xfs_destroy_ioend(ioend);
}
}

/*
Expand Down Expand Up @@ -299,6 +302,8 @@ xfs_alloc_ioend(
atomic_inc(&XFS_I(ioend->io_inode)->i_iocount);
ioend->io_offset = 0;
ioend->io_size = 0;
ioend->io_iocb = NULL;
ioend->io_result = 0;

INIT_WORK(&ioend->io_work, xfs_end_io);
return ioend;
Expand Down Expand Up @@ -1411,6 +1416,7 @@ xfs_end_io_direct(
bool is_async)
{
xfs_ioend_t *ioend = iocb->private;
bool complete_aio = is_async;

/*
* Non-NULL private data means we need to issue a transaction to
Expand All @@ -1436,7 +1442,14 @@ xfs_end_io_direct(
if (ioend->io_type == IO_READ) {
xfs_finish_ioend(ioend, 0);
} else if (private && size > 0) {
xfs_finish_ioend(ioend, is_sync_kiocb(iocb));
if (is_async) {
ioend->io_iocb = iocb;
ioend->io_result = ret;
complete_aio = false;
xfs_finish_ioend(ioend, 0);
} else {
xfs_finish_ioend(ioend, 1);
}
} else {
/*
* A direct I/O write ioend starts it's life in unwritten
Expand All @@ -1455,7 +1468,7 @@ xfs_end_io_direct(
*/
iocb->private = NULL;

if (is_async)
if (complete_aio)
aio_complete(iocb, ret, 0);
}

Expand Down

0 comments on commit 341acaa

Please sign in to comment.