From: "Andreas Hindborg (Samsung)" <nmi@metaspace.dk>
To: Ming Lei <ming.lei@redhat.com>
Cc: "Niklas Cassel" <Niklas.Cassel@wdc.com>,
"Matias Bjørling" <Matias.Bjorling@wdc.com>,
"open list" <linux-kernel@vger.kernel.org>,
"Damien Le Moal" <dlemoal@kernel.org>,
"Jens Axboe" <axboe@kernel.dk>,
"gost.dev@samsung.com" <gost.dev@samsung.com>,
"hch@infradead.org" <hch@infradead.org>,
"Johannes Thumshirn" <jth@kernel.org>,
"Aravind Ramesh" <Aravind.Ramesh@wdc.com>,
"open list:BLOCK LAYER" <linux-block@vger.kernel.org>,
"Hans Holmberg" <Hans.Holmberg@wdc.com>,
"Minwoo Im" <minwoo.im.dev@gmail.com>
Subject: Re: [PATCH v9 2/2] ublk: enable zoned storage support
Date: Wed, 02 Aug 2023 11:09:56 +0200 [thread overview]
Message-ID: <87a5v9pzx7.fsf@metaspace.dk> (raw)
In-Reply-To: <ZMkBbvb7EFyT/zGX@ovpn-8-18.pek2.redhat.com>
Ming Lei <ming.lei@redhat.com> writes:
> On Tue, Aug 01, 2023 at 02:11:56PM +0200, Andreas Hindborg (Samsung) wrote:
>>
>> Niklas Cassel <Niklas.Cassel@wdc.com> writes:
>>
>> > On Fri, Jul 14, 2023 at 09:25:10AM +0200, Andreas Hindborg wrote:
>> >> From: Andreas Hindborg <a.hindborg@samsung.com>
>> >
>> > Hello Andreas!
>> >
>>
>> <snip>
>>
>> >> /* for READ request, writing data in iod->addr to rq buffers */
>> >> @@ -1120,6 +1404,11 @@ static void ublk_commit_completion(struct ublk_device *ub,
>> >> /* find the io request and complete */
>> >> req = blk_mq_tag_to_rq(ub->tag_set.tags[qid], tag);
>> >>
>> >> + if (io->flags & UBLK_IO_FLAG_ZONE_APPEND) {
>> >
>> > Do we really need to introduce a completely new flag just for this?
>> >
>> > if (req_op(req) == REQ_OP_ZONE_APPEND)
>> >
>> > should work just as well, no?
>>
>> Makes sense, thanks.
>
> The above one can be replaced with req_op().
>
> But extra cost is added when retrieving request for the check in
> __ublk_ch_uring_cmd().
>
How about this (diff to v9):
@@ -1709,7 +1702,7 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd,
goto out;
if (ublk_support_user_copy(ubq) &&
- !(io->flags & UBLK_IO_FLAG_ZONE_APPEND) && ub_cmd->addr) {
+ _IOC_NR(cmd_op) != UBLK_IO_COMMIT_AND_FETCH_REQ && ub_cmd->addr) {
ret = -EINVAL;
goto out;
}
@@ -1751,6 +1744,12 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd,
if (!(io->flags & UBLK_IO_FLAG_OWNED_BY_SRV))
goto out;
+ if (ublk_support_user_copy(ubq) &&
+ req_op(req) != REQ_OP_ZONE_APPEND && ub_cmd->addr) {
+ ret = -EINVAL;
+ goto out;
+ }
+
if (!ublk_support_user_copy(ubq)) {
/*
* COMMIT_AND_FETCH_REQ has to provide IO buffer if
BR Andreas
next prev parent reply other threads:[~2023-08-02 9:17 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-14 7:25 [PATCH v9 0/2] ublk: enable zoned storage support Andreas Hindborg
2023-07-14 7:25 ` [PATCH v9 1/2] ublk: add helper to check if device supports user copy Andreas Hindborg
2023-07-14 10:00 ` Johannes Thumshirn
2023-07-14 7:25 ` [PATCH v9 2/2] ublk: enable zoned storage support Andreas Hindborg
2023-07-14 10:04 ` Johannes Thumshirn
2023-07-19 9:26 ` Ming Lei
2023-07-19 12:41 ` Ming Lei
2023-08-02 10:19 ` Andreas Hindborg (Samsung)
2023-07-19 12:01 ` Niklas Cassel
2023-08-01 12:11 ` Andreas Hindborg (Samsung)
2023-08-01 12:58 ` Ming Lei
2023-08-02 9:09 ` Andreas Hindborg (Samsung) [this message]
2023-08-03 0:06 ` Ming Lei
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=87a5v9pzx7.fsf@metaspace.dk \
--to=nmi@metaspace.dk \
--cc=Aravind.Ramesh@wdc.com \
--cc=Hans.Holmberg@wdc.com \
--cc=Matias.Bjorling@wdc.com \
--cc=Niklas.Cassel@wdc.com \
--cc=axboe@kernel.dk \
--cc=dlemoal@kernel.org \
--cc=gost.dev@samsung.com \
--cc=hch@infradead.org \
--cc=jth@kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ming.lei@redhat.com \
--cc=minwoo.im.dev@gmail.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.