From: Jens Axboe <jaxboe@fusionio.com>
To: Jeff Moyer <jmoyer@redhat.com>
Cc: Tejun Heo <tj@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [block] allow blk_flush_policy to return REQ_FSEQ_DATA independent of *FLUSH
Date: Tue, 9 Aug 2011 20:29:27 +0200 [thread overview]
Message-ID: <4E417C87.5040105@fusionio.com> (raw)
In-Reply-To: <x49ty9qehg7.fsf@segfault.boston.devel.redhat.com>
On 2011-08-09 17:24, Jeff Moyer wrote:
> Hi,
>
> blk_insert_flush has the following check:
>
> /*
> * If there's data but flush is not necessary, the request can be
> * processed directly without going through flush machinery. Queue
> * for normal execution.
> */
> if ((policy & REQ_FSEQ_DATA) &&
> !(policy & (REQ_FSEQ_PREFLUSH | REQ_FSEQ_POSTFLUSH))) {
> list_add_tail(&rq->queuelist, &q->queue_head);
> return;
> }
>
> However, blk_flush_policy will not return with policy set to only
> REQ_FSEQ_DATA:
>
> static unsigned int blk_flush_policy(unsigned int fflags, struct request *rq)
> {
> unsigned int policy = 0;
>
> if (fflags & REQ_FLUSH) {
> if (rq->cmd_flags & REQ_FLUSH)
> policy |= REQ_FSEQ_PREFLUSH;
> if (blk_rq_sectors(rq))
> policy |= REQ_FSEQ_DATA;
> if (!(fflags & REQ_FUA) && (rq->cmd_flags & REQ_FUA))
> policy |= REQ_FSEQ_POSTFLUSH;
> }
> return policy;
> }
>
> Notice that REQ_FSEQ_DATA is only set if REQ_FLUSH is set. Fix this
> mismatch by moving the setting of REQ_FSEQ_DATA outside of the REQ_FLUSH
> check.
Thanks Jeff, applied.
--
Jens Axboe
next prev parent reply other threads:[~2011-08-09 18:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-09 15:24 [block] allow blk_flush_policy to return REQ_FSEQ_DATA independent of *FLUSH Jeff Moyer
2011-08-09 18:29 ` Jens Axboe [this message]
[not found] <fa.WShHQz59YhGkw1sSCIqXCXLEJ3Q@ifi.uio.no>
2013-01-08 18:04 ` ajithb.kumar
2013-01-08 18:45 ` Tejun Heo
[not found] <fa.Y0FHvNmq3PUOPFTOjxSNqjMULHc@ifi.uio.no>
[not found] ` <fa.brRV/ZItJPfVkucfEAnS6B1Vfow@ifi.uio.no>
[not found] ` <fa.h/6oWR6kmOBuicuev7/0gdVAyU4@ifi.uio.no>
2013-01-09 4:14 ` Ajith Kumar
2013-01-13 7:01 ` Ajith Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E417C87.5040105@fusionio.com \
--to=jaxboe@fusionio.com \
--cc=jmoyer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.