svn commit: r323882 - in head/sys: fs/devfs kern
John Baldwin
jhb at FreeBSD.org
Thu Sep 21 23:05:34 UTC 2017
Author: jhb
Date: Thu Sep 21 23:05:32 2017
New Revision: 323882
URL: https://svnweb.freebsd.org/changeset/base/323882
Log:
Only handle _PC_MAX_CANON, _PC_MAX_INPUT, and _PC_VDISABLE for TTY devices.
Move handling of these three pathconf() variables out of vop_stdpathconf()
and into devfs_pathconf() as TTY devices can only be devfs files. In
addition, only return settings for these three variables for devfs devices
whose device switch has the D_TTY flag set.
Discussed with: bde, kib
Sponsored by: Chelsio Communications
Modified:
head/sys/fs/devfs/devfs_vnops.c
head/sys/kern/vfs_default.c
Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c Thu Sep 21 22:33:59 2017 (r323881)
+++ head/sys/fs/devfs/devfs_vnops.c Thu Sep 21 23:05:32 2017 (r323882)
@@ -1178,6 +1178,24 @@ devfs_pathconf(struct vop_pathconf_args *ap)
{
switch (ap->a_name) {
+ case _PC_MAX_CANON:
+ if (ap->a_vp->v_vflag & VV_ISTTY) {
+ *ap->a_retval = MAX_CANON;
+ return (0);
+ }
+ return (EINVAL);
+ case _PC_MAX_INPUT:
+ if (ap->a_vp->v_vflag & VV_ISTTY) {
+ *ap->a_retval = MAX_INPUT;
+ return (0);
+ }
+ return (EINVAL);
+ case _PC_VDISABLE:
+ if (ap->a_vp->v_vflag & VV_ISTTY) {
+ *ap->a_retval = _POSIX_VDISABLE;
+ return (0);
+ }
+ return (EINVAL);
case _PC_MAC_PRESENT:
#ifdef MAC
/*
Modified: head/sys/kern/vfs_default.c
==============================================================================
--- head/sys/kern/vfs_default.c Thu Sep 21 22:33:59 2017 (r323881)
+++ head/sys/kern/vfs_default.c Thu Sep 21 23:05:32 2017 (r323882)
@@ -486,20 +486,11 @@ vop_stdpathconf(ap)
case _PC_LINK_MAX:
*ap->a_retval = LINK_MAX;
return (0);
- case _PC_MAX_CANON:
- *ap->a_retval = MAX_CANON;
- return (0);
- case _PC_MAX_INPUT:
- *ap->a_retval = MAX_INPUT;
- return (0);
case _PC_PIPE_BUF:
*ap->a_retval = PIPE_BUF;
return (0);
case _PC_CHOWN_RESTRICTED:
*ap->a_retval = 1;
- return (0);
- case _PC_VDISABLE:
- *ap->a_retval = _POSIX_VDISABLE;
return (0);
default:
return (EINVAL);
More information about the svn-src-head
mailing list