Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 401a18e9 authored by Jens Axboe's avatar Jens Axboe
Browse files

block: fix bug with inserting flush requests as sort/merge



With the introduction of the on-stack plugging, we would assume
that any request being inserted was a normal file system request.
As flush/fua requires a special insert mode, this caused problems.

Fix this up by checking for this in flush_plug_list() and use
the appropriate insert mechanism.

Big thanks goes to Markus Tripplesdorf for tirelessly testing
patches, and to Sergey Senozhatsky for helping find the real
issue.

Reported-by: default avatarMarkus Tripplesdorf <markus@trippelsdorf.de>
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 6c510389
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2702,6 +2702,9 @@ static void flush_plug_list(struct blk_plug *plug)
		/*
		 * rq is already accounted, so use raw insert
		 */
		if (rq->cmd_flags & (REQ_FLUSH | REQ_FUA))
			__elv_add_request(q, rq, ELEVATOR_INSERT_FLUSH);
		else
			__elv_add_request(q, rq, ELEVATOR_INSERT_SORT_MERGE);
	}