Module Name: src Committed By: bouyer Date: Fri Feb 18 19:54:45 UTC 2011
Modified Files: src/sys/sys [bouyer-quota2]: stat.h src/sys/ufs/ffs [bouyer-quota2]: ffs_snapshot.c src/sys/ufs/ufs [bouyer-quota2]: ufs_bmap.c ufs_readwrite.c ufs_vnops.c Log Message: Add a new inode flag, SF_SNAPINVAL, to be set on SF_SNAPSHOT inodes when the snapshot is invalid. Set SF_SNAPSHOT | SF_SNAPINVAL early when initializing a snapshot indode, so that quota are bypassed for allocations on this inode. Set SF_SNAPSHOT | SF_SNAPINVAL (instead of clearing SF_SNAPSHOT) when expuge()ing a snapshot inode, so that userland tools working on the snapshot (e.g. fsck or dump) can properly handle this inode. The main point at this time is to have fsck_ffs -X properly compute quotas; as a bonus persistent snapshots files won't show up in a dump(8) from a snapshot. This may also help speeding up taking snapshots, by bypassing expuge() for snapshot inodes completely (but this needs more thoughs). Briefly discussed with hannken@ in private mail. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.59.8.1 src/sys/sys/stat.h cvs rdiff -u -r1.102.4.6 -r1.102.4.7 src/sys/ufs/ffs/ffs_snapshot.c cvs rdiff -u -r1.48 -r1.48.34.1 src/sys/ufs/ufs/ufs_bmap.c cvs rdiff -u -r1.95 -r1.95.4.1 src/sys/ufs/ufs/ufs_readwrite.c cvs rdiff -u -r1.186.4.1 -r1.186.4.2 src/sys/ufs/ufs/ufs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.