1
linux/fs/xfs/linux-2.6
Eric Sandeen ae23a5e87d [XFS] Pack some shortform dir2 structures for the ARM old ABI
architecture.

This should fix the longstanding issues with xfs and old ABI arm boxes,
which lead to various asserts and xfs shutdowns, and for which an
(incorrect) patch has been floating around for years.

I've verified this patch by comparing the on-disk structure layouts using
pahole from the dwarves package, as well as running through a bit of xfsqa
under qemu-arm, modified so that the check/repair phase after each test
actually executes check/repair from the x86 host, on the filesystem
populated by the arm emulator. Thus far it all looks good.

There are 2 other structures with extra padding at the end, but they don't
seem to cause trouble. I suppose they could be packed as well:
xfs_dir2_data_unused_t and xfs_dir2_sf_t.

Note that userspace needs a similar treatment, and any filesystems which
were running with the previous rogue "fix" will now see corruption (either
in the kernel, or during xfs_repair) with this fix properly in place; it
may be worth teaching xfs_repair to identify and fix that specific issue.

SGI-PV: 982930

SGI-Modid: xfs-linux-melb:xfs-kern:31280a

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
2008-07-28 16:58:50 +10:00
..
kmem.c [XFS] kmem_free and kmem_realloc to use const void * 2008-07-28 16:58:43 +10:00
kmem.h [XFS] kmem_free and kmem_realloc to use const void * 2008-07-28 16:58:43 +10:00
mrlock.h [XFS] shrink mrlock_t 2008-04-29 15:54:02 +10:00
mutex.h
sema.h Convert asm/semaphore.h users to linux/semaphore.h 2008-04-18 22:22:54 -04:00
sv.h [XFS] Collapse sv_init and init_sv into just the one interface. 2006-09-28 11:05:52 +10:00
time.h
xfs_aops.c [XFS] Remove unused wbc parameter from xfs_start_page_writeback() 2008-07-28 16:58:09 +10:00
xfs_aops.h [XFS] move v_iocount from bhv_vnode to xfs_inode 2007-10-16 11:38:56 +10:00
xfs_buf.c [XFS] sort out opening and closing of the block devices 2008-07-28 16:58:25 +10:00
xfs_buf.h [XFS] sort out opening and closing of the block devices 2008-07-28 16:58:25 +10:00
xfs_cred.h [XFS] Replace __inline with inline 2008-04-18 11:51:15 +10:00
xfs_dmapi_priv.h [XFS] Remove KERNEL_VERSION macros from xfs_dmapi.h 2006-11-11 18:05:06 +11:00
xfs_export.c [XFS] Return case-insensitive match for dentry cache 2008-07-28 16:58:40 +10:00
xfs_export.h xfs: new export ops 2007-10-22 08:13:20 -07:00
xfs_file.c [XFS] Fix fsync() b0rkage. 2008-05-23 15:25:25 +10:00
xfs_fs_subr.c [XFS] vnode cleanup in xfs_fs_subr.c 2008-04-18 11:39:03 +10:00
xfs_fs_subr.h [XFS] decontaminate vnode operations from behavior details 2007-10-15 16:54:29 +10:00
xfs_globals.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_globals.h [XFS] Remove xfs_physmem 2007-10-15 16:40:14 +10:00
xfs_ioctl32.c [XFS] Fix up sparse warnings. 2008-02-07 18:14:38 +11:00
xfs_ioctl32.h [XFS] Fix compiler warning from xfs_file_compat_invis_ioctl prototype. 2006-03-20 13:25:48 +11:00
xfs_ioctl.c [PATCH] sanitize __user_walk_fd() et.al. 2008-07-26 20:53:34 -04:00
xfs_iops.c [XFS] Use the generic xattr methods. 2008-07-28 16:58:49 +10:00
xfs_iops.h [XFS] Use the generic xattr methods. 2008-07-28 16:58:49 +10:00
xfs_linux.h [XFS] Pack some shortform dir2 structures for the ARM old ABI 2008-07-28 16:58:50 +10:00
xfs_lrw.c [patch 3/5] vfs: change remove_suid() to file_remove_suid() 2008-07-26 20:53:16 -04:00
xfs_lrw.h [XFS] remove sendfile leftovers 2008-04-29 16:08:14 +10:00
xfs_stats.c [PATCH] for_each_possible_cpu: xfs 2006-06-23 07:42:45 -07:00
xfs_stats.h [XFS] Replace __inline with inline 2008-04-18 11:51:15 +10:00
xfs_super.c [XFS] Use the generic xattr methods. 2008-07-28 16:58:49 +10:00
xfs_super.h [XFS] Use the generic xattr methods. 2008-07-28 16:58:49 +10:00
xfs_sysctl.c [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00
xfs_sysctl.h [XFS] Concurrent Multi-File Data Streams 2007-07-14 15:40:53 +10:00
xfs_version.h
xfs_vfs.h [XFS] Remove periodic logging of in-core superblock counters. 2008-04-18 12:03:12 +10:00
xfs_vnode.c [XFS] add __init/__exit mark to specific init/cleanup functions 2008-02-07 18:25:19 +11:00
xfs_vnode.h [XFS] Fix fsync() b0rkage. 2008-05-23 15:25:25 +10:00