From nobody Mon Oct 12 02:21:30 2026 X-Original-To: dev-commits-src-all@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 4j31Rt6Jw3z6k1n8 for ; Mon, 12 Oct 2026 02:21:30 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4j31Rt5qFgz4PjR for ; Mon, 12 Oct 2026 02:21:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791771690; 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=9vAmSpH1L8Us2Yk9onZ4x+W3bY2/LHbcSaUrjcMk3lM=; b=e2JVLJSm3NvSIqv9slQtX2cTwjcgaRFvi0fyQDWrMMSp5ldNALFt2mP4S9fSapq+Q49tjl zepesY7KbKKRlh0uI29cQJTkgw1KNX4LDtndHZEuhGDiL3NoXcI+w4YsbvAAFuuOxMo5ML Tk0Ur6oXrhuPM6ILXSQc8zFKuCL+ZNq559l1Tbz9/E65HgI7xwiWKJLdfiN9JD7OydZGHb xbqHvhAwatmUdHFruCEVeXpDi/0Qv0Rtv5D/MO7nSW1hYQldbVFylOScBNnh2g+6rOXP2D Y+X8Etmc/ZfiWQ8cjMiEWfcbXVTmpc5V51DrJj9hjq8YJzHIbcried0cT0dGLw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791771690; b=P93Ox/SRdxejtkY8evEm8jXBlkkF4BAsYJ+Vo1bKkxBNUZhrhNoJZUHWOP/Vr80aQiPVWm NP4otlw5YNRHCZfMcA57Pd26uX4/+wBkc7AeT5696v4z+Orsay+NIPO/J+59e0whZLI97H dfKjLA4thO5/I+wMDAi0eppv7vPbnmDbOiQ890eu/gq56wx1Ag8x+0a9PUreY7Mp9Ertpn +Sv+/tVOug1/OaRVPJgmOnSfarj3t+YalY4T1vSVWxq6Drx4YfbQ1UeEvLxjdC8yUQFsIz 1SjBTya4Ql4Ig0c9mAzlWae2X+N6ML1BE39x69bUujLhlT52HlXPq1bAM3EUlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791771690; 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=9vAmSpH1L8Us2Yk9onZ4x+W3bY2/LHbcSaUrjcMk3lM=; b=R5v0M1LnLcY1wiubZoDlRMhlIt3dLQe+0ZLE0MZH3WFfyjqAEyKAZhhog/1MtuxKak+J9t /6K16hspyX+yIsvbGEB9HI4PVIrNlzD5TFimqal5gQeB6bz9tNxNKxEi6d0947+KYm5lC4 ECDMLVb7qKTBRPJ6fTNsEVkt7W9iH3EDeFHKzh5bszN93i/3ZYNz01LZoIOi7jS4QmU208 JyvNm4UqH060h42FwUFzyg7Ag1CEY1SqZZRyEEbWXf3G4rG6p4fS2tEccMvIqn/RDQdKJF Ww2hKdbsN/PZVionRclkhGdsPdSGnhHIsMRXhO5uUCceCLVLrQxuWEsrhRgtYA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4j31Rt4YbLz17PT for ; Mon, 12 Oct 2026 02:21:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d579 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 12 Oct 2026 02:21:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 10191b85ee5d - stable/15 - cdevsw: add D_NONPASSABLE flag List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: Commit messages for all branches of the src repository List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 10191b85ee5d0aa034d1b51b63bd4b7d7af57992 Auto-Submitted: auto-generated Date: Mon, 12 Oct 2026 02:21:30 +0000 Message-Id: <6acc442a.3d579.1349944d@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=10191b85ee5d0aa034d1b51b63bd4b7d7af57992 commit 10191b85ee5d0aa034d1b51b63bd4b7d7af57992 Author: Konstantin Belousov AuthorDate: 2026-10-04 00:50:23 +0000 Commit: Konstantin Belousov CommitDate: 2026-10-12 02:20:49 +0000 cdevsw: add D_NONPASSABLE flag (cherry picked from commit 850d4562928ea9308dd9188d5014bcabe7049938) --- sys/fs/devfs/devfs_vnops.c | 27 +++++++++++++++++++++++++-- sys/sys/conf.h | 2 ++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 8c188e768de8..038dfb34166e 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -67,6 +67,7 @@ static struct vop_vector devfs_vnodeops; static struct vop_vector devfs_specops; static const struct fileops devfs_ops_f; +static const struct fileops devfs_ops_nonpassable_f; #include #include @@ -1344,8 +1345,11 @@ devfs_open(struct vop_open_args *ap) if (fp == NULL) return (error); #endif - if (fp->f_ops == &badfileops) - finit(fp, fp->f_flag, DTYPE_VNODE, dev, &devfs_ops_f); + if (fp->f_ops == &badfileops) { + finit(fp, fp->f_flag, DTYPE_VNODE, dev, + (dsw->d_flags & D_NONPASSABLE) == 0 ? &devfs_ops_f : + &devfs_ops_nonpassable_f); + } return (error); } @@ -2096,6 +2100,25 @@ static const struct fileops devfs_ops_f = { .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE }; +static const struct fileops devfs_ops_nonpassable_f = { + .fo_read = devfs_read_f, + .fo_write = devfs_write_f, + .fo_truncate = devfs_truncate_f, + .fo_ioctl = devfs_ioctl_f, + .fo_poll = devfs_poll_f, + .fo_kqfilter = devfs_kqfilter_f, + .fo_stat = devfs_stat_f, + .fo_close = devfs_close_f, + .fo_chmod = vn_chmod, + .fo_chown = vn_chown, + .fo_sendfile = vn_sendfile, + .fo_seek = vn_seek, + .fo_fill_kinfo = vn_fill_kinfo, + .fo_mmap = devfs_mmap_f, + .fo_cmp = devfs_cmp_f, + .fo_flags = DFLAG_SEEKABLE +}; + /* Vops for non-CHR vnodes in /dev. */ static struct vop_vector devfs_vnodeops = { .vop_default = &default_vnodeops, diff --git a/sys/sys/conf.h b/sys/sys/conf.h index 5496133ab6d8..b55da6cc5714 100644 --- a/sys/sys/conf.h +++ b/sys/sys/conf.h @@ -176,6 +176,8 @@ typedef int dumper_hdr_t(struct dumperinfo *di, struct kerneldumpheader *kdh); #define D_GIANTOK 0x00200000 /* suppress warning about using Giant */ #define D_NEEDGIANT 0x00400000 /* driver want Giant */ #define D_NEEDMINOR 0x00800000 /* driver uses clone_create() */ +#define D_NONPASSABLE 0x01000000 /* file is not passable with + SCM_RIGHTS or fork(2) */ /* * Version numbers.