|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0 |
|
| #
630fb55e |
| 25-Aug-2019 |
Konstantin Belousov <[email protected]> |
MFC r351194: Change locking requirements for VOP_UNSET_TEXT().
|
|
Revision tags: release/11.3.0 |
|
| #
2a3873b3 |
| 12-Jun-2019 |
Konstantin Belousov <[email protected]> |
MFC r347151,347181,347968,348421,348698,348701: Switch to use shared vnode locks for text files during image activation.
For MFC, VOP_GET_WRITECOUNT was left in the slot for KBI stability, but it is
MFC r347151,347181,347968,348421,348698,348701: Switch to use shared vnode locks for text files during image activation.
For MFC, VOP_GET_WRITECOUNT was left in the slot for KBI stability, but it is unused.
show more ...
|
|
Revision tags: release/12.0.0, release/11.2.0 |
|
| #
b1288166 |
| 17-Jan-2018 |
John Baldwin <[email protected]> |
Use long for the last argument to VOP_PATHCONF rather than a register_t.
pathconf(2) and fpathconf(2) both return a long. The kern_[f]pathconf() functions now accept a pointer to a long value rathe
Use long for the last argument to VOP_PATHCONF rather than a register_t.
pathconf(2) and fpathconf(2) both return a long. The kern_[f]pathconf() functions now accept a pointer to a long value rather than modifying td_retval directly. Instead, the system calls explicitly store the returned long value in td_retval[0].
Requested by: bde Reviewed by: kib Sponsored by: Chelsio Communications
show more ...
|
|
Revision tags: release/10.4.0, release/11.1.0 |
|
| #
0c3c207f |
| 02-Jun-2017 |
Gleb Smirnoff <[email protected]> |
For UNIX sockets make vnode point not to the socket, but to the UNIX PCB, since the latter is the thing that links together VFS and sockets.
While here, make the union in the struct vnode anonymous.
|
|
Revision tags: release/11.0.1, release/11.0.0 |
|
| #
69a28758 |
| 15-Sep-2016 |
Ed Maste <[email protected]> |
Renumber license clauses in sys/kern to avoid skipping #3
|
| #
9ce60e28 |
| 27-Aug-2016 |
Konstantin Belousov <[email protected]> |
Consistently delimit each vnode description block with two blank lines.
Sponsored by: The FreeBSD Foundation MFC after: 3 days
|
| #
295af703 |
| 15-Aug-2016 |
Konstantin Belousov <[email protected]> |
Add an implementation of fdatasync(2).
The syscall is a trivial wrapper around new VOP_FDATASYNC(), sharing code with fsync(2). For all filesystems, this commit provides the implementation which de
Add an implementation of fdatasync(2).
The syscall is a trivial wrapper around new VOP_FDATASYNC(), sharing code with fsync(2). For all filesystems, this commit provides the implementation which delegates the work of VOP_FDATASYNC() to VOP_FSYNC(). This is functionally correct but not efficient.
This is not yet POSIX-compliant implementation, because it does not ensure that queued AIO requests are completed before returning.
Reviewed by: mckusick Discussed with: avg (ZFS), jhb (AIO part) Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D7471
show more ...
|
| #
f8acef5a |
| 12-Aug-2016 |
Edward Tomasz Napierala <[email protected]> |
Remove unused "X" vnode lock assertion, somehow missed in r303743.
MFC after: 1 month
|
| #
7b255097 |
| 04-Aug-2016 |
Edward Tomasz Napierala <[email protected]> |
Remove unused - never actually implemented - vnode lock types from vnode_if.src.
MFC after: 1 month
|
| #
c89e1b87 |
| 03-May-2016 |
Konstantin Belousov <[email protected]> |
Add EVFILT_VNODE open, read and close notifications.
While there, order EVFILT_VNODE notes descriptions alphabetically.
Based on submission, and tested by: Vladimir Kondratyev <[email protected]> MF
Add EVFILT_VNODE open, read and close notifications.
While there, order EVFILT_VNODE notes descriptions alphabetically.
Based on submission, and tested by: Vladimir Kondratyev <[email protected]> MFC after: 2 weeks
show more ...
|
| #
e3043798 |
| 29-Apr-2016 |
Pedro F. Giffuni <[email protected]> |
sys/kern: spelling fixes in comments.
No functional change.
|
|
Revision tags: release/10.3.0 |
|
| #
b0cd2017 |
| 16-Dec-2015 |
Gleb Smirnoff <[email protected]> |
A change to KPI of vm_pager_get_pages() and underlying VOP_GETPAGES().
o With new KPI consumers can request contiguous ranges of pages, and unlike before, all pages will be kept busied on return,
A change to KPI of vm_pager_get_pages() and underlying VOP_GETPAGES().
o With new KPI consumers can request contiguous ranges of pages, and unlike before, all pages will be kept busied on return, like it was done before with the 'reqpage' only. Now the reqpage goes away. With new interface it is easier to implement code protected from race conditions.
Such arrayed requests for now should be preceeded by a call to vm_pager_haspage() to make sure that request is possible. This could be improved later, making vm_pager_haspage() obsolete.
Strenghtening the promises on the business of the array of pages allows us to remove such hacks as swp_pager_free_nrpage() and vm_pager_free_nonreq().
o New KPI accepts two integer pointers that may optionally point at values for read ahead and read behind, that a pager may do, if it can. These pages are completely owned by pager, and not controlled by the caller.
This shifts the UFS-specific readahead logic from vm_fault.c, which should be file system agnostic, into vnode_pager.c. It also removes one VOP_BMAP() request per hard fault.
Discussed with: kib, alc, jeff, scottl Sponsored by: Nginx, Inc. Sponsored by: Netflix
show more ...
|
| #
55d33667 |
| 15-Sep-2015 |
Conrad Meyer <[email protected]> |
kevent(2): Note DOOMED vnodes with NOTE_REVOKE
In poll mode, check for and wake VBAD vnodes. (Vnodes that are VBAD at registration will never be woken by the RECLAIM trigger.)
Add post-VOP_RECLAIM
kevent(2): Note DOOMED vnodes with NOTE_REVOKE
In poll mode, check for and wake VBAD vnodes. (Vnodes that are VBAD at registration will never be woken by the RECLAIM trigger.)
Add post-VOP_RECLAIM hook to trigger notes on vnode reclamation. (Vnodes that were fine at registration but are vgoned while being monitored should signal waiters.)
Reviewed by: kib Approved by: markj (mentor) Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3675
show more ...
|
|
Revision tags: release/10.2.0 |
|
| #
f6d6b5e2 |
| 30-Mar-2015 |
Gleb Smirnoff <[email protected]> |
Catch up on r271387 and remove unused parameter from VOP_GETPAGES_ASYNC().
|
| #
90effb23 |
| 23-Nov-2014 |
Gleb Smirnoff <[email protected]> |
Merge from projects/sendfile:
o Provide a new VOP_GETPAGES_ASYNC(), which works like VOP_GETPAGES(), but doesn't sleep. It returns immediately, and will execute the I/O done handler function tha
Merge from projects/sendfile:
o Provide a new VOP_GETPAGES_ASYNC(), which works like VOP_GETPAGES(), but doesn't sleep. It returns immediately, and will execute the I/O done handler function that must be supplied as argument. o Provide VOP_GETPAGES_ASYNC() for the FFS, which uses vnode_pager. o Extend pagertab to support pgo_getpages_async method, and implement this method for vnode_pager.
Reviewed by: kib Tested by: pho Sponsored by: Netflix Sponsored by: Nginx, Inc.
show more ...
|
|
Revision tags: release/10.1.0 |
|
| #
27ad26d8 |
| 10-Sep-2014 |
Gleb Smirnoff <[email protected]> |
Remove unused arguments for VOP_GETPAGES(), VOP_PUTPAGES().
|
|
Revision tags: release/9.3.0, release/10.0.0 |
|
| #
1bd7d0b7 |
| 09-Nov-2013 |
Konstantin Belousov <[email protected]> |
If filesystem declares that it supports shared locking for writes, use shared vnode lock for VOP_PUTPAGES() as well. The only such filesystem in the tree is ZFS, and it uses vnode_pager_generic_putp
If filesystem declares that it supports shared locking for writes, use shared vnode lock for VOP_PUTPAGES() as well. The only such filesystem in the tree is ZFS, and it uses vnode_pager_generic_putpages(), which performs the pageout with VOP_WRITE().
Reviewed by: alc Discussed with: avg Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
show more ...
|
|
Revision tags: release/9.2.0, release/8.4.0, release/9.1.0 |
|
| #
4f15bb67 |
| 22-Nov-2012 |
Andriy Gapon <[email protected]> |
remove vop_lookup_pre and vop_lookup_post
Suggested by: kib MFC after: 5 days
|
| #
c496727c |
| 19-Nov-2012 |
Andriy Gapon <[email protected]> |
vnode_if: fix locking protocol description for lookup and cachedlookup
Also remove the checks from vop_lookup_pre and vop_lookup_post, which are now completely redundant (before this change they wer
vnode_if: fix locking protocol description for lookup and cachedlookup
Also remove the checks from vop_lookup_pre and vop_lookup_post, which are now completely redundant (before this change they were partially redundant).
Discussed with: kib MFC after: 10 days
show more ...
|
| #
140dedb8 |
| 02-Nov-2012 |
Konstantin Belousov <[email protected]> |
The r241025 fixed the case when a binary, executed from nullfs mount, was still possible to open for write from the lower filesystem. There is a symmetric situation where the binary could already ha
The r241025 fixed the case when a binary, executed from nullfs mount, was still possible to open for write from the lower filesystem. There is a symmetric situation where the binary could already has file descriptors opened for write, but it can be executed from the nullfs overlay.
Handle the issue by passing one v_writecount reference to the lower vnode if nullfs vnode has non-zero v_writecount. Note that only one write reference can be donated, since nullfs only keeps one use reference on the lower vnode. Always use the lower vnode v_writecount for the checks.
Introduce the VOP_GET_WRITECOUNT to read v_writecount, which is currently always bypassed to the lower vnode, and VOP_ADD_WRITECOUNT to manipulate the v_writecount value, which manages a single bypass reference to the lower vnode. Caling the VOPs instead of directly accessing v_writecount provide the fix described in the previous paragraph.
Tested by: pho MFC after: 3 weeks
show more ...
|
| #
877d24ac |
| 28-Sep-2012 |
Konstantin Belousov <[email protected]> |
Fix the mis-handling of the VV_TEXT on the nullfs vnodes.
If you have a binary on a filesystem which is also mounted over by nullfs, you could execute the binary from the lower filesystem, or from t
Fix the mis-handling of the VV_TEXT on the nullfs vnodes.
If you have a binary on a filesystem which is also mounted over by nullfs, you could execute the binary from the lower filesystem, or from the nullfs mount. When executed from lower filesystem, the lower vnode gets VV_TEXT flag set, and the file cannot be modified while the binary is active. But, if executed as the nullfs alias, only the nullfs vnode gets VV_TEXT set, and you still can open the lower vnode for write.
Add a set of VOPs for the VV_TEXT query, set and clear operations, which are correctly bypassed to lower vnode.
Tested by: pho (previous version) MFC after: 2 weeks
show more ...
|
|
Revision tags: release/8.3.0 |
|
| #
c7e41c8b |
| 29-Feb-2012 |
Mikolaj Golub <[email protected]> |
Introduce VOP_UNP_BIND(), VOP_UNP_CONNECT(), and VOP_UNP_DETACH() operations for setting and accessing vnode's v_socket field.
The operations are necessary to implement proper unix socket handling o
Introduce VOP_UNP_BIND(), VOP_UNP_CONNECT(), and VOP_UNP_DETACH() operations for setting and accessing vnode's v_socket field.
The operations are necessary to implement proper unix socket handling on layered file systems like nullfs(5).
This change fixes the long standing issue with nullfs(5) being in that unix sockets did not work between lower and upper layers: if we bound to a socket on the lower layer we could connect only to the lower path; if we bound to the upper layer we could connect only to the upper path. The new behavior is one can connect to both the lower and the upper paths regardless what layer path one binds to.
PR: kern/51583, kern/159663 Suggested by: kib Reviewed by: arch MFC after: 2 weeks
show more ...
|
| #
71eeeaf2 |
| 06-Jan-2012 |
John Baldwin <[email protected]> |
Add 5 spare VOPs as placeholders to avoid breaking the KBI in the future when new VOPs are MFC'd to a branch.
Reviewed by: kib, bz MFC after: 3 days
|
| #
f0d6c5ca |
| 23-Dec-2011 |
John Baldwin <[email protected]> |
Add post-VOP hooks for VOP_DELETEEXTATTR() and VOP_SETEXTATTR() and use these to trigger a NOTE_ATTRIB EVFILT_VNODE kevent when the extended attributes of a vnode are changed.
Note that OS X already
Add post-VOP hooks for VOP_DELETEEXTATTR() and VOP_SETEXTATTR() and use these to trigger a NOTE_ATTRIB EVFILT_VNODE kevent when the extended attributes of a vnode are changed.
Note that OS X already implements this behavior.
Reviewed by: rwatson MFC after: 2 weeks
show more ...
|
| #
936c09ac |
| 04-Nov-2011 |
John Baldwin <[email protected]> |
Add the posix_fadvise(2) system call. It is somewhat similar to madvise(2) except that it operates on a file descriptor instead of a memory region. It is currently only supported on regular files.
Add the posix_fadvise(2) system call. It is somewhat similar to madvise(2) except that it operates on a file descriptor instead of a memory region. It is currently only supported on regular files.
Just as with madvise(2), the advice given to posix_fadvise(2) can be divided into two types. The first type provide hints about data access patterns and are used in the file read and write routines to modify the I/O flags passed down to VOP_READ() and VOP_WRITE(). These modes are thus filesystem independent. Note that to ease implementation (and since this API is only advisory anyway), only a single non-normal range is allowed per file descriptor.
The second type of hints are used to hint to the OS that data will or will not be used. These hints are implemented via a new VOP_ADVISE(). A default implementation is provided which does nothing for the WILLNEED request and attempts to move any clean pages to the cache page queue for the DONTNEED request. This latter case required two other changes. First, a new V_CLEANONLY flag was added to vinvalbuf(). This requests vinvalbuf() to only flush clean buffers for the vnode from the buffer cache and to not remove any backing pages from the vnode. This is used to ensure clean pages are not wired into the buffer cache before attempting to move them to the cache page queue. The second change adds a new vm_object_page_cache() method. This method is somewhat similar to vm_object_page_remove() except that instead of freeing each page in the specified range, it attempts to move clean pages to the cache queue if possible.
To preserve the ABI of struct file, the f_cdevpriv pointer is now reused in a union to point to the currently active advice region if one is present for regular files.
Reviewed by: jilles, kib, arch@ Approved by: re (kib) MFC after: 1 month
show more ...
|