Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4963304imu; Mon, 12 Nov 2018 21:52:39 -0800 (PST) X-Google-Smtp-Source: AJdET5fr4KLR8DF+LtGGGfu/0pdCfxhj7dRb1x9uj5Omn+rurj3lPE6q7t59pbI5dbGk/Lw+c3Ks X-Received: by 2002:a17:902:622:: with SMTP id 31-v6mr3755608plg.310.1542088359324; Mon, 12 Nov 2018 21:52:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542088359; cv=none; d=google.com; s=arc-20160816; b=GtT3EwFETSJpn/7zPKtX5i7JTXxRDdq2Eo2JqeeeTYYwtrMDweLvjQ18TQpD8Qaof4 suTgbQPgh0BnLQAJjiCIZBWRqGlCoqTog2JoUNJhGVKZppciXfJDSfH+oca5RIFGpc63 Pe6yPolFSYx0gZ2vWrJbey38Y2mSxYX5Ag5lVxXxxGlhb+nRuWbyUc3dA1mUfzVd/ldd 0gb4Og0fWmrIURMxhrDN9YUDSztRPQrnl/oTeL95qlvo2dQz6wQiEUY/I6GKFb8hwjdZ noaT0m3//uDEhyKl9W4i8BAJuB4GBfwXRQbQsj2H89+O74xm6RvE4IB5FBmOfGMd5EQf e7xQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=dm0vcoHLPwVJllrNroFzgyeOZ44ESjYNcW7bR8wYj4M=; b=AIsuCdaqo7xveDQfi1K5YY/VVqTPatRHWW7ySS4MBImMCXUQtuzirUPDkvXgSIAecJ sme96HXvrk+m+D5EQza5g1rlCXT5CZ7kPGeEJ9z61Dt9yJFLlk/HXqztDq4iOYjrmmg6 n+VePeev23u/HbhBap/rPySPsrfZ2fNOWqKUe3qw+y+GOXsMZQAmbSoDQhoA8MEjpNyJ OfaLKXGcIdmIn75f0WQoyZQ4A+s9vSab7Ey1AqUXTT8ncXLvtsgsxFo7H5nhgHoEMyrF Xi6SiDapcxkRtXDBzQF/9jN3TBiaeWBmBJXUruzdlbG4w4T70dVDP800C3BdGhZSFdCg RJlQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YtoeGpzV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m3si19232620pgs.8.2018.11.12.21.52.24; Mon, 12 Nov 2018 21:52:39 -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=YtoeGpzV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732269AbeKMPrz (ORCPT + 99 others); Tue, 13 Nov 2018 10:47:55 -0500 Received: from mail.kernel.org ([198.145.29.99]:33856 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732221AbeKMPry (ORCPT ); Tue, 13 Nov 2018 10:47:54 -0500 Received: from sasha-vm.mshome.net (unknown [64.114.255.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8E70422529; Tue, 13 Nov 2018 05:51:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1542088286; bh=0+qUUorToCUDKC7tEPcD5MWoXpxUCyHI15pTI1x1Crk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YtoeGpzVBl0p0PyXu8nOg29o0DRLI39E5pGHsVGfVqqKmXPHiALE+8cTplXr8fGcA LU9KFPVwPoGi+0KWkGJhf2GR3NSiAvV+rC0/8VKeS0XGtxSwVhmFgVSyHPJenOrfL5 YPyuUTI3koGSWCJhbtFuwHThxH0F8mmKmG/5d0XI= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: David Howells , Sasha Levin , linux-afs@lists.infradead.org Subject: [PATCH AUTOSEL 4.18 20/39] afs: Handle EIO from delivery function Date: Tue, 13 Nov 2018 00:50:34 -0500 Message-Id: <20181113055053.78352-20-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181113055053.78352-1-sashal@kernel.org> References: <20181113055053.78352-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Howells [ Upstream commit 4ac15ea53622272c01954461b4814892b7481b40 ] Fix afs_deliver_to_call() to handle -EIO being returned by the operation delivery function, indicating that the call found itself in the wrong state, by printing an error and aborting the call. Currently, an assertion failure will occur. This can happen, say, if the delivery function falls off the end without calling afs_extract_data() with the want_more parameter set to false to collect the end of the Rx phase of a call. The assertion failure looks like: AFS: Assertion failed 4 == 7 is false 0x4 == 0x7 is false ------------[ cut here ]------------ kernel BUG at fs/afs/rxrpc.c:462! and is matched in the trace buffer by a line like: kworker/7:3-3226 [007] ...1 85158.030203: afs_io_error: c=0003be0c r=-5 CM_REPLY Fixes: 98bf40cd99fc ("afs: Protect call->state changes against signals") Reported-by: Marc Dionne Signed-off-by: David Howells Signed-off-by: Sasha Levin --- fs/afs/rxrpc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c index b6735ae3334e..167748df87eb 100644 --- a/fs/afs/rxrpc.c +++ b/fs/afs/rxrpc.c @@ -500,7 +500,6 @@ static void afs_deliver_to_call(struct afs_call *call) case -EINPROGRESS: case -EAGAIN: goto out; - case -EIO: case -ECONNABORTED: ASSERTCMP(state, ==, AFS_CALL_COMPLETE); goto done; @@ -509,6 +508,10 @@ static void afs_deliver_to_call(struct afs_call *call) rxrpc_kernel_abort_call(call->net->socket, call->rxcall, abort_code, ret, "KIV"); goto local_abort; + case -EIO: + pr_err("kAFS: Call %u in bad state %u\n", + call->debug_id, state); + /* Fall through */ case -ENODATA: case -EBADMSG: case -EMSGSIZE: -- 2.17.1