netfilter: ipt_CLUSTERIP: fix out-of-bounds accesses in clusterip_tg_check()
[pandora-kernel.git] / fs / xfs / xfs_aops.c
index 574d4ee..c2b06d4 100644 (file)
@@ -88,11 +88,11 @@ xfs_destroy_ioend(
        }
 
        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);
                }
-               inode_dio_done(ioend->io_inode);
        }
 
        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);
-       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;