Various disk controllers require their buffers to be aligned to 64 bytes. For buffers allocated in structures, ensure that they are 64-byte aligned. When using malloc to allocate memory, ensure that the returned memory is 64-byte aligned. If it is not 64-byte aligned, allocate an extra 64 bytes of memory so that the allocated structure can be 64-byte aligned within the allocation.
This can be removed if/when the kernel is fixed. Because this problem has existed on one I/O subsystem or another since the 1990's, we are probably stuck with dealing with it forever.
While we are here, we replace the dynamically allocated inode buffer with a buffer allocated in the uufsd structure just as the superblock and cylinder group buffers do.