11 Sep, 2007

7 commits


04 Sep, 2007

5 commits


03 Sep, 2007

2 commits

  • Initialise s_flags in get_sb_mtd_aux() from the flags parameter.

    Signed-off-by: David Howells
    Signed-off-by: David Woodhouse

    David Howells
     
  • I've bisected the deadlock when many small appends are done on jffs2 down to
    this commit:

    commit 6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2
    Author: Nick Piggin
    Date: Sun May 6 14:49:04 2007 -0700

    mm: make read_cache_page synchronous

    Ensure pages are uptodate after returning from read_cache_page, which allows
    us to cut out most of the filesystem-internal PageUptodate calls.

    I didn't have a great look down the call chains, but this appears to fixes 7
    possible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in
    ecryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in
    block2mtd. All depending on whether the filler is async and/or can return
    with a !uptodate page.

    It introduced a wait to read_cache_page, as well as a
    read_cache_page_async function equivalent to the old read_cache_page
    without any callers.

    Switching jffs2_gc_fetch_page to read_cache_page_async for the old
    behavior makes the deadlocks go away, but maybe reintroduces the
    use-before-uptodate problem? I don't understand the mm/fs interaction
    well enough to say.

    [It's fine. dwmw2.]

    Signed-off-by: Jason Lunz
    Signed-off-by: David Woodhouse

    Jason Lunz
     

01 Sep, 2007

26 commits

  • Ryusuke Konishi says:

    The recent truncate_complete_page() clears the dirty flag from a page
    before calling a_ops->invalidatepage(),
    ^^^^^^
    static void
    truncate_complete_page(struct address_space *mapping, struct page *page)
    {
    ...
    cancel_dirty_page(page, PAGE_CACHE_SIZE); will call
    a_ops->invalidatepage()
    ...
    }

    and this is disturbing nfs_wb_page_priority() from calling
    nfs_writepage_locked() that is expected to handle the pending
    request (=nfs_page) associated with the page.

    int nfs_wb_page_priority(struct inode *inode, struct page *page, int how)
    {
    ...
    if (clear_page_dirty_for_io(page)) {
    ret = nfs_writepage_locked(page, &wbc);
    if (ret < 0)
    goto out;
    }
    ...
    }

    Since truncate_complete_page() will get rid of the page after
    a_ops->invalidatepage() returns, the request (=nfs_page) associated
    with the page becomes a garbage in nfs_inode->nfs_page_tree.
    ------------------------

    Fix this by ensuring that nfs_wb_page_priority() recognises that it may
    also need to clear out non-dirty pages that have an nfs_page associated
    with them.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • According to the mount(2) man page, the proper error return code for the
    mount(2) system call when the special device name or the mounted-on
    directory name is too long is ENAMETOOLONG.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • The hostname was getting truncated in the new text-based NFS mount API.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • Don't filter the return code from the in-kernel rpcbind or NFS mount
    clients. Return the real error code so that callers of the new NFS
    text-based mount API can apply a useful retry strategy.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • The new text-based NFS mount option parsing logic doesn't recognize any
    valid transport protocols due to a silly mistake in the protocol token
    matching logic. This prevents basic mount requests such as:

    mount.nfs server:/export /mnt -o proto=tcp

    from working with the new text-based NFS mount API.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • This patch fixes an Oops that was reported by Gabriel Barazer.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • This should fix the following Oops reported by Jeff Garzik:

    kernel BUG at fs/nfs/nfs4xdr.c:1040!
    invalid opcode: 0000 [1] SMP
    CPU 0
    Modules linked in: nfs lockd sunrpc af_packet
    ipv6 cpufreq_ondemand acpi_cpufreq battery floppy nvram sg snd_hda_intel
    ata_generic snd_pcm_oss snd_mixer_oss snd_pcm i2c_i801 snd_page_alloc e1000
    firewire_ohci ata_piix i2c_core sr_mod cdrom sata_sil ahci libata sd_mod
    scsi_mod ext3 jbd ehci_hcd uhci_hcd
    Pid: 16353, comm: 10.10.10.1-recl Not tainted 2.6.23-rc3 #1
    RIP: 0010:[] [] :nfs:encode_open+0x1c0/0x330
    RSP: 0018:ffff8100467c5c60 EFLAGS: 00010202
    RAX: ffff81000f89b8b8 RBX: 00000000697a6f6d RCX: ffff81000f89b8b8
    RDX: 0000000000000004 RSI: 0000000000000004 RDI: ffff8100467c5c80
    RBP: ffff8100467c5c80 R08: ffff81000f89bc30 R09: ffff81000f89b83f
    R10: 0000000000000001 R11: ffffffff881e79e0 R12: ffff81003cbd1808
    R13: ffff81000f89b860 R14: ffff81005fc984e0 R15: ffffffff88240af0
    FS: 0000000000000000(0000) GS:ffffffff8052a000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
    CR2: 00002adb9e51a030 CR3: 000000007ea7e000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process 10.10.10.1-recl (pid: 16353, threadinfo ffff8100467c4000, task ffff8100038ce780)
    Stack: ffff81004aeb6a40 ffff81003cbd1808 ffff81003cbd1808 ffffffff88240b5d
    ffff81000f89b8bc ffff81005fc984e8 ffff81000f89bc30 ffff81005fc984e8
    0000000300000000 0000000000000000 0000000000000000 ffff81003cbd1800
    Call Trace:
    [] :nfs:nfs4_xdr_enc_open_noattr+0x6d/0x90
    [] :sunrpc:rpcauth_wrap_req+0x97/0xf0
    [] :nfs:nfs4_xdr_enc_open_noattr+0x0/0x90
    [] :sunrpc:call_transmit+0x18a/0x290
    [] :sunrpc:__rpc_execute+0x6b/0x290
    [] :sunrpc:rpc_do_run_task+0x76/0xd0
    [] :nfs:_nfs4_proc_open+0x76/0x230
    [] :nfs:nfs4_open_recover_helper+0x5e/0xc0
    [] :nfs:nfs4_open_recover+0xe4/0x120
    [] :nfs:nfs4_open_reclaim+0xa4/0xf0
    [] :nfs:nfs4_reclaim_open_state+0x55/0x1b0
    [] :nfs:reclaimer+0x2ca/0x390
    [] :nfs:reclaimer+0x0/0x390
    [] kthread+0x4b/0x80
    [] child_rip+0xa/0x12
    [] kthread+0x0/0x80
    [] child_rip+0x0/0x12

    Code: 0f 0b eb fe 48 89 ef c7 00 00 00 00 02 be 08 00 00 00 e8 79
    RIP [] :nfs:encode_open+0x1c0/0x330
    RSP

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Doh! We can't use cancel_delayed_work_sync because we may have been called
    from an unmount that was being performed by nfs_automount_task.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • I think that I've found and fixed the problem. There is a copy/paste bug in
    vt6421_set_dma_mode() function which causes wrong values to be written to
    PATA_UDMA_TIMING register.

    This patch fixes a copy/paste bug that breaks DMA modes on VT6421 PATA port.

    Signed-off-by: Ondrej Zary
    Acked-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Ondrej Zary
     
  • If you don't terminate a list, bad things happen...

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • After my last patch we have a new header file for HP simulator use.
    Here's code to use it for stuff that used to have `extern' statements
    inline in the code. Functionality should not change with this patch.

    Signed-off-by: Peter Chubb
    Signed-off-by: Tony Luck

    Peter Chubb
     
  • This patch cleans up the `enable early console for SKI' patch
    (471e7a44848f467c9b83adc3463d019d2fa8817f), and
    1. potentially allows the gensparse_defconfig to work again.
    (there are other problems running a generic kernel on Ski)
    2. fixes the `console registered twice' problem.
    3. Cleans up the code by moving the `extern hpsim_cons' declaration to
    a new asm/hpsim.h file.

    Thanks to Jes for comments.

    Signed-off-by: Peter Chubb
    Signed-off-by: Tony Luck

    Peter Chubb
     
  • When dumping memory via sysrq-m it is possible to take a bogus NMI watchdog
    or softlockup watchdog because the dump can take a long time on big memory
    systems.

    Occasionally tickle the watchdog when doing the dump.

    Signed-off-by: Prarit Bhargava
    Signed-off-by: Tony Luck

    Prarit Bhargava
     
  • Add additional support for CPU disable on SN platforms.
    Correctly setup the smp_affinity mask for I/O error IRQs.
    Restrict the use of the feature to Altix 4000 and 450 systems
    running with a CPU disable capable PROM, and do not allow disabling
    of CPU 0.

    Signed-off-by: John Keller
    Signed-off-by: Tony Luck

    John Keller
     
  • vmalloc() returns a void pointer - no need to cast it.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Tony Luck

    Jesper Juhl
     
  • Avoid setting the value if the symbol doesn't need to be changed or can't
    be changed. Later choices may change the dependencies and thus the
    possible input range.

    make oldconfig from a 2.6.22 .config with CONFIG_HOTPLUG_CPU not set
    was in some configurations setting CONFIG_HOTPLUG_CPU=y without asking,
    even when there was no actual requirement for CONFIG_HOTPLUG_CPU.
    This was triggered by SUSPEND_SMP that does a select HOTPLUG_CPU.

    Signed-off-by: Roman Zippel
    Tested-by: Hugh Dickins
    Signed-off-by: Sam Ravnborg

    Roman Zippel
     
  • Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup:
    [x86 setup] Don't rely on the VESA BIOS being register-clean

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/ehca: SRQ fixes to enable IPoIB CM
    IB/ehca: Fix Small QP regressions

    Linus Torvalds
     
  • This avoids the recent NFS mount regression (returning EBUSY when
    mounting the same filesystem twice with different parameters).

    The best I can do given the constraints appears to be to have the kernel
    first look for a superblock that matches both the fsid and the
    user-specified mount options, and then spawn off a new superblock if
    that search fails.

    Note that this is not the same as specifying nosharecache everywhere
    since nosharecache will never attempt to match an existing superblock.

    Signed-off-by: Trond Myklebust
    Tested-by: Hua Zhong
    Signed-off-by: Linus Torvalds

    Trond Myklebust
     
  • lguest didn't initialize the kernel stack the way a real i386 kernel
    does, and ended up triggering a corner-case in the stack frame checking
    that doesn't happen on naive i386, and that the stack dumping didn't
    handle quite right.

    This makes the frame handling more correct, and tries to clarify the
    code at the same time so that it's a bit more obvious what is going on.

    Thanks to Rusty Russell for debugging the lguest failure-

    Cc: Rusty Russell
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The HPET clocksource in drivers/char/hpet.c was written as generic code
    for ia64, but it is not yet ready to replace the native HPET clocksource
    implementations that the i386/x86-64 architectures use.

    On x86[-64], trying to register this clocksource results in potentially
    multiple hpet-based clocksources being registered, and if the ia64 one
    is chosen on x86_64 some users have experienced hangs.

    Eventually all three architectures may end up using the same code, but
    that is not the case right now.

    Cc: John Stultz
    Cc: Tony Luck
    Cc: Paolo Ornati
    Cc: Bob Picco
    Cc: Thomas Gleixner
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
    - cxgb3 engine microcode load
    cxgb3 - Fix dev->priv usage
    qeth: Drop ARP packages on HiperSockets interface with NOARP attribute.
    qeth: provide specific message for OSA-adapters exclusively used
    qeth: crash during reboot after failing online setting
    qeth: Announce tx checksumming for qeth devices in TSO/EDDP mode
    qeth: dont return the return values of void functions.
    qeth: enforce a rate limit for inbound scatter gather messages
    qeth: ungrouping a device must not be interruptible
    netxen: fix crashes during module unload
    netxen: Avoid firmware load in PCI probe
    PS3: fix the bug that 'ifconfig down' would hang
    IOC3: Program UART predividers.

    Linus Torvalds
     
  • Reported by Rick Jones.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Fix ehca SRQ support so that IPoIB connected mode works:

    - Report max_srq > 0 if SRQ is supported
    - Report "last wqe reached" asynchronous event when base QP dies;
    this is required by the IB spec and IPoIB CM relies on receiving it
    when cleaning up.

    Signed-off-by: Joachim Fenkes
    Signed-off-by: Roland Dreier

    Joachim Fenkes
     
  • The new Small QP code had a few bugs that would also make it trigger
    for non-Small QPs. Fix them.

    Signed-off-by: Joachim Fenkes
    Signed-off-by: Roland Dreier

    Stefan Roscher