History log of /src/sys/miscfs/overlay/overlay_vnops.c |
Revision | | Date | Author | Comments |
1.25 |
| 16-May-2020 |
christos | Add ACL support for FFS. From FreeBSD.
|
1.24 |
| 04-Jun-2017 |
hannken | Locking a layer vnode using the regular bypass routine is no longer racy. Undo the change from 2017-03-30 11:16:52, commitid eurqbzuGxGRlryLz and make vi_lock a krwlock_t again.
|
1.23 |
| 30-Mar-2017 |
hannken | branches: 1.23.6; Locking a layer vnode is racy as it may become reclaimed before calling the operation on the lower vnode.
Replace vi_lock with a rw_obj and change layered file systems to share the lock with the lower vnode.
Layered file systems now use genfs_lock()/_unlock/_islocked().
Welcome to 7.99.67
|
1.22 |
| 27-Jan-2017 |
hannken | Handle v_writecount from layer_open(), layer_close() and layer_revoke() so lower file system vnodes get marked as open for writing.
|
1.21 |
| 10-Nov-2014 |
maxv | branches: 1.21.2; 1.21.4; 1.21.6; Do not uselessly include <sys/malloc.h>.
|
1.20 |
| 27-Feb-2014 |
hannken | branches: 1.20.4; The current implementation of vn_lock() is racy. Modification of the vnode operations vector for active vnodes is unsafe because it is not known whether deadfs or the original file system will be called.
- Pass down LK_RETRY to the lock operation (hint for deadfs only).
- Change deadfs lock operation to return ENOENT if LK_RETRY is unset.
- Change all other lock operations to check for dead vnode once the vnode is locked and unlock and return ENOENT in this case.
With these changes in place vnode lock operations will never succeed after vclean() has marked the vnode as VI_XLOCK and before vclean() has changed the operations vector.
Adresses PR kern/37706 (Forced unmount of file systems is unsafe)
Discussed on tech-kern.
Welcome to 6.99.33
|
1.19 |
| 11-Jul-2011 |
hannken | branches: 1.19.2; 1.19.12; 1.19.16; Change VOP_BWRITE() to take a vnode as its first argument like all other VOPs do. Layered file systems no longer have to modify bp->b_vp and run into trouble when an async VOP_BWRITE() uses the wrong vnode.
- change all occurences of VOP_BWRITE(bp) to VOP_BWRITE(bp->b_vp, bp). - remove layer_bwrite(). - welcome to 5.99.55
Adresses PR kern/38762 panic: vwakeup: neg numoutput
No objections from tech-kern@.
|
1.18 |
| 10-Jan-2011 |
hannken | Add layer_revoke() that adjusts the lower vnode use count to be at least as high as the upper vnode count before passing down the VOP_REVOKE().
This way vclean() check for active (vp->v_usecount > 1) vnodes gets it right.
Should fix PR kern/43456.
|
1.17 |
| 02-Jul-2010 |
hannken | LK_INTERLOCK is no longer a valid flag for VOP_LOCK(). This makes layer_*lock*() obsolete. Remove them and handle lock operations with the generic bypass function.
Ride 5.99.34.
|
1.16 |
| 11-Dec-2005 |
christos | branches: 1.16.74; 1.16.96; 1.16.98; merge ktrace-lwp.
|
1.15 |
| 30-Aug-2005 |
xtraeme | Remove __P()
|
1.14 |
| 30-Jun-2004 |
hannken | branches: 1.14.12; Do LAYERFS_REMOVED for vop_rmdir.
Reviewed by: Bill Studenmund <wrstuden@netbsd.org>
|
1.13 |
| 07-Jun-2004 |
yamt | do a LAYERFS_REMOVED hack for vop_rename as well.
|
1.12 |
| 28-May-2004 |
wrstuden | Since VOP_UPCALL() has been a long time in coming, add this partial fix for layered-file-removal. It will work for the case of accessing and deleting a file through the layered file system. Accessing via the layer and deleting on the underlying still won't work, nor will accessing via complicated structures (like two umap layers over a given file systems).
We still need VOP_UPCALL(), but this is better than things were before.
This patch has been discussed off & on for a while. This incarnation was tested by hannken at netbsd dot org.
|
1.11 |
| 25-Jan-2004 |
hannken | branches: 1.11.2; Make VOP_STRATEGY(bp) a real VOP as discussed on tech-kern.
VOP_STRATEGY(bp) is replaced by one of two new functions:
- VOP_STRATEGY(vp, bp) Call the strategy routine of vp for bp. - DEV_STRATEGY(bp) Call the d_strategy routine of bp->b_dev for bp.
DEV_STRATEGY(bp) is used only for block-to-block device situations.
|
1.10 |
| 07-Aug-2003 |
agc | Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
1.9 |
| 04-Jan-2002 |
chs | branches: 1.9.16; add the entry for layer_getpages() to the VOP tables of the layered file systems that need it.
|
1.8 |
| 06-Dec-2001 |
chs | add VOP_GETPAGES and VOP_PUTPAGES methods for layered filesystems. drop the interlock on the upper layer, acquire the interlock on the lower layer.
|
1.7 |
| 15-Nov-2001 |
lukem | don't need <sys/types.h> when including <sys/param.h>
|
1.6 |
| 10-Nov-2001 |
lukem | add RCSIDs
|
1.5 |
| 09-Jun-2001 |
wiz | branches: 1.5.2; 1.5.6; Some more corrections by Michael K. Sanders.
|
1.4 |
| 07-Jun-2001 |
wiz | Typos and grammer fixes in comments (misc/13133 by Michael K. Sanders)
|
1.3 |
| 22-Jan-2001 |
jdolecek | branches: 1.3.2; make filesystem vnodeop, specop, fifoop and vnodeopv_* arrays const
|
1.2 |
| 13-Mar-2000 |
soren | branches: 1.2.6; Fix doubled 'the's in comments.
|
1.1 |
| 20-Jan-2000 |
wrstuden | Add overlay, a layered file system which overlays itself on the underlying fs, rather than exporting it to another part of the directory name space.
|
1.2.6.3 |
| 11-Feb-2001 |
bouyer | Sync with HEAD.
|
1.2.6.2 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago
|
1.2.6.1 |
| 13-Mar-2000 |
bouyer | file overlay_vnops.c was added on branch thorpej_scsipi on 2000-11-20 18:09:48 +0000
|
1.3.2.5 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.3.2.4 |
| 11-Jan-2002 |
nathanw | More catchup.
|
1.3.2.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.3.2.2 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.3.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.5.6.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.5.2.1 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.9.16.4 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.9.16.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.9.16.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.9.16.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.11.2.3 |
| 02-Jul-2004 |
he | Pull up revision 1.14 (requested by hannken in ticket #575): Do LAYERFS_REMOVED for vop_rmdir.
|
1.11.2.2 |
| 21-Jun-2004 |
tron | Pull up revision 1.13 (requested by yamt in ticket #512): do a LAYERFS_REMOVED hack for vop_rename as well.
|
1.11.2.1 |
| 30-May-2004 |
tron | Pull up revision 1.12 (requested by wrstuden in ticket #424): Since VOP_UPCALL() has been a long time in coming, add this partial fix for layered-file-removal. It will work for the case of accessing and deleting a file through the layered file system. Accessing via the layer and deleting on the underlying still won't work, nor will accessing via complicated structures (like two umap layers over a given file systems). We still need VOP_UPCALL(), but this is better than things were before. This patch has been discussed off & on for a while. This incarnation was tested by hannken at netbsd dot org.
|
1.14.12.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.16.98.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.16.98.1 |
| 03-Jul-2010 |
rmind | sync with head
|
1.16.96.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.16.74.1 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.19.16.1 |
| 18-May-2014 |
rmind | sync with head
|
1.19.12.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.19.12.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.19.2.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.20.4.1 |
| 17-Jan-2015 |
martin | Pull up following revision(s) (requested by maxv in ticket #427): sys/compat/svr4/svr4_schedctl.c: revision 1.8 sys/netinet/tcp_timer.c: revision 1.88 sys/miscfs/genfs/layer_vfsops.c: revision 1.45 sys/compat/svr4/svr4_ioctl.c: revision 1.37 sys/ufs/chfs/chfs_vfsops.c: revision 1.14 sys/miscfs/fdesc/fdesc_vfsops.c: revision 1.91 sys/compat/linux/arch/i386/linux_ptrace.c: revision 1.30 sys/compat/common/kern_time_50.c: revision 1.28 sys/netinet6/ip6_forward.c: revision 1.74 sys/miscfs/umapfs/umap_vnops.c: revision 1.57 sys/compat/svr4/svr4_fcntl.c: revision 1.74 distrib/sets/lists/comp/mi: revision 1.1931 sys/netinet6/udp6_output.c: revision 1.46 sys/fs/puffs/puffs_compat.c: revision 1.3 sys/fs/udf/udf_rename.c: revision 1.11 sys/compat/svr4/svr4_filio.c: revision 1.24 sys/fs/udf/udf_rename.c: revision 1.12 sys/netinet/tcp_usrreq.c: revision 1.202 sys/miscfs/umapfs/umap_subr.c: revision 1.29 sys/compat/linux/common/linux_fadvise64.c: revision 1.3 sys/netinet/if_atm.c: revision 1.34 sys/miscfs/procfs/procfs_subr.c: revision 1.106 sys/miscfs/genfs/layer_subr.c: revision 1.37 sys/netinet/tcp_sack.c: revision 1.30 sys/compat/freebsd/freebsd_misc.c: revision 1.33 sys/compat/freebsd/freebsd_file.c: revision 1.33 sys/ufs/chfs/chfs_vnode.c: revision 1.12 sys/compat/svr4/svr4_ttold.c: revision 1.34 sys/compat/linux/common/linux_file.c: revision 1.114 sys/compat/linux/arch/mips/linux_machdep.c: revision 1.43 sys/compat/linux/common/linux_signal.c: revision 1.76 sys/compat/common/compat_util.c: revision 1.46 sys/compat/linux/arch/arm/linux_ptrace.c: revision 1.18 sys/compat/svr4/svr4_sockio.c: revision 1.36 sys/compat/linux/arch/arm/linux_machdep.c: revision 1.32 sys/compat/svr4/svr4_signal.c: revision 1.66 sys/kern/kern_exec.c: revision 1.410 sys/fs/puffs/puffs_vfsops.c: revision 1.115 sys/compat/svr4/svr4_exec_elf64.c: revision 1.15 sys/compat/linux/arch/i386/linux_machdep.c: revision 1.159 sys/compat/linux/arch/alpha/linux_machdep.c: revision 1.50 sys/compat/linux32/common/linux32_misc.c: revision 1.24 sys/netinet/in_pcb.c: revision 1.153 sys/sys/malloc.h: revision 1.116 sys/compat/common/if_43.c: revision 1.9 share/man/man9/Makefile: revision 1.380 sys/netinet/tcp_vtw.c: revision 1.12 sys/miscfs/umapfs/umap_vfsops.c: revision 1.95 sys/ufs/ext2fs/ext2fs_vfsops.c: revision 1.186 sys/compat/common/uipc_syscalls_43.c: revision 1.46 sys/ufs/ext2fs/ext2fs_vnops.c: revision 1.115 sys/fs/puffs/puffs_msgif.c: revision 1.97 sys/compat/svr4/svr4_ipc.c: revision 1.27 sys/compat/linux/common/linux_exec.c: revision 1.117 sys/ufs/ext2fs/ext2fs_readwrite.c: revision 1.66 sys/netinet/tcp_output.c: revision 1.179 sys/compat/svr4/svr4_termios.c: revision 1.28 sys/fs/udf/udf_strat_bootstrap.c: revision 1.4 sys/fs/puffs/puffs_subr.c: revision 1.67 sys/fs/puffs/puffs_node.c: revision 1.36 sys/miscfs/overlay/overlay_vnops.c: revision 1.21 sys/fs/cd9660/cd9660_node.c: revision 1.34 sys/netinet/raw_ip.c: revision 1.146 sys/sys/mallocvar.h: revision 1.13 sys/miscfs/overlay/overlay_vfsops.c: revision 1.63 share/man/man9/malloc.9: revision 1.50 sys/netinet6/dest6.c: revision 1.18 sys/compat/linux/common/linux_uselib.c: revision 1.33 sys/compat/linux/common/linux_socket.c: revision 1.120 share/man/man9/malloc.9: revision 1.51 sys/netinet/tcp_subr.c: revision 1.257 sys/compat/linux/common/linux_socketcall.c: revision 1.45 sys/compat/linux/common/linux_fadvise64_64.c: revision 1.3 sys/compat/freebsd/freebsd_ipc.c: revision 1.17 sys/compat/linux/common/linux_misc_notalpha.c: revision 1.109 sys/compat/linux/arch/alpha/linux_pipe.c: revision 1.17 sys/netinet6/in6_pcb.c: revision 1.132 sys/netinet6/in6_ifattach.c: revision 1.94 sys/compat/svr4/svr4_exec_elf32.c: revision 1.15 sys/miscfs/nullfs/null_vfsops.c: revision 1.90 sys/fs/cd9660/cd9660_util.c: revision 1.12 sys/compat/linux/arch/powerpc/linux_machdep.c: revision 1.48 sys/compat/freebsd/freebsd_exec_elf32.c: revision 1.20 sys/miscfs/procfs/procfs_vfsops.c: revision 1.94 sys/compat/linux/arch/powerpc/linux_ptrace.c: revision 1.28 sys/compat/linux/common/linux_sched.c: revision 1.67 sys/compat/linux/common/linux_exec_aout.c: revision 1.67 sys/compat/linux/common/linux_pipe.c: revision 1.67 sys/compat/linux/common/linux_llseek.c: revision 1.34 sys/compat/linux/arch/mips/linux_ptrace.c: revision 1.10 Do not uselessly include <sys/malloc.h>. Cleanup: - remove struct kmembuckets (dead) - correctly deadify MALLOC_XX - remove MALLOC_DEFINE_LIMIT and MALLOC_JUSTDEFINE_LIMIT (dead) - remove malloc_roundup(), malloc_type_setlimit(), MALLOC_DEFINE_LIMIT() and MALLOC_JUSTDEFINE_LIMIT() from man 9 malloc New sentence, new line. Bump date for previous. Obsolete malloc_roundup(9), malloc_type_setlimit(9) and MALLOC_DEFINE_LIMIT(9) man pages.
|
1.21.6.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.21.4.2 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.21.4.1 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.21.2.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.21.2.1 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.23.6.1 |
| 04-Jun-2017 |
bouyer | pullup the following revisions, requested by hannken in ticket #2: src/share/man/man9/fstrans.9 1.25 src/sys/kern/vfs_mount.c 1.66 src/sys/kern/vfs_subr.c 1.468 src/sys/kern/vfs_trans.c 1.46 src/sys/kern/vfs_vnode.c 1.94, 1.95, 1.96 src/sys/kern/vnode_if.c 1.105, 1.106 src/sys/kern/vnode_if.sh 1.65, 1.66 src/sys/kern/vnode_if.src 1.76 src/sys/miscfs/genfs/genfs_io.c 1.69 src/sys/miscfs/genfs/genfs_vnops.c 1.196, 1.197 src/sys/miscfs/genfs/layer_extern.h 1.40 src/sys/miscfs/genfs/layer_vfsops.c 1.51 src/sys/miscfs/genfs/layer_vnops.c 1.67 src/sys/miscfs/nullfs/null_vnops.c 1.42 src/sys/miscfs/overlay/overlay_vnops.c 1.24 src/sys/miscfs/umapfs/umap_vnops.c 1.60 src/sys/rump/include/rump/rumpvnode_if.h 1.29, 1.30 src/sys/rump/librump/rumpkern/emul.c 1.182 src/sys/rump/librump/rumpvfs/rumpvnode_if.c 1.29, 1.30 src/sys/sys/fstrans.h 1.11 src/sys/sys/vnode.h 1.278 src/sys/sys/vnode_if.h 1.100, 1.101 src/sys/sys/vnode_impl.h 1.14, 1.15 src/sys/ufs/lfs/lfs_pages.c 1.12
Vnode state, lock and fstrans cleanup: - Rename vnode state "VS_ACTIVE" to "VS_LOADED" and add synthetic state "VS_ACTIVE" to assert a loaded vnode with usecount > 0.
- Redo FSTRANS in vnode_if.c and use it for VOP_LOCK and VOP_UNLOCK.
- Cleanup the genfs lock operations.
- Make "struct vnode_impl" member "vi_lock" a krwlock_t again.
- Remove the lock type argument from fstrans_start and fstrans_start_nowait, remove now unused FSTRANS state "FSTRANS_SUSPENDING".
|