alistair23-linux/include
Mingming Cao 1c2bf374a4 [PATCH] ext3_fsblk_t: filesystem, group blocks and bug fixes
Some of the in-kernel ext3 block variable type are treated as signed 4 bytes
int type, thus limited ext3 filesystem to 8TB (4kblock size based).  While
trying to fix them, it seems quite confusing in the ext3 code where some
blocks are filesystem-wide blocks, some are group relative offsets that need
to be signed value (as -1 has special meaning).  So it seem saner to define
two types of physical blocks: one is filesystem wide blocks, another is
group-relative blocks.  The following patches clarify these two types of
blocks in the ext3 code, and fix the type bugs which limit current 32 bit ext3
filesystem limit to 8TB.

With this series of patches and the percpu counter data type changes in the mm
tree, we are able to extend exts filesystem limit to 16TB.

This work is also a pre-request for the recent >32 bit ext3 work, and makes
the kernel to able to address 48 bit ext3 block a lot easier: Simply redefine
ext3_fsblk_t from unsigned long to sector_t and redefine the format string for
ext3 filesystem block corresponding.

Two RFC with a series patches have been posted to ext2-devel list and have
been reviewed and discussed:
http://marc.theaimsgroup.com/?l=ext2-devel&m=114722190816690&w=2

http://marc.theaimsgroup.com/?l=ext2-devel&m=114784919525942&w=2

Patches are tested on both 32 bit machine and 64 bit machine, <8TB ext3 and
>8TB ext3 filesystem(with the latest to be released e2fsprogs-1.39).  Tests
includes overnight fsx, tiobench, dbench and fsstress.

This patch:

Defines ext3_fsblk_t and ext3_grpblk_t, and the printk format string for
filesystem wide blocks.

This patch classifies all block group relative blocks, and ext3_fsblk_t blocks
occurs in the same function where used to be confusing before.  Also include
kernel bug fixes for filesystem wide in-kernel block variables.  There are
some fileystem wide blocks are treated as int/unsigned int type in the kernel
currently, especially in ext3 block allocation and reservation code.  This
patch fixed those bugs by converting those variables to ext3_fsblk_t(unsigned
long) type.

Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-25 10:01:10 -07:00
..
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2006-06-23 07:52:36 -07:00
asm-alpha [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-arm [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-arm26 [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-cris Remove unneeded _syscallX macros from user view in asm-*/unistd.h 2006-04-29 01:51:47 +01:00
asm-frv [PATCH] frv: clean frv unistd.h 2006-06-23 07:42:55 -07:00
asm-generic [PATCH] Define __raw_get_cpu_var and use it 2006-06-25 10:01:01 -07:00
asm-h8300 [PATCH] adjust handle_IRR_event() return type 2006-06-23 07:43:08 -07:00
asm-i386 [PATCH] Make copy_from_user_inatomic NOT zero the tail on i386 2006-06-25 10:01:09 -07:00
asm-ia64 [PATCH] Define __raw_get_cpu_var and use it 2006-06-25 10:01:01 -07:00
asm-m32r [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
asm-m68k [PATCH] m68k: convert VME irq code 2006-06-25 10:00:58 -07:00
asm-m68knommu [PATCH] adjust handle_IRR_event() return type 2006-06-23 07:43:08 -07:00
asm-mips [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-parisc [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-powerpc [PATCH] Define __raw_get_cpu_var and use it 2006-06-25 10:01:01 -07:00
asm-ppc [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-s390 [PATCH] Define __raw_get_cpu_var and use it 2006-06-25 10:01:01 -07:00
asm-sh [PATCH] random: remove SA_SAMPLE_RANDOM from floppy driver 2006-06-25 10:01:00 -07:00
asm-sh64 Remove unneeded _syscallX macros from user view in asm-*/unistd.h 2006-04-29 01:51:47 +01:00
asm-sparc [SBUS]: Rewrite and plug into of_device framework. 2006-06-23 23:15:50 -07:00
asm-sparc64 [PATCH] Define __raw_get_cpu_var and use it 2006-06-25 10:01:01 -07:00
asm-um Merge git://git.infradead.org/hdrcleanup-2.6 2006-06-20 15:10:08 -07:00
asm-v850 [PATCH] adjust handle_IRR_event() return type 2006-06-23 07:43:08 -07:00
asm-x86_64 [PATCH] Define __raw_get_cpu_var and use it 2006-06-25 10:01:01 -07:00
asm-xtensa [PATCH] xtensa: remove verify_area macros 2006-06-23 07:43:02 -07:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [PATCH] ext3_fsblk_t: filesystem, group blocks and bug fixes 2006-06-25 10:01:10 -07:00
math-emu
media Revert include/media changes: Mauro says those ioctls are only used in-kernel(!) 2006-05-06 19:47:57 +01:00
mtd Merge git://git.infradead.org/hdrcleanup-2.6 2006-06-20 15:10:08 -07:00
net [NET]: fix net-core kernel-doc 2006-06-23 02:07:42 -07:00
pcmcia Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
rdma IB/uverbs: Don't serialize with ib_uverbs_idr_mutex 2006-06-17 20:44:49 -07:00
rxrpc
scsi Merge branch 'master' into upstream 2006-06-22 22:11:56 -04:00
sound [ALSA] version 1.0.12rc1 2006-06-22 21:35:11 +02:00
video Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00