diff --git a/fs/direct-io.c b/fs/direct-io.c index 03d381377ae1..2ae832e7c57b 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -356,13 +356,9 @@ static void dio_bio_end_aio(struct bio *bio) defer_completion = dio->defer_completion || (dio_op == REQ_OP_WRITE && dio->inode->i_mapping->nrpages); - if (defer_completion) { - INIT_WORK(&dio->complete_work, dio_aio_complete_work); - queue_work(dio->inode->i_sb->s_dio_done_wq, - &dio->complete_work); - } else { - dio_complete(dio, 0, DIO_COMPLETE_ASYNC); - } + + INIT_WORK(&dio->complete_work, dio_aio_complete_work); + queue_work(dio->inode->i_sb->s_dio_done_wq, &dio->complete_work); } }