git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netfilter: ipt_CLUSTERIP: fix out-of-bounds accesses in clusterip_tg_check()
[pandora-kernel.git]
/
fs
/
xfs
/
xfs_aops.c
diff --git
a/fs/xfs/xfs_aops.c
b/fs/xfs/xfs_aops.c
index
574d4ee
..
c2b06d4
100644
(file)
--- a/
fs/xfs/xfs_aops.c
+++ b/
fs/xfs/xfs_aops.c
@@
-88,11
+88,11
@@
xfs_destroy_ioend(
}
if (ioend->io_iocb) {
}
if (ioend->io_iocb) {
+ inode_dio_done(ioend->io_inode);
if (ioend->io_isasync) {
aio_complete(ioend->io_iocb, ioend->io_error ?
ioend->io_error : ioend->io_result, 0);
}
if (ioend->io_isasync) {
aio_complete(ioend->io_iocb, ioend->io_error ?
ioend->io_error : ioend->io_result, 0);
}
- inode_dio_done(ioend->io_inode);
}
mempool_free(ioend, xfs_ioend_pool);
}
mempool_free(ioend, xfs_ioend_pool);
@@
-365,7
+365,8
@@
xfs_end_bio(
xfs_ioend_t *ioend = bio->bi_private;
ASSERT(atomic_read(&bio->bi_cnt) >= 1);
xfs_ioend_t *ioend = bio->bi_private;
ASSERT(atomic_read(&bio->bi_cnt) >= 1);
- ioend->io_error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? 0 : error;
+ if (!ioend->io_error && !test_bit(BIO_UPTODATE, &bio->bi_flags))
+ ioend->io_error = error;
/* Toss bio and pass work off to an xfsdatad thread */
bio->bi_private = NULL;
/* Toss bio and pass work off to an xfsdatad thread */
bio->bi_private = NULL;