HardenedBSD/sys/msdosfs
Bruce Evans a176f73d19 Fix panic for `cp -p' by root to an msdos file system. Improve handling
of attributes so that `cp -p' to an msdos file system can succeed under
favourable circumstances (no uid or gid changes and no nonzero flags
except SF_ARCHIVED).

msdosfs_vnops.c:
The in-core inode flags were confused with the on-disk inode flags, so
chflags() clobbered the lock flag and caused a panic.

denode.h, msdosfs_denode.c, msdosfs_vnops.c:
Support the msdosfs archive attibute (ATTR_ARCHIVE) by mapping it to
the complement of the SF_ARCHIVED flag and setting the ATTR_ARCHIVE
bit when a file's modification time is set (but not when a file's
permissions are set; this is the standard wrong DOS behaviour).

denode.h, msdosfs_denode.c:
Remove the DE_UPDAT() macro.  It was only used once, and the corresponding
macro in ufs has already been removed.

denode.h:
Don't change the timestamp for directories in DE_TIMES() (be consistent
with deupdat()).

msdosfs_vnops.c:
Handle chown() better: return EPERM instead of EINVAL if there are
insufficient permissions; otherwise, allow null changes.
1994-12-27 12:37:36 +00:00
..
bootsect.h
bpb.h
denode.h Fix panic for `cp -p' by root to an msdos file system. Improve handling 1994-12-27 12:37:36 +00:00
direntry.h
fat.h
msdosfs_conv.c
msdosfs_denode.c Fix panic for `cp -p' by root to an msdos file system. Improve handling 1994-12-27 12:37:36 +00:00
msdosfs_fat.c
msdosfs_lookup.c
msdosfs_vfsops.c
msdosfs_vnops.c Fix panic for `cp -p' by root to an msdos file system. Improve handling 1994-12-27 12:37:36 +00:00
msdosfsmount.h