From: Jens Axboe <jens.axboe@oracle.com>
To: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: Alex Dubov <oakad@yahoo.com>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: can block drivers get non-fs requests?
Date: Thu, 14 Aug 2008 13:42:09 +0200 [thread overview]
Message-ID: <20080814114209.GB20055@kernel.dk> (raw)
In-Reply-To: <20080814133810.746751cf@mjolnir.drzeus.cx>
On Thu, Aug 14 2008, Pierre Ossman wrote:
> Hi Jens,
>
> There is one part of the block layer I'm having trouble completely
> understanding (well there are loads really, but right now there's one in
> particular :)):
>
> Do block drivers need to watch out for requests that aren't "normal"
> reads and writes? The MMC block driver has a funky prepare function
> that checks for FS and PC requests and discards anything else. I
> believe this is wrong in two regards:
You should check in the driver whether the request type is supported. So
if you can only handle fs requests, you should do a check for
!blk_fs_request() after elv_next_request() and call
end_(de)queued_request() appropriately.
> a) PC requests seem to be prepared SCSI cmds, and the MMC driver just
> expects normal transfer requests. Therefore, such requests should not
> be accepted by this driver.
Yes, that is correct. A PC request is essentially a SCSI command sent
directly.
> b) The block layer won't throw weird stuff at us unless explicitly told
> so. I.e. a normal block queue will only produce normal FS requests.
Normal IO activity will only produce fs requests. However, if someone
uses eg SG_IO on your block device, you will be sent pc requests. There
are no checks for this, it is left to the driver.
--
Jens Axboe
next prev parent reply other threads:[~2008-08-14 11:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-14 11:38 can block drivers get non-fs requests? Pierre Ossman
2008-08-14 11:42 ` Jens Axboe [this message]
2008-08-14 12:39 ` Pierre Ossman
2008-08-14 14:06 ` Jens Axboe
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=20080814114209.GB20055@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=drzeus-list@drzeus.cx \
--cc=linux-kernel@vger.kernel.org \
--cc=oakad@yahoo.com \
/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.