diff options
author | mckusick <mckusick@FreeBSD.org> | 2012-02-13 01:33:39 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2012-02-13 01:33:39 +0000 |
commit | 80ea6de190c8b732ffca4edf07d1a680ad172b12 (patch) | |
tree | aef169101848e12e422164938f431097dcfa83ec /sys/ufs | |
parent | 635374749a47561c45d92fddeb9c991a896ba2bd (diff) | |
download | FreeBSD-src-80ea6de190c8b732ffca4edf07d1a680ad172b12.zip FreeBSD-src-80ea6de190c8b732ffca4edf07d1a680ad172b12.tar.gz |
Missing conditions in checking whether an inode has been written.
Found and tested by: Peter Holm
MFC after: 2 weeks (to 9 only)
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ffs/ffs_softdep.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c index 8204e0b..9639076 100644 --- a/sys/ufs/ffs/ffs_softdep.c +++ b/sys/ufs/ffs/ffs_softdep.c @@ -7161,13 +7161,16 @@ check_inode_unwritten(inodedep) mtx_assert(&lk, MA_OWNED); if ((inodedep->id_state & (DEPCOMPLETE | UNLINKED)) != 0 || + !LIST_EMPTY(&inodedep->id_dirremhd) || !LIST_EMPTY(&inodedep->id_pendinghd) || !LIST_EMPTY(&inodedep->id_bufwait) || !LIST_EMPTY(&inodedep->id_inowait) || + !TAILQ_EMPTY(&inodedep->id_inoreflst) || !TAILQ_EMPTY(&inodedep->id_inoupdt) || !TAILQ_EMPTY(&inodedep->id_newinoupdt) || !TAILQ_EMPTY(&inodedep->id_extupdt) || !TAILQ_EMPTY(&inodedep->id_newextupdt) || + !TAILQ_EMPTY(&inodedep->id_freeblklst) || inodedep->id_mkdiradd != NULL || inodedep->id_nlinkdelta != 0) return (0); |