12 Oct, 2006

40 commits

  • We have a persistent dribble of reports of this BUG triggering. Its extended
    diagnostics were recently made conditional on CONFIG_DEBUG_VM, which was a bad
    idea - we want to know about it.

    Signed-off-by: Dave Jones
    Cc: Nick Piggin
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Switch the memory policy of the kevent threads to MPOL_DEFAULT while
    leaving the kzalloc of the workqueue structure on interleave. This means
    that all code executed in the context of the kevent thread is allocating
    node local.

    Signed-off-by: Christoph Lameter
    Cc: Christoph Lameter
    Cc: Alok Kataria
    Cc: Andi Kleen
    Cc:
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • This file, ext4.txt, was put together with information from Andrew Morton,
    Andreas Dilger, Suparna Bhattacharya, and Ted Ts'o.

    I copied the mount options, with the exception of "extents", from ext3.txt,
    so if anyone is aware of anything out-of-date, please let me know.

    Signed-off-by: Dave Kleikamp
    Cc: Theodore Ts'o
    Cc: Suparna Bhattacharya
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     
  • Someone's tab key is emitting spaces. Attempt to repair some of the damage.

    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Current error behaviour for ext2 and ext3 filesystems does not fully
    correspond to the documentation and should be fixed.

    According to man 8 mount, ext2 and ext3 file systems allow to set one of 3
    different on-errors behaviours:

    ---- start of quote man 8 mount ----

    errors=continue / errors=remount-ro / errors=panic

    Define the behaviour when an error is encountered. (Either ignore
    errors and just mark the file system erroneous and continue, or remount
    the file system read-only, or panic and halt the system.) The default is
    set in the filesystem superblock, and can be changed using tune2fs(8).

    ---- end of quote ----

    However EXT3_ERRORS_CONTINUE is not read from the superblock, and thus
    ERRORS_CONT is not saved on the sbi->s_mount_opt. It leads to the incorrect
    handle of errors on ext3.

    Then we've checked corresponding code in ext2 and discovered that it is buggy
    as well:

    - EXT2_ERRORS_CONTINUE is not read from the superblock (the same);

    - parse_option() does not clean the alternative values and thus something
    like (ERRORS_CONT|ERRORS_RO) can be set;

    - if options are omitted, parse_option() does not set any of these options.

    Therefore it is possible to set any combination of these options on the ext2:

    - none of them may be set: EXT2_ERRORS_CONTINUE on superblock / empty mount
    options;

    - any of them may be set using mount options;

    - 2 any options may be set: by using EXT2_ERRORS_RO/EXT2_ERRORS_PANIC on the
    superblock and other value in mount options;

    - and finally all three options may be set by adding third option in remount.

    Currently ext2 uses these values only in ext2_error() and it is not leading to
    any noticeable troubles. However somebody may be discouraged when he will try
    to workaround EXT2_ERRORS_PANIC on the superblock by using errors=continue in
    mount options.

    This patch:

    EXT4_ERRORS_CONTINUE should be taken from the superblock as default value for
    error behaviour.

    Signed-off-by: Dmitry Mishin
    Acked-by: Vasily Averin
    Acked-by: Kirill Korotaev
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Mishin
     
  • I assume this means "logical sb block". So call it that.

    I still don't understand the name though. A block is a block. What's
    different about this one?

    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • With CONFIG_LBD=n, sector_div() expands to a plain old divide. But ext4 is
    _not_ passing in a sector_t as the first argument, so...

    fs/built-in.o: In function `ext4_get_group_no_and_offset':
    fs/ext4/balloc.c:39: undefined reference to `__umoddi3'
    fs/ext4/balloc.c:41: undefined reference to `__udivdi3'
    fs/built-in.o: In function `find_group_orlov':
    fs/ext4/ialloc.c:278: undefined reference to `__udivdi3'
    fs/built-in.o: In function `ext4_fill_super':
    fs/ext4/super.c:1488: undefined reference to `__udivdi3'
    fs/ext4/super.c:1488: undefined reference to `__umoddi3'
    fs/ext4/super.c:1594: undefined reference to `__udivdi3'
    fs/ext4/super.c:1601: undefined reference to `__umoddi3'

    Fix that up by calling do_div() directly.

    Also cast the arg to u64. do_div() is only defined on u64, and ext4_fsblk_t
    is supposed to be opaque.

    Note especially the changes to find_group_orlov(). It was attempting to do

    do_div(int, unsigned long long);

    which is royally screwed up. Switched it to plain old divide.

    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Way too big to inline.

    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • move '_hi' bits of block numbers in the larger part of the
    block group descriptor structure

    Signed-off-by: Alexandre Ratchov
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Ratchov
     
  • make block group descriptor larger.

    Signed-off-by: Alexandre Ratchov
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexandre Ratchov
     
  • Similar to ext4, change blocks in JBD2 from sector_t to unsigned long long.

    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • Previously when in-kernel ext4 block type is sector_t, it's only 4 bits long
    under some 32bit arch (when CONFIG_LBD is not on). So we need to check the
    size of sector_t before we read 48bit long on-disk blocks to in-kernel blocks.

    These checks are unnecessary now as we changed the in-kernel blocks to
    unsigned longlong.

    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • Change ext4 in-kernel block type (ext4_fsblk_t) from sector_t to unsigned
    long long. Remove ext4 block type string micro E3FSBLK, replaced with "%llu"

    [akpm@osdl.org: build fix]
    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • In-kernel super block changes to support >32 bit free blocks numbers.

    Signed-off-by: Laurent Vivier
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Alexandre Ratchov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent Vivier
     
  • As we are planning to support 48-bit block numbers for ext4, we need to
    support 48-bit block numbers for extended attributes. In the short term, we
    can do this by reuse (on-disk) 16-bit padding (linux2.i_pad1 currently used
    only by "hurd") as high order bits for xattr. This patch basically does that.

    Signed-off-by: Badari Pulavarty
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Badari Pulavarty
     
  • JBD layer in-kernel block varibles type fixes to support >32 bit block number
    and convert to sector_t type.

    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • Here is the patch to JBD to handle 64 bit block numbers, originally from Zach
    Brown. This patch is useful only after adding support for 64-bit block
    numbers in the filesystem.

    Signed-off-by: Badari Pulavarty
    Signed-off-by: Zach Brown
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zach Brown
     
  • Signed-off-by: Randy Dunlap
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Make it possible to add file preallocation support in future as an RO_COMPAT
    feature by recognizing uninitialized extents as holes and limiting extent
    length to keep the top bit of ee_len free for marking uninitialized extents.

    Signed-off-by: Suparna Bhattacharya
    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Suparna Bhattacharya
     
  • Signed-off-by: Alex Tomas
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Tomas
     
  • Redefine ext3 in-kernel filesystem block type (ext3_fsblk_t) from unsigned
    long to sector_t, to allow kernel to handle >32 bit ext3 blocks.

    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • On disk extents format:
    /*
    * this is extent on-disk structure
    * it's used at the bottom of the tree
    */
    struct ext3_extent {
    __le32 ee_block; /* first logical block extent covers */
    __le16 ee_len; /* number of blocks covered by extent */
    __le16 ee_start_hi; /* high 16 bits of physical block */
    __le32 ee_start; /* low 32 bigs of physical block */
    };

    Signed-off-by: Alex Tomas
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Tomas
     
  • To allow ext4 to build during the transition from jbd to jbd2, we have both
    ext4_jbd.h and ext4_jbd2.h in the tree. We no longer need the former.

    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     
  • Reworked from a patch by Mingming Cao and Randy Dunlap

    Signed-off-By: Randy Dunlap
    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • jbd and jbd2 currently use the same slab names which must be unique. The
    patch below just renames jbd2's slabs.

    Signed-off-by: Johann Lombardi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johann Lombardi
     
  • Mingming Cao originally did this work, and Shaggy reproduced it using some
    scripts from her.

    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • This is a simple copy of the files in fs/jbd to fs/jbd2 and
    /usr/incude/linux/[ext4_]jbd.h to /usr/include/[ext4_]jbd2.h

    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     
  • Originally part of a patch from Mingming Cao and Randy Dunlap. Reorganized
    by Shaggy.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • Mingming Cao originally did this work, and Shaggy reproduced it using some
    scripts from her.

    Signed-off-by: Mingming Cao
    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mingming Cao
     
  • Start of the ext4 patch series. See Documentation/filesystems/ext4.txt for
    details.

    This is a simple copy of the files in fs/ext3 to fs/ext4 and
    /usr/incude/linux/ext3* to /usr/include/ex4*

    Signed-off-by: Dave Kleikamp
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Kleikamp
     
  • commit fe1668ae5bf0145014c71797febd9ad5670d5d05 causes kernel to oops with
    libhugetlbfs test suite. The problem is that hugetlb pages can be shared
    by multiple mappings. Multiple threads can fight over page->lru in the
    unmap path and bad things happen. We now serialize __unmap_hugepage_range
    to void concurrent linked list manipulation. Such serialization is also
    needed for shared page table page on hugetlb area. This patch will fixed
    the bug and also serve as a prepatch for shared page table.

    Signed-off-by: Ken Chen
    Cc: Hugh Dickins
    Cc: David Gibson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen, Kenneth W
     
  • Add suspend_console() and resume_console() to the suspend-to-disk code paths
    so that the users of netconsole can use swsusp with it.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • We got several false bug reports because of enabled
    CONFIG_DETECT_SOFTLOCKUP. Disable soft lockup detection on s390, since it
    doesn't work on a virtualized architecture.

    Cc: Martin Schwidefsky
    Signed-off-by: Heiko Carstens
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • hw_interrupt_type is deprecated in favour of struct irq_chip.

    [mingo@elte.hu: do x86_64 too]
    Acked-by: Thomas Gleixner
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Aneesh Kumar K.V
     
  • scripts/kconfig/lxdialog/util.c fails to build because it uses
    true/false without including stdbool.h:

    kronos:~/src/linux-2.6$ make O=../linux-build-git menuconfig
    GEN /home/kronos/src/linux-build/Makefile
    HOSTCC scripts/kconfig/lxdialog/util.o
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c: In function 'set_classic_theme':
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:68: error: 'true' undeclared (first use in this function)
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:68: error: (Each undeclared identifier is reported only once
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:68: error: for each function it appears in.)
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:70: error: 'false' undeclared (first use in this function)
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c: In function 'set_blackbg_theme':
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:101: error: 'true' undeclared (first use in this function)
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:102: error: 'false' undeclared (first use in this function)
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c: In function 'set_bluetitle_theme':
    /home/kronos/src/linux-2.6/scripts/kconfig/lxdialog/util.c:144: error: 'true' undeclared (first use in this function)
    make[2]: *** [scripts/kconfig/lxdialog/util.o] Error 1
    make[1]: *** [menuconfig] Error 2
    make: *** [menuconfig] Error 2

    Add to dialog.h to fix the breakage.

    Signed-off-by: Luca Tettamanti
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Luca Tettamanti
     
  • memmap_zone_idx() is not used anymore. It was required by an earlier
    version of
    account-for-memmap-and-optionally-the-kernel-image-as-holes.patch but not
    any more.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Arch-independent zone-sizing is using indices instead of symbolic names to
    offset within an array related to zones (max_zone_pfns). The unintended
    impact is that ZONE_DMA and ZONE_NORMAL is initialised on powerpc instead
    of ZONE_DMA and ZONE_HIGHMEM when CONFIG_HIGHMEM is set. As a result, the
    the machine fails to boot but will boot with CONFIG_HIGHMEM turned off.

    The following patch properly initialises the max_zone_pfns[] array and uses
    symbolic names instead of indices in each architecture using
    arch-independent zone-sizing. Two users have successfully booted their
    powerpcs with it (one an ibook G4). It has also been boot tested on x86,
    x86_64, ppc64 and ia64. Please merge for 2.6.19-rc2.

    Credit to Benjamin Herrenschmidt for identifying the bug and rolling the
    first fix. Additional credit to Johannes Berg and Andreas Schwab for
    reporting the problem and testing on powerpc.

    Signed-off-by: Mel Gorman
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Make the necessary changes to AVR32 required by the irq regs stuff.

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • Since commit d1807793e1e7e502e3dc047115e9dbc3b50e4534 we dereference a NULL
    pointer. Coverity id #1432. We set journal to NULL, and use it directly
    afterwards.

    Signed-off-by: Eric Sesterhenn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • Olaf reports that this gave him a black screen.

    Cc: Olaf Hering
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton