freebsd-dev/sys/ufs/ffs
Jeff Roberson 815b74866a Fix a long standing bug in journaled soft-updates. The dirrem structure
needs to handle file removal, directory removal, file move, directory move,
etc.  The code in handle_workitem_remove() needs to propagate any completed
journal entries to the write that will render the change stable.  In the
case of a moved directory this means the new parent.  However, for an
overwrite that frees a directory (DIRCHG) we must move the jsegdep to the
removed inode to be released when it is stable in the cg bitmap or the
unlinked inode list.  This case was previously unhandled and caused a
panic.

Reported by:	mckusick, pho
Reviewed by:	mckusick
Tested by:	pho
2020-01-14 02:00:24 +00:00
..
ffs_alloc.c ufs: add a setter for inode i_flag field 2020-01-13 02:31:51 +00:00
ffs_balloc.c ufs: add a setter for inode i_flag field 2020-01-13 02:31:51 +00:00
ffs_extern.h Update ffs_getcg() function to accept a flags parameter to be passed 2019-10-04 05:28:36 +00:00
ffs_inode.c ufs: add a setter for inode i_flag field 2020-01-13 02:31:51 +00:00
ffs_rawread.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
ffs_snapshot.c ufs: add a setter for inode i_flag field 2020-01-13 02:31:51 +00:00
ffs_softdep.c Fix a long standing bug in journaled soft-updates. The dirrem structure 2020-01-14 02:00:24 +00:00
ffs_subr.c ufs: Remove redundant brelse() after r294954 2019-09-06 08:08:33 +00:00
ffs_suspend.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
ffs_tables.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ffs_vfsops.c ufs: use lazy list instead of active list for syncer 2020-01-13 02:35:15 +00:00
ffs_vnops.c ufs: relax an overzealous assert added in r356671 2020-01-13 14:33:51 +00:00
fs.h Clarify comment that describes how the FS_METACKHASH is managed. 2019-08-13 20:56:44 +00:00
softdep.h Convert use of UFS-specific #ifdef DEBUG to DIAGNOSTIC or INVARIANTS 2019-05-28 16:32:04 +00:00