summaryrefslogtreecommitdiff
path: root/lib/libc/sys
Commit message (Collapse)AuthorAgeFilesLines
* mmap(2): Update .Dd missed in the last commitGuangyuan Yang2020-12-241-1/+1
| | | | | PR: 252097 MFC after: 1 week
* mmap(2): Fix a typoGuangyuan Yang2020-12-241-1/+1
| | | | | | PR: 252097 MFC after: 1 week Reported by: Nick Frampton <nick.frampton@akips.com>
* libc: Fix most issues reported by mandocGordon Bergling2020-12-1916-34/+30
| | | | | | | | | | | | | | - varios "new sentence, new line" warnings - varios "sections out of conventional order" warnings - varios "unusual Xr order" warnings - varios "missing section argument" warnings - varios "no blank before trailing delimiter" warnings - varios "normalizing date format" warnings MFC after: 1 month Notes: svn path=/head/; revision=368817
* cpuset{,_getaffinity,_getdomain}.2: fix SEE ALSOEnji Cooper2020-12-113-7/+7
| | | | | | | | | | | | Sort by manpage section, then sort entries alphabetically. This makes the manpages `make manlint` clean. MFC after: 1 week Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368546
* aio_suspend.2: properly canonicalize .DdEnji Cooper2020-12-111-1/+1
| | | | | | | | | | | | Months should be fully spelled as their local-specific equivalents: in this case `Oct` should have been spelled like `October`. Reported by: make manlint MFC after: 1 week Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368537
* cap_enter(2): fix CAVEATS sectionEnji Cooper2020-12-111-13/+13
| | | | | | | | | | | | | | | | The CAVEATS section was misspelled as "CAVEAT" before this change. Fix the spelling to identify issues related to the section. Furthermore, given that the section order was incorrect, move the CAVEATS section down to the bottom of the manpage, per the conventional section order. MFC after: 1 week Reported by: make manlint Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368536
* _umtx_op(2): document recent addition of 32bit compat flagsKyle Evans2020-12-091-1/+74
| | | | | | | | | This was part of D27325. Reviewed by: kib Notes: svn path=/head/; revision=368479
* extattr_get_file(20: bump .DdEnji Cooper2020-12-081-1/+1
| | | | | | | | | | | | | This is being done for the formatting and context changes. While the net content hasn't been changed, the content/context changes were sufficient to warrant the date bump. MFC after: 1 week MFC with: r368431, r368433, r368434, r368435 Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368436
* extattr_get_file(2): clarify RETURN VALUESEnji Cooper2020-12-081-4/+15
| | | | | | | | | | | | | | | | | | | While some of the syscalls' behavior were documented and implied in the RETURN VALUES section by earlier, e.g., the DESCRIPTION sections, as having behavior of the other calls (`*_fd` vs `*_file` vs `*_link`), there was a lot of implied return value behavior in the section prior to this change. Explicitly document the syscall behavior per the current implementation in sys/kern/vfs_extattr.c so others can better develop based on its explicit documented behavior instead of having to digest the context of the manpage to understand the appropriate behavior. MFC after: 1 week MFC with: r368431, r368433, r368434 Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368435
* extattr_get_file(2): fix more formattingEnji Cooper2020-12-081-3/+3
| | | | | | | | | | | - Remove an unnecessary trailing comma separating a two-item clause. - Sort more function calls alphabetically (in the same vein as r368433). MFC after: 1 week Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368434
* extattr_get_file(2): sort syscalls alphabeticallyEnji Cooper2020-12-081-22/+22
| | | | | | | | | | | | | | | Although some sections of the manpage sort the syscalls alphabetically, many core areas of the manpage do not. Sort the syscalls so it is easier to pick out functional changes and to improve manpage readability. This formatting change is also being done to make future functional changes easier to spot. MFC after: 1 week Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368433
* lio_listio(2): fix manlint errorEnji Cooper2020-12-081-1/+1
| | | | | | | | | | | The date with .Dd prior to this change isn't canonically spelled out: it should have been "December", not "Dec". MFC after: 1 week Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368432
* extattr_get_fd(2): fix manlint errorsEnji Cooper2020-12-081-4/+4
| | | | | | | | | | | | | - The CAVEATS section was misspelled as "CAVEAT". - The CAVEATS section should come before the "BUGS" section and after other existing sections by convention. MFC after: 1 week Reported by: make manlint Sponsored by: DellEMC Isilon Notes: svn path=/head/; revision=368431
* _umtx_op: document UMTX_OP_SEM2_WAIT copyout behaviorKyle Evans2020-11-171-1/+22
| | | | | | | | | | | This clever technique to get a time remaining back was added to support sem_clockwait_np. Reviewed by: kib, vangyzen MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D27160 Notes: svn path=/head/; revision=367742
* Drop "All rights reserved" from all my stuff. This includesEdward Tomasz Napierala2020-10-281-1/+0
| | | | | | | | | | | | Foundation copyrights, approved by emaste@. It does not include files which carry other people's copyrights; if you're one of those people, feel free to make similar change. Reviewed by: emaste, imp, gbe (manpages) Differential Revision: https://reviews.freebsd.org/D26980 Notes: svn path=/head/; revision=367105
* Revise the description of MAP_STACK. In particular, describe the guardAlan Cox2020-10-271-19/+23
| | | | | | | | | | | in more detail. Reviewed by: bcr, kib, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D26908 Notes: svn path=/head/; revision=367087
* update write(2)'s iovec limit w/ info about the iosize_max_clamp sysctl...John-Mark Gurney2020-10-261-4/+8
| | | | Notes: svn path=/head/; revision=367048
* mmap(2): Document guard size for MAP_STACK and related EINVAL.Konstantin Belousov2020-10-211-1/+8
| | | | | | | | | | | Based on submission by: emaste Reviewed by: emaste, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D26894 Notes: svn path=/head/; revision=366918
* Fix a few mandoc issuesGordon Bergling2020-10-095-7/+9
| | | | | | | | | | - skipping paragraph macro: Pp after Sh - sections out of conventional order: Sh EXAMPLES - whitespace at end of input line - normalizing date format Notes: svn path=/head/; revision=366583
* Updates to chroot(2) docsWarner Losh2020-09-291-2/+9
| | | | | | | | 1. Note what settings give historic behavior 2. Recommend jail under security considerations. Notes: svn path=/head/; revision=366266
* Document {O,AT}_RESOLVE_BENEATH and new O_BENEATH behavior for relative paths.Konstantin Belousov2020-09-2211-15/+113
| | | | | | | | | | | | PR: 248335 Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D25886 Notes: svn path=/head/; revision=366023
* Fix error checking in shm_create_largepage().Mark Johnston2020-09-181-1/+1
| | | | | | | | | | Reviewed by: alc, kib Reported by: Coverity MFC with: r365524 Differential Revision: https://reviews.freebsd.org/D26464 Notes: svn path=/head/; revision=365877
* memfd_create: simplify HUGETLB support a little bitKyle Evans2020-09-111-45/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | This also fixes a minor issue that was missed in the initial review; the layout of the MFD_HUGE_* flags is actually not 1:1 bit:flag -- it instead borrowed the Linux convention of how this is laid out since it was originally implemented on Linux, the top 6 bits represent the shift required for the requested page size. This allows us to remove the flag <-> pgsize mapping table and simplify the logic just prior to validation of the requested page size. While we're here, fix two small nits: - HUGETLB memfd shouldn't exhibit the SHM_GROW_ON_WRITE behavior. We can only grow largepage shm by appropriately aligned (i.e. requested pagesize) sizes, so it can't work in the typical/sane fashion. Furthermore, Linux does the same, so let's be compatible. - We don't allow MFD_HUGETLB without specifying a pagesize, so no need to check for that later. Reviewed by: kib (slightly earlier version) Notes: svn path=/head/; revision=365624
* memfd_create: fix return valuesKyle Evans2020-09-101-8/+16
| | | | | | | | | | Literally returning EINVAL from a function designed to return an fd makes for interesting scenarios. I cannot assign enough pointy hats to cover this one. Notes: svn path=/head/; revision=365615
* Fix memfd_create tests after r365524Kyle Evans2020-09-101-1/+1
| | | | | | | | | | | | r365524 did accidentally invert this check that sets SHM_LARGEPAGE, leading non-hugetlb memfd as unconfigured largepage shm and thus test failures when we try to ftruncate or write to them. PR: 249236 Discussed with: kib Notes: svn path=/head/; revision=365593
* Add shm_create_largepage(3) helper for creation and configuration ofKonstantin Belousov2020-09-092-8/+109
| | | | | | | | | | | | | | | | largepage shm objects. And since we can, add memfd_create(MFD_HUGETLB) support, hopefully close enough to the Linux feature. Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24652 Notes: svn path=/head/; revision=365524
* getlogin_r: fix the type of lenKyle Evans2020-09-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | getlogin_r is specified by POSIX to to take a size_t len, not int. Fix our version to do the same, bump the symbol version due to ABI change and provide compat. This was reported to break compilation of Ruby 2.8. Some discussion about the necessity of the ABI compat did take place in the review. While many 64-bit platforms would likely be passing it in a 64-bit register and zero-extended and thus, not notice ABI breakage, some do sign-extend (e.g. mips). PR: 247102 Submitted by: Bertram Scharpf <software@bertram-scharpf.de> (original) Submitted by: cem (ABI compat) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D26335 Notes: svn path=/head/; revision=365506
* Include the psind in data returned by mincore(2).Mark Johnston2020-09-021-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | Currently we use a single bit to indicate whether the virtual page is part of a superpage. To support a forthcoming implementation of non-transparent 1GB superpages, it is useful to provide more detailed information about large page sizes. The change converts MINCORE_SUPER into a mask for MINCORE_PSIND(psind) values, indicating a mapping of size psind, where psind is an index into the pagesizes array returned by getpagesizes(3), which in turn comes from the hw.pagesizes sysctl. MINCORE_PSIND(1) is equal to the old value of MINCORE_SUPER. For now, two bits are used to record the page size, permitting values of MAXPAGESIZES up to 4. Reviewed by: alc, kib Sponsored by: Juniper Networks, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D26238 Notes: svn path=/head/; revision=365267
* [skip ci] document close_range(2) as async-signal-safeAlan Somers2020-07-211-1/+2
| | | | | | | | | | Reviewed by: bcr (manpages) MFC after: 2 weeks Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D25513 Notes: svn path=/head/; revision=363398
* lseek(2): Document the seek behavior better and update the POSIX complianceGordon Bergling2020-07-131-6/+35
| | | | | | | | | | | | | | | | | | | | In certain situations lseek(2) will return successful although if no seek was performed. This can happen when operating on devices that don't support seeking (older tape drives) or when operating on changeable media devices (such as DVD or Blu-ray devices) without a medium inserted. Document this within the man page and update the POSIX compliance while here. PR: 162765 Submitted by: arundel@ Reported by: arundel@ Reviewed by: bcr (mentor) Approved by: bcr (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D25646 Notes: svn path=/head/; revision=363156
* procctl(2): consistently refer to the last agrument as 'data'Allan Jude2020-07-111-5/+6
| | | | | | | | | | | | | | Some older references called it 'arg' Also fix a syntax error that was underlining an entire sentence. PR: 247386 Reported by: Paul Floyd <paulf@free.fr>, PauAmma (research) MFC after: 2 weeks Sponsored by: Klara Inc. Notes: svn path=/head/; revision=363104
* memfd_create: turn on SHM_GROW_ON_WRITEKyle Evans2020-07-101-1/+1
| | | | | | | | | | | memfd_create fds will no longer require an ftruncate(2) to set the size; they'll grow (to the extent that it's possible) upon write(2)-like syscalls. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D25502 Notes: svn path=/head/; revision=363066
* Apply the logic from r363051 to semctl(2) and __sem_base field.Mark Johnston2020-07-091-2/+1
| | | | | | | | | | Reported by: Jeffball <jeffball@grimm-co.com> MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D25600 Notes: svn path=/head/; revision=363055
* Avoid copying out kernel pointers from msgctl(IPC_STAT).Mark Johnston2020-07-091-3/+1
| | | | | | | | | | | | | | | | | While this behaviour is harmless, it is really just an artifact of the fact that the msgctl(2) implementation uses a user-visible structure as part of the internal implementation, so it is not deliberate and these pointers are not useful to userspace. Thus, NULL them out before copying out, and remove references to them from the manual page. Reported by: Jeffball <jeffball@grimm-co.com> Reviewed by: emaste, kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D25600 Notes: svn path=/head/; revision=363051
* Chroot actually appeared in 7th Edition Unix.Warner Losh2020-06-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Chroot appeared during the development of 7th edition Unix. The FreeBSD jail documents, incorrectly, that Bill Joy added this to 4.2BSD on 18 March 1982. That was when Bill Joy converted from a statically coded system call glue to dynamically generated assembler. Chroot was present in 32V, 3BSD, 4.0BSD, 4.1BSD and 4.1cBSD well in advance of this. Kirk McKusick agrees with this analysis. See also: V7: https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/libc/sys/chroot.s 32V: https://minnie.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/libc/sys/chroot.s 3BSD: https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/libc/sys/chroot.s 4BSD: https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/libc/sys/chroot.s 4.1cBSD: https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.1cBSD/usr/src/libc/sys/chroot.s The 6th and earlier editions do not have this system call, nor do they have anything named chroot in the trees available from TUHS. Reviewed by: allanjude@ Differential Revision: https://reviews.freebsd.org/D25475 Notes: svn path=/head/; revision=362664
* man page of select(2) should mention pselect(2)Pawel Biernacki2020-06-251-1/+2
| | | | | | | | | | | Reviewed by: bcr (manpages), kib, trasz Approved by: kib (mentor) MFC after: 7 days Sponsored by: Mysterious Code Ltd. Differential Revision: https://reviews.freebsd.org/D25169 Notes: svn path=/head/; revision=362611
* Fix a typo in cpuset_getdomain.2Mateusz Piotrowski2020-06-181-2/+2
| | | | | | | | | PR: 247385 Reported by: Paul Floyd <paulf free.fr> MFC after: 1 week Notes: svn path=/head/; revision=362336
* libcasper(3): Document HISTORY within the manpagesGordon Bergling2020-06-164-4/+24
| | | | | | | | | | Reviewed by: bcr (mentor) Approved by: bcr (mentor) MFC after: 7 days Differential Revision: https://reviews.freebsd.org/D24695 Notes: svn path=/head/; revision=362230
* libc manpages: various improvements from NetBSDGordon Bergling2020-06-143-3/+31
| | | | | | | | | | | | | | - Add STANDARDS and HISTORY sections within the appropriate manpages - Mention two USENIX papers within kqueue(2) and strlcpy(3) Reviewed by: bcr (mentor) Approved by: bcr (mentor) Obtained from: NetBSD MFC after: 7 days Differential Revision: https://reviews.freebsd.org/D24650 Notes: svn path=/head/; revision=362171
* procctl(2): document PROC_KPTIKonstantin Belousov2020-06-131-1/+42
| | | | | | | | | | Reviewed by: bcr Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D25258 Notes: svn path=/head/; revision=362151
* procctl(2): consistently refer to the data pointer as 'data'.Konstantin Belousov2020-06-131-6/+6
| | | | | | | | | | Reviewed by: bcr Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D25258 Notes: svn path=/head/; revision=362150
* vfs: add restrictions to read(2) of a directory [2/2]Kyle Evans2020-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the priv(9) that waters down the sysctl to make it only allow read(2) of a dirfd by the system root. Jailed root is not allowed, but jail policy and superuser policy will abstain from allowing/denying it so that a MAC module can fully control the policy. Such a MAC module has been written, and can be found at: https://people.freebsd.org/~kevans/mac_read_dir-0.1.0.tar.gz It is expected that the MAC module won't be needed by many, as most only need to do such diagnostics that require this behavior as system root anyways. Interested parties are welcome to grab the MAC module above and create a port or locally integrate it, and with enough support it could see introduction to base. As noted in mac_read_dir.c, it is released under the BSD 2 clause license and allows the restrictions to be lifted for only jailed root or for all unprivileged users. PR: 246412 Reviewed by: mckusick, kib, emaste, jilles, cy, phk, imp (all previous) Reviewed by: rgrimes (latest version) Differential Revision: https://reviews.freebsd.org/D24596 Notes: svn path=/head/; revision=361799
* vfs: add restrictions to read(2) of a directory [1/2]Kyle Evans2020-06-041-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Historically, we've allowed read() of a directory and some filesystems will accommodate (e.g. ufs/ffs, msdosfs). From the history department staffed by Warner: <<EOF pdp-7 unix seemed to allow reading directories, but they were weird, special things there so I'm unsure (my pdp-7 assembler sucks). 1st Edition's sources are lost, mostly. The kernel allows it. The reconstructed sources from 2nd or 3rd edition read it though. V6 to V7 changed the filesystem format, and should have been a warning, but reading directories weren't materially changed. 4.1b BSD introduced readdir because of UFS. UFS broke all directory reading programs in 1983. ls, du, find, etc all had to be rewritten. readdir() and friends were introduced here. SysVr3 picked up readdir() in 1987 for the AT&T fork of Unix. SysVr4 updated all the directory reading programs in 1988 because different filesystem types were introduced. In the 90s, these interfaces became completely ubiquitous as PDP-11s running V7 faded from view and all the folks that initially started on V7 upgraded to SysV. Linux never supported this (though I've not done the software archeology to check) because it has always had a pathological diversity of filesystems. EOF Disallowing read(2) on a directory has the side-effect of masking application bugs from relying on other implementation's behavior (e.g. Linux) of rejecting these with EISDIR across the board, but allowing it has been a vector for at least one stack disclosure bug in the past[0]. By POSIX, this is implementation-defined whether read() handles directories or not. Popular implementations have chosen to reject them, and this seems sensible: the data you're reading from a directory is not structured in some unified way across filesystem implementations like with readdir(2), so it is impossible for applications to portably rely on this. With this patch, we will reject most read(2) of a dirfd with EISDIR. Users that know what they're doing can conscientiously set bsd.security.allow_read_dir=1 to allow read(2) of directories, as it has proven useful for debugging or recovery. A future commit will further limit the sysctl to allow only the system root to read(2) directories, to make it at least relatively safe to leave on for longer periods of time. While we're adding logic pertaining to directory vnodes to vn_io_fault, an additional assertion has also been added to ensure that we're not reaching vn_io_fault with any write request on a directory vnode. Such request would be a logical error in the kernel, and must be debugged rather than allowing it to potentially silently error out. Commented out shell aliases have been placed in root's chsrc/shrc to promote awareness that grep may become noisy after this change, depending on your usage. A tentative MFC plan has been put together to try and make it as trivial as possible to identify issues and collect reports; note that this will be strongly re-evaluated. Tentatively, I will MFC this knob with the default as it is in HEAD to improve our odds of actually getting reports. The future priv(9) to further restrict the sysctl WILL NOT BE MERGED BACK, so the knob will be a faithful reversion on stable/12. We will go into the merge acknowledging that the sysctl default may be flipped back to restore historical behavior at *any* point if it's warranted. [0] https://www.freebsd.org/security/advisories/FreeBSD-SA-19:10.ufs.asc PR: 246412 Reviewed by: mckusick, kib, emaste, jilles, cy, phk, imp (all previous) Reviewed by: rgrimes (latest version) MFC after: 1 month (note the MFC plan mentioned above) Relnotes: absolutely, but will amend previous RELNOTES entry Differential Revision: https://reviews.freebsd.org/D24596 Notes: svn path=/head/; revision=361798
* mmap.2: correct prot argument terminologyEd Maste2020-06-031-2/+2
| | | | | | | | | | | | One of the error descriptions referred to permissions; in context the meaning was probably clear, but the prot values are properly called protections. MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=361769
* Document SO_NO_OFFLOADS and SO_NO_DDP.John Baldwin2020-06-031-2/+15
| | | | | | | | | | Reviewed by: bcr, np MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D25043 Notes: svn path=/head/; revision=361767
* Add an entry to Symbol.map for the rpctls_syscall added by r361599.Rick Macklem2020-05-281-0/+1
| | | | | | | | Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D24949 Notes: svn path=/head/; revision=361603
* procctl(2): correct a minor cut-n-pastoKyle Evans2020-05-161-2/+2
| | | | | | | | | | This is clearly describing PROC_PROTMAX_FORCE_DISABLE, rather than PROC_ASL_FORCE_DISABLE. Submitted by: sigsys@gmail.com Notes: svn path=/head/; revision=361105
* Add HISTORY sections to document when thisBenedict Reuschling2020-05-057-7/+44
| | | | | | | | | | | functionality first appeared in FreeBSD. Submitted by: Gordon Bergling gbergling_gmail.com Approved by: bcr Differential Revision: https://reviews.freebsd.org/D24677 Notes: svn path=/head/; revision=360670
* Document handling of connection-mode sockets by sendto(2).Mark Johnston2020-04-271-4/+24
| | | | | | | | | | | | | | | | sendto(2), sendmsg(2) and sendmmsg(2) return ENOTCONN if a destination address is specified and the socket is not connected and the socket protocol does not automatically connect ("implied connect"). Document that. Also document the fact that the destination address is ignored for connection-mode sockets if the socket is already connected. PR: 245817 Submitted by: Erik Inge Bolsø <knan-bfo@modirum.com> MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24530 Notes: svn path=/head/; revision=360384
* Fix handling of EV_EOF for named pipes.Mark Johnston2020-04-271-6/+6
| | | | | | | | | | | | | | | | | | | | | | Contrary to the kevent man page, EV_EOF on a fifo is not cleared by EV_CLEAR. Modify the read and write filters to clear EV_EOF when the fifo's PIPE_EOF flag is clear, and update the man page to document the new behaviour. Modify the write filter to return the amount of buffer space available even if no readers are present. This matches the behaviour for sockets. When reading from a pipe, only call pipeselwakeup() if some data was actually read. This prevents the continuous re-triggering of a EVFILT_READ event on EOF when in edge-triggered mode. PR: 203366, 224615 Submitted by: Jan Kokemüller <jan.kokemueller@gmail.com> MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24528 Notes: svn path=/head/; revision=360380