Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp8127576imu; Tue, 4 Dec 2018 03:29:13 -0800 (PST) X-Google-Smtp-Source: AFSGD/UnKHlCYTNhMhzyLuEB2UVUJzkVlAIp0x6QfMftOCrGG/V8GVfuFUCfuEiwE0OzfTzizD9H X-Received: by 2002:a65:55ca:: with SMTP id k10mr16253574pgs.448.1543922953649; Tue, 04 Dec 2018 03:29:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543922953; cv=none; d=google.com; s=arc-20160816; b=YdGB4lYQsueHORZmi/Alvqeev3ECU/y0cNn/drPVz0N/vlxhK3wILPGxmHXRQ5x7cP lnTSx+3SS+Lx9Hr2lHuKwYMxd8HM5p71sb7tUc7rFQQIDobAQrGL549XsA6m6Vlu8f3B QPLk/Tj95ValZhrlztUcsjs3hQwQ8y+X7QUkFUUknzITV5xy8NuOw+oIZ5vFHCIEpWgz IOICnRVpShsd3YpM5fw12ZbTmuYcfE2sJbDDM40pqG6Wr3td2D+mwAL/6VRzAccqC4MF KluesQJS3KwhtcaXp7nszsNm/bDjj/m9vkNG9dEC5NIOaBk2yAyYn+6lkVaeRNPA27c8 n7hA== 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=d04H/4Bi+mwi82aO0u8Nn3C59J2P7CdJttijt5JvkFI=; b=O8Vcr2lGGLwD7GE65f0n4Pfz+RkPJGzHiA66yT3ZZv6w68Lroy6vPQGQ38m6gj9lTX Uli3BG+pOLPNBpuZaVjqho6j3/FoaUz82nl1oKP90y5CsIWHejfO2DvP9kUP26SVRk8v Y+zyY8jXWwCuqmNpS3RT2CpBlmMI9ERMTMyT/xGe7QFLGedtOBh6xv9VdzpeXVVs/QJS OzW+G07eZuztD4F1/6u7IpKir25gk5WMTsFjB3J5A438619OhoC/2YbSxRMFEQosg/Nn QQtfd/QGDb2Jw62RT6XogK+9APNGMZn3/dtmbycFQAVHCZB1XscCCKBTcEdw6qdgZU+v UcDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Ui5+1BSB; 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 y15si13717140pgf.321.2018.12.04.03.28.58; Tue, 04 Dec 2018 03:29:13 -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=Ui5+1BSB; 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 S1725841AbeLDK6p (ORCPT + 99 others); Tue, 4 Dec 2018 05:58:45 -0500 Received: from mail.kernel.org ([198.145.29.99]:43176 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726981AbeLDK6h (ORCPT ); Tue, 4 Dec 2018 05:58:37 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (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 D5D4B214DB; Tue, 4 Dec 2018 10:58:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1543921117; bh=5LVn1TFIzRWk/CFhAyJxbMVOwTC2XU/XdZDVkkFY6vo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ui5+1BSB5pVeqSK0XCOMMsZU0XswsfixpcBkaHUyDDiutGk9hqXoeJGLtgj2+SgRa HZbzvtQYcxxrax4+Ugm6rPAl7/GvVvB47Bk3KjTWazhNdDkZsPh3XixurCciJ9eIm9 Z4d19rChqiyWysiLcfAGKG92IkVOPwLRikMhPCg0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ravi Nankani , Maximilian Heyne , Christoph Hellwig , Torsten Mehlan , Uwe Dannowski , Amit Shah , David Woodhouse , Jens Axboe Subject: [PATCH 4.19 088/139] fs: fix lost error code in dio_complete Date: Tue, 4 Dec 2018 11:49:29 +0100 Message-Id: <20181204103653.940457711@linuxfoundation.org> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181204103649.950154335@linuxfoundation.org> References: <20181204103649.950154335@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Maximilian Heyne commit 41e817bca3acd3980efe5dd7d28af0e6f4ab9247 upstream. commit e259221763a40403d5bb232209998e8c45804ab8 ("fs: simplify the generic_write_sync prototype") reworked callers of generic_write_sync(), and ended up dropping the error return for the directio path. Prior to that commit, in dio_complete(), an error would be bubbled up the stack, but after that commit, errors passed on to dio_complete were eaten up. This was reported on the list earlier, and a fix was proposed in https://lore.kernel.org/lkml/20160921141539.GA17898@infradead.org/, but never followed up with. We recently hit this bug in our testing where fencing io errors, which were previously erroring out with EIO, were being returned as success operations after this commit. The fix proposed on the list earlier was a little short -- it would have still called generic_write_sync() in case `ret` already contained an error. This fix ensures generic_write_sync() is only called when there's no pending error in the write. Additionally, transferred is replaced with ret to bring this code in line with other callers. Fixes: e259221763a4 ("fs: simplify the generic_write_sync prototype") Reported-by: Ravi Nankani Signed-off-by: Maximilian Heyne Reviewed-by: Christoph Hellwig CC: Torsten Mehlan CC: Uwe Dannowski CC: Amit Shah CC: David Woodhouse CC: stable@vger.kernel.org Signed-off-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- fs/direct-io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fs/direct-io.c +++ b/fs/direct-io.c @@ -325,8 +325,8 @@ static ssize_t dio_complete(struct dio * */ dio->iocb->ki_pos += transferred; - if (dio->op == REQ_OP_WRITE) - ret = generic_write_sync(dio->iocb, transferred); + if (ret > 0 && dio->op == REQ_OP_WRITE) + ret = generic_write_sync(dio->iocb, ret); dio->iocb->ki_complete(dio->iocb, ret, 0); }