From nobody Tue Oct 28 15:53:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cwvzK1prcz6F4xL; Tue, 28 Oct 2025 15:53:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cwvzK1K8Fz434l; Tue, 28 Oct 2025 15:53:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761666781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+vO0RqkasKJG1/om1I82L67jAvzTWbn0XC2zBnoM8bQ=; b=x1y/ccD4IK3aZEVxVtkW/bYaS84O1lKB0RvpKiSZ7Vhkqkv6OacEFdie1ojR5epEMZi9rN u14Xn+kg+bAiz52vWbK0HbSS97xcIDeKxckE7EbSibesLDLiD9sn22YaRan0Y2oUZUnDWG rLCihW61Z4F6Dt9iCqIA1MkuihJFRU5/qj/mHCw1VFmpDp4TYKSc14D1jOaAyYq03oEwuf N9Zms9ljUYBrgX3eypaQmfWGfGUcVIt4fWrUj+UlhuGjb79pM5OZOisCmusmbcyDLWTNaP Fk9E3cvvy0G2+a5Xx+BSEsLUwXOjsEmfMLKJhzJ9XuZdtS+SJIIOLhEYspE8KQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761666781; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+vO0RqkasKJG1/om1I82L67jAvzTWbn0XC2zBnoM8bQ=; b=bJq68YJthbwfbGn87FupbBbpKTiD0jrwTyghhz51uOo7bFB7y3Ti4cm2xtO69CjsPcCwB3 PDKKuKf3wsSSr527aov/sSVamCSxw6EF/Mo9AF1kouaehvXGt1M1TFmPd2ZxicSW08V49m XOuyhgPwq+5117NE7ysAHKWhbXDZ0nbC0M9FMCMBL68OvzFbJh7PxULZXvMRfMmmKhYmll tukp+3KsWfdLhm673sQjiCMasj5ztJ193z+Ci3y67P6QmNH7eG3bCTxsXSp1M80OR5fSHC N3JSrpVWPV1K40PUucF/oh5bFUMOcTce7T+cvRdtVmTZmnICw2dv5G4xRS60bg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761666781; a=rsa-sha256; cv=none; b=jTlQIOwtTLflxiMvmSCddYUvjy9qub6a7ptXwv8tSXtv5Qey5i2KJxQBZFdjIKJHK7Gwq9 FNzQJirHKYOAkV/eEhqiWscNzPsGdkOEhLtG+lQkQbcH7rGTePCi/RLkFjguzw6KwodpJR ksDSXf+6BmZKoDDczoz+4oPjybF+6NQVmIilabY2m8saxJObxlexFwzbBUwJq3aGb6pYcY HTdkxcuH6J4R1bkUj3Qo3T4k/r1FPLXErDqHxHQXde5PdzbklTG/8rNz0cclidXxyZ2khd dDRqB+sKNpz+JUMce+CPc6ZdmLE7wsKRhUSBIGDhN3V/gQ+kCTQp5fhVaQTIRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4cwvzK0hjgzxFy; Tue, 28 Oct 2025 15:53:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 59SFr0fh053100; Tue, 28 Oct 2025 15:53:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 59SFr0Rf053097; Tue, 28 Oct 2025 15:53:00 GMT (envelope-from git) Date: Tue, 28 Oct 2025 15:53:00 GMT Message-Id: <202510281553.59SFr0Rf053097@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: f0f9b4007015 - stable/14 - deadfs: Return ENXIO instead of EIO when the device is gone. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f0f9b4007015ffd5b3af072dfb70bdbf1250d875 Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=f0f9b4007015ffd5b3af072dfb70bdbf1250d875 commit f0f9b4007015ffd5b3af072dfb70bdbf1250d875 Author: Poul-Henning Kamp AuthorDate: 2025-10-24 07:19:31 +0000 Commit: Colin Percival CommitDate: 2025-10-28 15:52:50 +0000 deadfs: Return ENXIO instead of EIO when the device is gone. One some systems, under some conditions, pulling a USB stick would read(2) returning EIO and not ENXIO, like it should and used to. Recoverdisk(1), which does not give up on EIO, like most programs would, spins furiously. Arguably, deadfs was always wrong in returning EIO, because once you get to deadfs no operation will ever work again, but we used to take a different path through devfs_vnops.c which got us the ENXIO. Something changed recently, and while testing this fix, I noticed that drm-kmod-66/i915kms may be the condition which trigger the different code-path. MFC to: stable/15 Fixes: 289785 Thanks to: imp, kib (cherry picked from commit 2612f1b8649bb4f069a6a064ed714daa5f10d037) --- sys/fs/deadfs/dead_vnops.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/fs/deadfs/dead_vnops.c b/sys/fs/deadfs/dead_vnops.c index 0f850cede292..75a1398ad6aa 100644 --- a/sys/fs/deadfs/dead_vnops.c +++ b/sys/fs/deadfs/dead_vnops.c @@ -124,18 +124,18 @@ dead_read(struct vop_read_args *ap) { /* - * Return EOF for tty devices, EIO for others + * Return EOF for tty devices, ENXIO for others */ - if ((ap->a_vp->v_vflag & VV_ISTTY) == 0) - return (EIO); - return (0); + if (ap->a_vp->v_vflag & VV_ISTTY) + return (0); + return (ENXIO); } int dead_write(struct vop_write_args *ap) { - return (EIO); + return (ENXIO); } int