NetBSD/sys/ufs
riastradh 615ae46ef3 Avoid misaligned access to lfs64 on-disk records in memory.
lfs64 directory entries are only 32-bit aligned in order to conserve
space in directory blocks, and we had a hack to stuff a 64-bit inode
in them.  This replaces the hack by __aligned(4) __packed, and goes
further:

1. It's not clear that all the other lfs64 data structures are 64-bit
   aligned on disk to begin with.  We can go through these later and
   upgrade them from

	struct foo64 {
		...
	} __aligned(4) __packed;

	union foo {
		struct foo64 f64;
		...
	};

   to

	struct foo64 {
		...
	};

	union foo {
		struct foo64 f64 __aligned(8);
		...
	} __aligned(4) __packed;

   if we really want to take advantage of 64-bit memory accesses.

   However, the __aligned(4) __packed must remain on the union
   because:

2. We access even the lfs32 data structures via a union that has
   lfs64 members, and it turns out that compilers will assume access
   through a union with 64-bit aligned members implies the whole
   union has 64-bit alignment, even if we're only accessing a 32-bit
   aligned member.
2020-03-21 06:11:05 +00:00
..
chfs UVM locking changes, proposed on tech-kern: 2020-02-23 15:46:38 +00:00
ext2fs Use the module subsystem's ability to process SYSCTL_SETUP() entries to 2020-03-16 21:20:09 +00:00
ffs Use the module subsystem's ability to process SYSCTL_SETUP() entries to 2020-03-16 21:20:09 +00:00
lfs Avoid misaligned access to lfs64 on-disk records in memory. 2020-03-21 06:11:05 +00:00
mfs Use the module subsystem's ability to process SYSCTL_SETUP() entries to 2020-03-16 21:20:09 +00:00
ufs Use the module subsystem's ability to process SYSCTL_SETUP() entries to 2020-03-16 21:20:09 +00:00
Makefile
files.ufs Don't include any of the ufs code if all the dependent filesystems are missing. 2019-06-17 03:32:58 +00:00