Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1770872ybl; Sat, 11 Jan 2020 02:29:05 -0800 (PST) X-Google-Smtp-Source: APXvYqyRv6uBMfQzA9cRlvFRTAj/40/9cO+Z1e9TggIs9XId8Hl3MKyi9GpvLkJ7gd5xl8jY0Jjy X-Received: by 2002:a9d:6ac1:: with SMTP id m1mr6227574otq.101.1578738545920; Sat, 11 Jan 2020 02:29:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578738545; cv=none; d=google.com; s=arc-20160816; b=j/F4o2iHx4WbR+VMi25nRPYUtuxFADs7wQviOf/iKEPAJbri9ks7enuM2wX76UDFEI RTIQ6zE/k4SfatnlGZy4NlyiV4pZw4Cn9+mnLpdJ/TDTLDCIKKAuAnzerRlzVCuLVySP 4XmrW37JUFOD8aZEutozluHsA1j1Q2lfe15jMuLpeGDTYRDHDNbr5QFQozI0G5NMYTxr k4Y6DtylC9lHjHY1S7/EcY7c0EporduXFcsoegsrXHm7yyLcbM3Qwao/I/Eh8EzDKccy 6fU6wM278VeI41Fb8Tb7Ik7gyb4jWvewTg7zqNsCylxWttDYPRlZYpgD2ore6qE7gqir wYPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zZnNuCD8/iIKncTSoUh7f8PkAP6j/QCw+LAsw+yXNxY=; b=pw0yRdu1FX5n1KFfDvOyxXLx2fgRRkWVdTkZWMU5obq2cgvTx0J4nGMalK/2kwbJ2b dpK3FrmYUq+ZOLNN32QruLHry2lK2bwN/dFOJMT4HmnZztxdT78RJFCrWDt5akt9BZZV R3uzBqRI1WzR85HNaBxmcRVFQ96RGc7kujKFL1+qGu2Ytahlohr7DuLJcEQNJ2iI/EvH J9uCCn9ZcPTLsSLM6bY7azq55jp2n15jRfdle7UqG8sZDr4D9WmozHb7P2stSeB2b4pQ BkP6H9/P32feYqxDZeAANnKH0wqo531SnMxBO3N2RquprphgrBKUmP/BGi6zjX88mvDD BvSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=XBw9RgT3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 10si2752633ois.76.2020.01.11.02.28.54; Sat, 11 Jan 2020 02:29:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=XBw9RgT3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731230AbgAKK2G (ORCPT + 99 others); Sat, 11 Jan 2020 05:28:06 -0500 Received: from mail.kernel.org ([198.145.29.99]:34948 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731015AbgAKK2E (ORCPT ); Sat, 11 Jan 2020 05:28:04 -0500 Received: from localhost (unknown [62.119.166.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 665D824649; Sat, 11 Jan 2020 10:28:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578738484; bh=vzw/zTQ3T+frq0XShFckbtvL19mBCHgNPnD0vRv4qCc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XBw9RgT3tiPQgCQcKGntkgL32+b+Hg5jRrtPem5WG9vRejq0tyS2b4ZZAl2bGuTZQ evlZwshIKPu0TticO9aApqt26MHZzHtuLuh00Msjft/Q6as4iV033H3aIIvWIKDw6B KT63fIzLhXqGnl7IPCysShSuid4TSTd6icMEDN1o= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Roman Penyaev , Jens Axboe , Sasha Levin Subject: [PATCH 5.4 103/165] block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT Date: Sat, 11 Jan 2020 10:50:22 +0100 Message-Id: <20200111094930.377706110@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200111094921.347491861@linuxfoundation.org> References: <20200111094921.347491861@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Roman Penyaev [ Upstream commit c58c1f83436b501d45d4050fd1296d71a9760bcb ] Non-mq devs do not honor REQ_NOWAIT so give a chance to the caller to repeat request gracefully on -EAGAIN error. The problem is well reproduced using io_uring: mkfs.ext4 /dev/ram0 mount /dev/ram0 /mnt # Preallocate a file dd if=/dev/zero of=/mnt/file bs=1M count=1 # Start fio with io_uring and get -EIO fio --rw=write --ioengine=io_uring --size=1M --direct=1 --name=job --filename=/mnt/file Signed-off-by: Roman Penyaev Signed-off-by: Jens Axboe Signed-off-by: Sasha Levin --- block/blk-core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/block/blk-core.c b/block/blk-core.c index d5e668ec751b..1075aaff606d 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -886,11 +886,14 @@ generic_make_request_checks(struct bio *bio) } /* - * For a REQ_NOWAIT based request, return -EOPNOTSUPP - * if queue is not a request based queue. + * Non-mq queues do not honor REQ_NOWAIT, so complete a bio + * with BLK_STS_AGAIN status in order to catch -EAGAIN and + * to give a chance to the caller to repeat request gracefully. */ - if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) - goto not_supported; + if ((bio->bi_opf & REQ_NOWAIT) && !queue_is_mq(q)) { + status = BLK_STS_AGAIN; + goto end_io; + } if (should_fail_bio(bio)) goto end_io; -- 2.20.1