Received: by 2002:a05:6358:700f:b0:131:369:b2a3 with SMTP id 15csp3381976rwo; Fri, 4 Aug 2023 04:11:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH24emo64kSZa4lYF2J57nx5pCaV2vgo/TL3Fnt0682MOfkfAKGnsT1O7N8t8lx/xnwAO0A X-Received: by 2002:a17:90b:609:b0:268:1d1e:baaf with SMTP id gb9-20020a17090b060900b002681d1ebaafmr1475453pjb.17.1691147519207; Fri, 04 Aug 2023 04:11:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691147519; cv=none; d=google.com; s=arc-20160816; b=hzvFJs3xU07xCScmmJNFchfs4RDI0RNnxTxYkiuAeE9vIs6A3VmmP719xsViXDBVw3 WjrRC/6IXT56Uu3R/6Tu4MdLeJrQWVlt6GVsnZ3gjXKzAvxFcdUmAlZDGSrMRWR7ufP7 F/4BmTcsoPskcW4kBZDJeL3VORiaFyrCtil/tu5JGPLW8UzBqeECTPDRvOIFHDoKnEwh LrfifY7HMxfB36poIqkn49Uocb5MQRzoZJt3oj3ZGMy9TKV+6BYq8v90BdhqJaITCaS9 zj6VzwKbx3eGX4uxljCE8gOAH0LuemeDC4+TO4/9gXXzs1aHDJQVLot5K2Wk6hi6rWcu FXgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=hdiYU3oLs+tgo2aXTFMAz2724lcG+amcmhYKagtlmaI=; fh=KkIc3CaUIEEeAdpRXnzN727N5MkdB+LLPDofeQoKx6Q=; b=KQDZToXQmXLwuG6LQnS4joylVVZDg2wuvDOPgKZhQn9LPRnaXP2lyfG1XDel2b3AkZ ZsXp9G9XwJN9i19PhbF427idctQwS76OaMtE5TAchB9YSmbOps/YyAOAoG+eDgcUvJcL Jg30P0ApjMyAicAZogyj9HzZ0wNfNDwJPMLXS9yI5UqeeQ/d08SvoXu5TnKdgp1h8Nv0 htuL3FYH+o8HUE5kijRIJ5UTAT2mVngyUpYXyc6Jox7D5SBOhXKtl3zqowmxI4+H0ABN 3ytsqz71QKxiPBzliqlDRSYY7wJ8OFm+XRcQTMX7d6vIfy0zcwFIUWBdSYyOvenw3HsW RtLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=SV2hvlrZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id om12-20020a17090b3a8c00b00267668f8be7si1854501pjb.64.2023.08.04.04.11.47; Fri, 04 Aug 2023 04:11:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=SV2hvlrZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230096AbjHDJFT (ORCPT + 99 others); Fri, 4 Aug 2023 05:05:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229634AbjHDJEt (ORCPT ); Fri, 4 Aug 2023 05:04:49 -0400 Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com [IPv6:2607:f8b0:4864:20::230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D80749F2; Fri, 4 Aug 2023 02:01:48 -0700 (PDT) Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-3a5ad6087a1so1146587b6e.2; Fri, 04 Aug 2023 02:01:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691139707; x=1691744507; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=hdiYU3oLs+tgo2aXTFMAz2724lcG+amcmhYKagtlmaI=; b=SV2hvlrZQwHK2+xQNQYc2ut84T8pMZl7IeoPdua9ZB0FEXVj5YSFNX8wPmzvAsZOrd rXGMznNF+EYb3LwDCz7NnRqo5fNMTLjsWirqwCa5Zxb1sTgX9SPPh5IIQigG0Rw2HclA EF8oanS4OJNEqckK9F356aV3nAge3pfPglVZLl+6bNHvlaYH0WG6kCYug0jA6F0R5JE2 RgrVSS8qordThEg7SNPNUCAZ/++TQjVMYUJLegMzmx4WSn9pfrII2Z1wenAy7NYXQKgf R/ofDHt8lkW/Wv53F26j0/Qa1425UBlH+hvfYGYZd4eiJj1fINSQrut/aeHqZWoyZjKR M6eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691139707; x=1691744507; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hdiYU3oLs+tgo2aXTFMAz2724lcG+amcmhYKagtlmaI=; b=IZL1ZooPYCKlUazrkHK8djhs7kSu8Dy9ryluUf1Ke+RBekCBVcMARZlyu42BIWagqB RPEMNK+2rcoIosTsR0xEbj2za1Cp6hy/Rrs5s3NEHaexYR/FpaZWxiXPWBEH5ilztpkj TFlp/hp5arVV3MAUykkUNxtL+CHgqicTuMNmEbaEyLHrhdNiIMnGJ5aeESB9IBZI8Vrk BfXMSHerG4jxQCmKUJFP9TrFVpZLSse41ZeFUW0qLne3bDT6eComepIBlEv+jpkF4hty Dv6fxd4hGNVsxdTkGkfe/wMx0rNuzJ0a+WTR0MRjvyCyiBMg2Sm0Oj7laH7Wx1U+w6lG EvRA== X-Gm-Message-State: AOJu0YytqyCc1MeohAISlPQdc0bs31fPcod7TOqcQJvhP5oDpEfjIjYZ H2Utc1TzNXWQnPc5St8xFGE= X-Received: by 2002:aca:1012:0:b0:3a4:8a41:c69c with SMTP id 18-20020aca1012000000b003a48a41c69cmr1146059oiq.13.1691139707559; Fri, 04 Aug 2023 02:01:47 -0700 (PDT) Received: from ovpn-8-25.pek2.redhat.com ([2409:8950:2e11:36e6:d082:6f8a:2f51:c30e]) by smtp.gmail.com with ESMTPSA id j4-20020a635504000000b00563bee47a79sm897541pgb.80.2023.08.04.02.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Aug 2023 02:01:47 -0700 (PDT) Date: Fri, 4 Aug 2023 17:01:41 +0800 From: Ming Lei To: "Andreas Hindborg (Samsung)" Cc: Ming Lei , Christoph Hellwig , gost.dev@samsung.com, "open list:BLOCK LAYER" , Hans Holmberg , Matias Bjorling , Andreas Hindborg , Minwoo Im , Jens Axboe , Johannes Thumshirn , Aravind Ramesh , Damien Le Moal , open list Subject: Re: [PATCH v10 2/3] ublk: move check for empty address field on command submission Message-ID: References: <20230803140701.18515-1-nmi@metaspace.dk> <20230803140701.18515-3-nmi@metaspace.dk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230803140701.18515-3-nmi@metaspace.dk> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andreas, On Thu, Aug 03, 2023 at 04:07:00PM +0200, Andreas Hindborg (Samsung) wrote: > From: Andreas Hindborg > > In preparation for zoned storage support, move the check for empty `addr` > field into the command handler case statement. Note that the check makes no > sense for `UBLK_IO_NEED_GET_DATA` because the `addr` field must always be > set for this command. > > Signed-off-by: Andreas Hindborg > --- > drivers/block/ublk_drv.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > > diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c > index db3523e281a6..5a1ee17636ac 100644 > --- a/drivers/block/ublk_drv.c > +++ b/drivers/block/ublk_drv.c > @@ -1419,11 +1419,6 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd, > ^ (_IOC_NR(cmd_op) == UBLK_IO_NEED_GET_DATA)) > goto out; > > - if (ublk_support_user_copy(ubq) && ub_cmd->addr) { > - ret = -EINVAL; > - goto out; > - } > - > ret = ublk_check_cmd_op(cmd_op); > if (ret) > goto out; > @@ -1452,6 +1447,12 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd, > goto out; > } > > + /* User copy requires addr to be unset */ > + if (ublk_support_user_copy(ubq) && ub_cmd->addr) { > + ret = -EINVAL; > + goto out; > + } > + Given you have to post v11 for fixing build issue, please convert the above two 'if' into one 'if else': if (!ublk_support_user_copy(ubq)) { /* * FETCH_RQ has to provide IO buffer if NEED GET * DATA is not enabled */ if (!ub_cmd->addr && !ublk_need_get_data(ubq)) goto out; } else { if (ub_cmd->addr) { ret = -EINVAL; goto out; } } > ublk_fill_io_cmd(io, cmd, ub_cmd->addr); > ublk_mark_io_ready(ub, ubq); > break; > @@ -1470,6 +1471,13 @@ static int __ublk_ch_uring_cmd(struct io_uring_cmd *cmd, > req_op(req) == REQ_OP_READ)) > goto out; > } > + > + /* User copy requires addr to be unset */ > + if (ublk_support_user_copy(ubq) && ub_cmd->addr) { > + ret = -EINVAL; > + goto out; > + } > + Same with above. BTW, I have verified this patchset with ublk-zoned example in libublk-rs: https://github.com/ming1/libublk-rs/tree/zoned.v2 cargo run --example zoned -- add -1 10240 mkfs.btrfs -O zoned /dev/ublkb0 mount & git clone linux-kernel &umount Hope V11 can be merged. Thanks, Ming