freebsd-skq/sys/ufs/ffs
mckusick 3be8dc9e04 Further evaluation of the POSIX spec for fdatasync() shows that it
requires that new data on growing files be accessible. Thus, the
the fsyncdata() system call must update the on-disk inode when the
size of the file has changed.

This commit adds another inode update flag, IN_SIZEMOD, that gets
set any time that the file size changes. If either the IN_IBLKDATA
or the IN_SIZEMOD flag is set when fdatasync() is called, the
associated inode is synchronously written to disk. We could have
overloaded the IN_IBLKDATA flag to also track size changes since
the only (current) use case for these flags are for fsyncdata(),
but it does seem useful for possible future uses to separately
track the file size changes and the inode block pointer changes.

Reviewed by: kib
MFC with: -r361785
Differential revision:  https://reviews.freebsd.org/D25072
2020-06-05 01:00:55 +00:00
..
ffs_alloc.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_balloc.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_extern.h This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00
ffs_inode.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +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 Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_softdep.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
ffs_subr.c This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00
ffs_suspend.c Use the devfs vnode rather than the mntfs vnode for permissions checks. 2020-03-09 15:55:13 +00:00
ffs_tables.c
ffs_vfsops.c This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00
ffs_vnops.c Further evaluation of the POSIX spec for fdatasync() shows that it 2020-06-05 01:00:55 +00:00
fs.h Retire two unused background fsck sysctls. 2020-04-21 17:42:32 +00:00
softdep.h This commit enables a UFS filesystem to do a forcible unmount when 2020-05-25 23:47:31 +00:00