Re: [PATCH] block: eliminate ELEVATOR_INSERT_REQUEUE

From: Sergey Senozhatsky
Date: Wed Mar 30 2011 - 07:43:30 EST


On (03/30/11 13:22), Jens Axboe wrote:
> > Nope, doesn't work for me. fsck.ext4 crashed the system.
> >
> > __elv_add_request
> > blk_flush_complete_seq
> > blk_insert_flush
> > __elv_add_request
> > __make_request
> > generic_make_request
> > ?bio_alloc_bioset
> > blkdev_issue_flush
> > blkdev_fsync
> > vfs_fsync
> > [..]
>
> Ah, this addon should behave better.
>

Seems to work fine for me.


Sergey


> diff --git a/block/blk-flush.c b/block/blk-flush.c
> index 6a16fea..eba4a27 100644
> --- a/block/blk-flush.c
> +++ b/block/blk-flush.c
> @@ -261,7 +261,7 @@ static bool blk_kick_flush(struct request_queue *q)
> q->flush_rq.end_io = flush_end_io;
>
> q->flush_pending_idx ^= 1;
> - __elv_add_request(q, &q->flush_rq, ELEVATOR_INSERT_FLUSH);
> + list_add_tail(&q->flush_rq.queuelist, &q->queue_head);
> return true;
> }
>
>
> --
> Jens Axboe
>

Attachment: pgp00000.pgp
Description: PGP signature