Subject: CVS commit: src
To: None <>
From: Juergen Hannken-Illjes <>
List: source-changes
Date: 05/25/2004 14:55:47
Module Name:	src
Committed By:	hannken
Date:		Tue May 25 14:55:47 UTC 2004

Modified Files:
	src/bin/ls: stat_flags.c
	src/distrib/sets/lists/comp: mi
	src/sbin/dump: traverse.c
	src/sbin/fsck_ffs: fsck.h inode.c pass1.c
	src/share/man/man9: Makefile lock.9 vfsops.9 vnsubr.9
	src/sys/coda: coda_vfsops.c
	src/sys/compat/irix: irix_usema.c
	src/sys/dev: fss.c fssvar.h
	src/sys/fs/adosfs: advfsops.c
	src/sys/fs/cd9660: cd9660_vfsops.c
	src/sys/fs/filecorefs: filecore_vfsops.c
	src/sys/fs/msdosfs: msdosfs_vfsops.c
	src/sys/fs/ntfs: ntfs_vfsops.c
	src/sys/fs/smbfs: smbfs_vfsops.c
	src/sys/fs/union: union_vfsops.c
	src/sys/kern: kern_lock.c vfs_syscalls.c vfs_vnops.c
	src/sys/miscfs/fdesc: fdesc_vfsops.c
	src/sys/miscfs/genfs: genfs_vnops.c
	src/sys/miscfs/kernfs: kernfs_vfsops.c
	src/sys/miscfs/nullfs: null_vfsops.c
	src/sys/miscfs/overlay: overlay_vfsops.c
	src/sys/miscfs/portal: portal_vfsops.c
	src/sys/miscfs/procfs: procfs_vfsops.c
	src/sys/miscfs/specfs: spec_vnops.c specdev.h
	src/sys/miscfs/umapfs: umap_vfsops.c
	src/sys/nfs: nfs_vfsops.c
	src/sys/sys: buf.h lock.h mount.h param.h stat.h vnode.h
	src/sys/ufs: files.ufs
	src/sys/ufs/ext2fs: ext2fs_vfsops.c
	src/sys/ufs/ffs: ffs_alloc.c ffs_balloc.c ffs_bswap.c ffs_extern.h
	    ffs_inode.c ffs_softdep.c ffs_vfsops.c fs.h
	src/sys/ufs/lfs: lfs_vfsops.c
	src/sys/ufs/mfs: mfs_vfsops.c
	src/sys/ufs/ufs: inode.h ufs_bmap.c ufs_extern.h ufs_lookup.c
	    ufs_vnops.c ufsmount.h
	src/sys/uvm: uvm_mmap.c
	src/usr.sbin/fssconfig: fssconfig.8 fssconfig.c
Added Files:
	src/sys/ufs/ffs: ffs_snapshot.c ffs_snapshot.stub.c

Log Message:
Add ffs internal snapshots. Written by Marshall Kirk McKusick for FreeBSD.

- Not enabled by default. Needs kernel option FFS_SNAPSHOT.
- Change parameters of ffs_blkfree.
- Let the copy-on-write functions return an error so spec_strategy
    may fail if the copy-on-write fails.
- Change genfs_*lock*() to use vp->v_vnlock instead of &vp->v_lock.
- Add flag B_METAONLY to VOP_BALLOC to return indirect block buffer.
- Add a function ffs_checkfreefile needed for snapshot creation.
- Add special handling of snapshot files:
    Snapshots may not be opened for writing and the attributes are read-only.
    Use the mtime as the time this snapshot was taken.
    Deny mtime updates for snapshot files.
- Add function transferlockers to transfer any waiting processes from
  one lock to another.
- Add vfsop VFS_SNAPSHOT to take a snapshot and make it accessible through
  a vnode.
- Add snapshot support to ls, fsck_ffs and dump.

Welcome to 2.0F.

Approved by: Jason R. Thorpe <>

To generate a diff of this commit:
cvs rdiff -r1.18 -r1.19 src/bin/ls/stat_flags.c
cvs rdiff -r1.702 -r1.703 src/distrib/sets/lists/comp/mi
cvs rdiff -r1.43 -r1.44 src/sbin/dump/traverse.c
cvs rdiff -r1.37 -r1.38 src/sbin/fsck_ffs/fsck.h
cvs rdiff -r1.46 -r1.47 src/sbin/fsck_ffs/inode.c
cvs rdiff -r1.31 -r1.32 src/sbin/fsck_ffs/pass1.c
cvs rdiff -r1.161 -r1.162 src/share/man/man9/Makefile
cvs rdiff -r1.20 -r1.21 src/share/man/man9/lock.9 src/share/man/man9/vnsubr.9
cvs rdiff -r1.15 -r1.16 src/share/man/man9/vfsops.9
cvs rdiff -r1.37 -r1.38 src/sys/coda/coda_vfsops.c
cvs rdiff -r1.9 -r1.10 src/sys/compat/irix/irix_usema.c
cvs rdiff -r1.7 -r1.8 src/sys/dev/fss.c
cvs rdiff -r1.5 -r1.6 src/sys/dev/fssvar.h
cvs rdiff -r1.16 -r1.17 src/sys/fs/adosfs/advfsops.c
cvs rdiff -r1.14 -r1.15 src/sys/fs/cd9660/cd9660_vfsops.c
cvs rdiff -r1.13 -r1.14 src/sys/fs/filecorefs/filecore_vfsops.c
cvs rdiff -r1.17 -r1.18 src/sys/fs/msdosfs/msdosfs_vfsops.c
cvs rdiff -r1.21 -r1.22 src/sys/fs/ntfs/ntfs_vfsops.c
cvs rdiff -r1.42 -r1.43 src/sys/fs/smbfs/smbfs_vfsops.c
cvs rdiff -r1.18 -r1.19 src/sys/fs/union/union_vfsops.c
cvs rdiff -r1.77 -r1.78 src/sys/kern/kern_lock.c src/sys/kern/vfs_vnops.c
cvs rdiff -r1.208 -r1.209 src/sys/kern/vfs_syscalls.c
cvs rdiff -r1.50 -r1.51 src/sys/miscfs/fdesc/fdesc_vfsops.c
cvs rdiff -r1.85 -r1.86 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -r1.62 -r1.63 src/sys/miscfs/kernfs/kernfs_vfsops.c
cvs rdiff -r1.49 -r1.50 src/sys/miscfs/nullfs/null_vfsops.c
cvs rdiff -r1.24 -r1.25 src/sys/miscfs/overlay/overlay_vfsops.c
cvs rdiff -r1.45 -r1.46 src/sys/miscfs/portal/portal_vfsops.c
cvs rdiff -r1.56 -r1.57 src/sys/miscfs/procfs/procfs_vfsops.c
cvs rdiff -r1.78 -r1.79 src/sys/miscfs/specfs/spec_vnops.c
cvs rdiff -r1.25 -r1.26 src/sys/miscfs/specfs/specdev.h
cvs rdiff -r1.46 -r1.47 src/sys/miscfs/umapfs/umap_vfsops.c
cvs rdiff -r1.139 -r1.140 src/sys/nfs/nfs_vfsops.c
cvs rdiff -r1.72 -r1.73 src/sys/sys/buf.h
cvs rdiff -r1.53 -r1.54 src/sys/sys/lock.h
cvs rdiff -r1.121 -r1.122 src/sys/sys/mount.h
cvs rdiff -r1.196 -r1.197 src/sys/sys/param.h
cvs rdiff -r1.46 -r1.47 src/sys/sys/stat.h
cvs rdiff -r1.122 -r1.123 src/sys/sys/vnode.h
cvs rdiff -r1.2 -r1.3 src/sys/ufs/files.ufs
cvs rdiff -r1.71 -r1.72 src/sys/ufs/ext2fs/ext2fs_vfsops.c
cvs rdiff -r1.75 -r1.76 src/sys/ufs/ffs/ffs_alloc.c
cvs rdiff -r1.34 -r1.35 src/sys/ufs/ffs/ffs_balloc.c
cvs rdiff -r1.27 -r1.28 src/sys/ufs/ffs/ffs_bswap.c
cvs rdiff -r1.38 -r1.39 src/sys/ufs/ffs/ffs_extern.h
cvs rdiff -r1.62 -r1.63 src/sys/ufs/ffs/ffs_inode.c
cvs rdiff -r0 -r1.1 src/sys/ufs/ffs/ffs_snapshot.c \
cvs rdiff -r1.58 -r1.59 src/sys/ufs/ffs/ffs_softdep.c
cvs rdiff -r1.148 -r1.149 src/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -r1.43 -r1.44 src/sys/ufs/ffs/fs.h
cvs rdiff -r1.151 -r1.152 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -r1.59 -r1.60 src/sys/ufs/mfs/mfs_vfsops.c
cvs rdiff -r1.36 -r1.37 src/sys/ufs/ufs/inode.h
cvs rdiff -r1.28 -r1.29 src/sys/ufs/ufs/ufs_bmap.c
cvs rdiff -r1.39 -r1.40 src/sys/ufs/ufs/ufs_extern.h
cvs rdiff -r1.56 -r1.57 src/sys/ufs/ufs/ufs_lookup.c
cvs rdiff -r1.114 -r1.115 src/sys/ufs/ufs/ufs_vnops.c
cvs rdiff -r1.15 -r1.16 src/sys/ufs/ufs/ufsmount.h
cvs rdiff -r1.83 -r1.84 src/sys/uvm/uvm_mmap.c
cvs rdiff -r1.3 -r1.4 src/usr.sbin/fssconfig/fssconfig.8 \

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.