Module Name: src Committed By: jdolecek Date: Fri Oct 28 20:38:12 UTC 2016
Modified Files: src/sys/kern: vfs_wapbl.c src/sys/sys: wapbl.h src/sys/ufs/ffs: ffs_alloc.c ffs_inode.c ffs_snapshot.c src/sys/ufs/ufs: ufs_extern.h ufs_inode.c ufs_rename.c ufs_vnops.c ufs_wapbl.h Log Message: reorganize ffs_truncate()/ffs_indirtrunc() to be able to partially succeed; change wapbl_register_deallocation() to return EAGAIN rather than panic when code hits the limit callers changed to either loop calling ffs_truncate() using new utility ufs_truncate_retry() if their semantics requires it, or just ignore the failure; remove ufs_wapbl_truncate() this fixes possible user-triggerable panic during truncate, and resolves WAPBL performance issue with truncates of large files PR kern/47146 and kern/49175 To generate a diff of this commit: cvs rdiff -u -r1.84 -r1.85 src/sys/kern/vfs_wapbl.c cvs rdiff -u -r1.18 -r1.19 src/sys/sys/wapbl.h cvs rdiff -u -r1.152 -r1.153 src/sys/ufs/ffs/ffs_alloc.c cvs rdiff -u -r1.117 -r1.118 src/sys/ufs/ffs/ffs_inode.c cvs rdiff -u -r1.142 -r1.143 src/sys/ufs/ffs/ffs_snapshot.c cvs rdiff -u -r1.82 -r1.83 src/sys/ufs/ufs/ufs_extern.h cvs rdiff -u -r1.96 -r1.97 src/sys/ufs/ufs/ufs_inode.c cvs rdiff -u -r1.12 -r1.13 src/sys/ufs/ufs/ufs_rename.c cvs rdiff -u -r1.232 -r1.233 src/sys/ufs/ufs/ufs_vnops.c cvs rdiff -u -r1.11 -r1.12 src/sys/ufs/ufs/ufs_wapbl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.