Permalink
Switch branches/tags
Commits on Feb 9, 2008
  1. mm: special mapping nopage

    Nick Piggin committed with Linus Torvalds Feb 9, 2008
    Convert special mapping install from nopage to fault.
    
    Because the "vm_file" is NULL for the special mapping, the generic VM
    code has messed up "vm_pgoff" thinking that it's an anonymous mapping
    and the offset does't matter.  For that reason, we need to undo the
    vm_pgoff offset that got added into vmf->pgoff.
    
    [ We _really_ should clean that up - either by making this whole special
      mapping code just use a real file entry rather than that ugly array of
      "struct page" pointers, or by just making the VM code realize that
      even if vm_file is NULL it may not be a regular anonymous mmap.
    							 - Linus ]
    
    Signed-off-by: Nick Piggin <npiggin@suse.de>
    Cc: linux-mm@kvack.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Feb 8, 2008
  1. Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/g…

    Linus Torvalds committed Feb 8, 2008
    …it/aegl/linux-2.6
    
    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
      [IA64] Fix large MCA bootmem allocation
      [IA64] Simplify cpu_idle_wait
      [IA64] Synchronize RBS on PTRACE_ATTACH
      [IA64] Synchronize kernel RSE to user-space and back
      [IA64] Rename TIF_PERFMON_WORK back to TIF_NOTIFY_RESUME
      [IA64] Wire up timerfd_{create,settime,gettime} syscalls
  2. x86: fix pgtable_t build breakage

    Ingo Molnar committed with Linus Torvalds Feb 8, 2008
    Commit 2f569af ("CONFIG_HIGHPTE vs.
    sub-page page tables") caused some build breakage due to pgtable_t only
    getting declared in the CONFIG_X86_PAE case.
    
    Move the declaration outside the PAE section.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  3. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    Linus Torvalds committed Feb 8, 2008
    …/git/roland/infiniband
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
      IB/core: Remove unused struct ib_device.flags member
      IB/core: Add IP checksum offload support
      IPoIB: Add send gather support
      IPoIB: Add high DMA feature flag
      IB/mlx4: Use multiple WQ blocks to post smaller send WQEs
      mlx4_core: Clean up struct mlx4_buf
      mlx4_core: For 64-bit systems, vmap() kernel queue buffers
      IB/mlx4: Consolidate code to get an entry from a struct mlx4_buf
  4. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    Linus Torvalds committed Feb 8, 2008
    …/git/cooloney/blackfin-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (24 commits)
      [Blackfin] arch: import defines for BF547 -- it is just like the BF548, but no CAN
      [Blackfin] arch: fix build fails only include header files when enabled
      [Blackfin] arch: declare default INSTALL_PATH for Blackfin ports
      [Blackfin] arch: Encourage users to use the spidev character driver: Provide platform support
      [Blackfin] arch: Enable UART2 and UART3 for bf548
      [Blackfin] arch: Enable NET2272 on BF561-EZkit - remove request_mem_region
      [Blackfin] arch:Fix BUG [#3876] pfbutton test for BTN3 on bf533 don't show complete info
      [Blackfin] arch: remove duplicated definitions of the line discipline numbers N_* in asm-blackfin/termios.h
      [Blackfin] arch: fix building with mtd uclinux by putting the mtd_phys option into the function it actually gets used in
      [Blackfin] arch: simpler header and update dates
      [Blackfin] arch: move the init sections to the end of memory
      [Blackfin] arch: change the trace buffer control start/stop logic in the exception handlers
      [Blackfin] arch: fix typo in printk message
      [Blackfin] arch: this is an ezkit, not a stamp, so fixup the init function name
      [Blackfin] arch: add slightly better help text for CPLB_INFO
      [Blackfin] arch: Fix BUG - Enable ISP1362 driver to work ok with BF561
      [Blackfin] arch: Fix header file information
      [Blackfin] arch: Add Support for ISP1362
      [Blackfin] arch: add support for cmdline partitioning to the BF533-STAMP flash map driver and enable it as a module by default
      [Blackfin] arch: hook up set_irq_wake in Blackfin's irq code
      ...
  5. DCA: convert struct class_device to struct device.

    kaysievers committed with Linus Torvalds Feb 8, 2008
    Thanks to Kay for keeping us honest.
    
    Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
    Cc: "Williams, Dan J" <dan.j.williams@intel.com>
    Acked-by: Greg KH <greg@kroah.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  6. x25_asy: Fix ref count rule violation

    Alan-Cox committed with Linus Torvalds Feb 8, 2008
    x25_asy does not take an ldisc reference before calling the flush method.
    Fix it to use the helper function we provide.
    
    Signed-off-by: Alan Cox <alan@redhat.com>
    Cc: Krzysztof Halasa <khc@pm.waw.pl>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Jeff Garzik <jeff@garzik.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  7. lib/scatterlist.o needed by a module only - link it in unconditionally

    Guennadi Liakhovetski committed with Linus Torvalds Feb 8, 2008
    lib/scatterlist.c is needed by drivers/media/video/videobuf-dma-sg.c, and
    we would like to be able to use the latter without PCI too, for example, on
    PXA270 ARM CPU.  It is then possible to create a configuration with
    CONFIG_BLOCK=n, where only module code will need scatterlist.c.  Therefore
    it must be in obj-y.
    
    Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@pengutronix.de>
    Acked-by: Jens Axboe <jens.axboe@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  8. fix xtensa timerfd breakage

    Adrian Bunk committed with Linus Torvalds Feb 8, 2008
    In file included from /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/xtensa/kernel/syscall.c:39:
    include2/asm/unistd.h:681: error: 'sys_timerfd' undeclared here (not in a function)
    
    Signed-off-by: Adrian Bunk <bunk@kernel.org>
    Cc: Christian Zankel <chris@zankel.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  9. Fix FRV cmpxchg_local

    Mathieu Desnoyers committed with Linus Torvalds Feb 8, 2008
    Fix the FRV cmpxchg_local by breaking the following header dependency loop :
    
    linux/kernel.h -> linux/bitops.h -> asm-frv/bitops.h -> asm-frv/atomic.h
      -> asm-frv/system.h ->
      asm-generic/cmpxchg_local.h -> typecheck() defined in linux/kernel.h
    
    and
    
    linux/kernel.h -> linux/bitops.h -> asm-frv/bitops.h -> asm-frv/atomic.h ->
      asm-generic/cmpxchg_local.h -> typecheck() defined in linux/kernel.h
    
    In order to fix this :
    - Move the atomic_test_and_ *_mask inlines from asm-frv/atomic.h (why are they
      there at all anyway ? They are not touching atomic_t variables!) to
      asm-frv/bitops.h.
    
    Also fix a build issue with cmpxchg : it does not cast to (unsigned long *)
    like other architectures, to deal with it in the cmpxchg_local macro.
    
    FRV builds fine with this patch.
    
    Thanks to Adrian Bunk <bunk@kernel.org> for spotting this bug.
    
    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
    Cc: Adrian Bunk <bunk@kernel.org>
    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  10. revert "proc: fix the threaded proc self"

    akpm00 committed with Linus Torvalds Feb 8, 2008
    Revert commit c6caeb7 ("proc: fix the
    threaded /proc/self"), since Eric says "The patch really is wrong.
    There is at least one corner case in procps that cares."
    
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: "Guillaume Chazarain" <guichaz@yahoo.fr>
    Cc: "Pavel Emelyanov" <xemul@openvz.org>
    Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
    Cc: Oleg Nesterov <oleg@tv-sign.ru>
    Cc: Roland McGrath <roland@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  11. IB/core: Remove unused struct ib_device.flags member

    Roland Dreier committed Feb 8, 2008
    Avoid confusion about what it might mean, since it's never initialized.
    
    Signed-off-by: Roland Dreier <rolandd@cisco.com>
  12. IB/core: Add IP checksum offload support

    Eli Cohen committed with Roland Dreier Jan 30, 2008
    Add a device capability to show when it can handle checksum offload.
    Also add a send flag for inserting checksums and a csum_ok field to
    the completion record.
    
    Signed-off-by: Eli Cohen <eli@mellanox.co.il>
    Signed-off-by: Roland Dreier <rolandd@cisco.com>
  13. IPoIB: Add send gather support

    Eli Cohen committed with Roland Dreier Jan 30, 2008
    This patch acts as a preparation for using checksum offload for IB
    devices capable of inserting/verifying checksum in IP packets.  The
    patch does not actaully turn on NETIF_F_SG - we defer that to the
    patches adding checksum offload capabilities.
    
    We only add support for send gathers for datagram mode, since existing
    HW does not support checksum offload on connected QPs.
    
    Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
    Signed-off-by: Eli Cohen <eli@mellanox.co.il>
    Signed-off-by: Roland Dreier <rolandd@cisco.com>
  14. IPoIB: Add high DMA feature flag

    Eli Cohen committed with Roland Dreier Jan 30, 2008
    All current InfiniBand devices can handle all DMA addresses, and it's
    hard to imagine anyone would be silly enough to build a new device
    that couldn't.  Therefore, enable the NETIF_F_HIGHDMA feature for IPoIB.
    
    This has no effect for no, but is needed when we enable gather/scatter
    support and checksum stateless offloads.
    
    Signed-off-by: Eli Cohen <eli@mellnaox.co.il>
    Signed-off-by: Roland Dreier <rolandd@cisco.com>
  15. IB/mlx4: Use multiple WQ blocks to post smaller send WQEs

    Jack Morgenstein committed with Roland Dreier Jan 28, 2008
    ConnectX HCA supports shrinking WQEs, so that a single work request
    can be made of multiple units of wqe_shift.  This way, WRs can differ
    in size, and do not have to be a power of 2 in size, saving memory and
    speeding up send WR posting.  Unfortunately, if we do this then the
    wqe_index field in CQEs can't be used to look up the WR ID anymore, so
    our implementation does this only if selective signaling is off.
    
    Further, on 32-bit platforms, we can't use vmap() to make the QP
    buffer virtually contigious. Thus we have to use constant-sized WRs to
    make sure a WR is always fully within a single page-sized chunk.
    
    Finally, we use WRs with the NOP opcode to avoid wrapping around the
    queue buffer in the middle of posting a WR, and we set the
    NoErrorCompletion bit to avoid getting completions with error for NOP
    WRs.  However, NEC is only supported starting with firmware 2.2.232,
    so we use constant-sized WRs for older firmware.  And, since MLX QPs
    only support SEND, we use constant-sized WRs in this case.
    
    When stamping during NOP posting, do stamping following setting of the
    NOP WQE valid bit.
    
    Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Roland Dreier <rolandd@cisco.com>
  16. [IA64] Fix large MCA bootmem allocation

    Russ Anderson committed with Tony Luck Feb 5, 2008
    The MCA code allocates bootmem memory for NR_CPUS, regardless
    of how many cpus the system actually has.  This change allocates
    memory only for cpus that actually exist.
    
    On my test system with NR_CPUS = 1024, reserved memory was reduced by 130944k.
    
    Before: Memory: 27886976k/28111168k available (8282k code, 242304k reserved, 5928k data, 1792k init)
    After:  Memory: 28017920k/28111168k available (8282k code, 111360k reserved, 5928k data, 1792k init)
    
    Signed-off-by: Russ Anderson <rja@sgi.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
  17. [IA64] Simplify cpu_idle_wait

    Tony Luck committed Feb 8, 2008
    This is just Venki's patch[*] for x86 ported to ia64.
    
    * http://marc.info/?l=linux-kernel&m=120249201318159&w=2
    
    Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
  18. [IA64] Synchronize RBS on PTRACE_ATTACH

    ptesarik committed with Tony Luck Dec 12, 2007
    When attaching to a stopped process, the RSE must be explicitly
    synced to user-space, so the debugger can read the correct values.
    
    Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
    CC: Roland McGrath <roland@redhat.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
  19. [IA64] Synchronize kernel RSE to user-space and back

    ptesarik committed with Tony Luck Dec 12, 2007
    This is base kernel patch for ptrace RSE bug. It's basically a backport
    from the utrace RSE patch I sent out several weeks ago. please review.
    
    when a thread is stopped (ptraced), debugger might change thread's user
    stack (change memory directly), and we must avoid the RSE stored in
    kernel to override user stack (user space's RSE is newer than kernel's
    in the case). To workaround the issue, we copy kernel RSE to user RSE
    before the task is stopped, so user RSE has updated data.  we then copy
    user RSE to kernel after the task is resummed from traced stop and
    kernel will use the newer RSE to return to user.
    
    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
    CC: Roland McGrath <roland@redhat.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
  20. [IA64] Rename TIF_PERFMON_WORK back to TIF_NOTIFY_RESUME

    ptesarik committed with Tony Luck Dec 12, 2007
    Since the RSE synchronization will need a TIF_ flag, but all
    
    work-to-be-done bits are already used, so we have to multiplex
    TIF_NOTIFY_RESUME again.
    
    Signed-off-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
  21. [IA64] Wire up timerfd_{create,settime,gettime} syscalls

    Tony Luck committed Feb 6, 2008
    Add ia64 hooks for the new syscalls that were added in
    commit 4d672e7
    
    Signed-off-by: Tony Luck <tony.luck@intel.com>
  22. [Blackfin] arch: import defines for BF547 -- it is just like the BF54…

    Mike Frysinger committed with Bryan Wu Feb 8, 2008
    …8, but no CAN
    
    Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
    Signed-off-by: Bryan Wu <bryan.wu@analog.com>
  23. Merge branch 'cris' of git://www.jni.nu/cris

    Linus Torvalds committed Feb 8, 2008
    * 'cris' of git://www.jni.nu/cris: (158 commits)
      CRIS v32: Remove hwregs/timer_defs.h, it is now architecture specific.
      CRIS v32: Change drivers/i2c.c locking.
      CRIS v32: Rewrite ARTPEC-3 gpio driver to avoid volatiles and general cleanup.
      CRIS: Add new timerfd syscall entries.
      MAINTAINERS: Add my information for the CRIS port.
      CRIS v32: Correct spelling of bandwidth in function name.
      CRIS v32: Clean up nandflash.c for ARTPEC-3 and ETRAX FS.
      CRIS v10: Cleanup of drivers/gpio.c
      CRIS v10: drivers/net/cris/eth_v10.c rename LED defines to CRIS_LED to avoid name clash.
      CRIS: Make io_pwm_set_period members unsigned in etraxgpio.h
      CRIS: Move ETRAX_AXISFLASHMAP to common Kconfig file.
      CRIS: Drop regs parameter from call to profile_tick in kernel/time.c
      CRIS v32: Fix minor formatting issue in mach-a3/io.c
      CRIS v32: Initialize GIO even if we're rambooting in kernel/head.S
      CRIS v32: Remove kernel/arbiter.c, it now exists in machine dependent directory.
      CRIS v32: Minor changes to avoid errors in asm-cris/arch-v32/hwregs/reg_rdwr.h
      CRIS v32: arch-v32/hwregs/intr_vect_defs.h moved to machine dependent directory.
      CRIS v32: Correct offset for TASK_pid in asm-cris/arch-v32/offset.h
      CRIS v32: Move register map header to machine dependent directory.
      CRIS v32: Let compiler know that memory is clobbered after a break op.
      ...
  24. [Blackfin] arch: fix build fails only include header files when enabled

    Mike Frysinger committed with Bryan Wu Feb 8, 2008
    Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
    Signed-off-by: Bryan Wu <bryan.wu@analog.com>
  25. Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block

    Linus Torvalds committed Feb 8, 2008
    * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
      Enhanced partition statistics: documentation update
      Enhanced partition statistics: remove old partition statistics
      Enhanced partition statistics: procfs
      Enhanced partition statistics: sysfs
      Enhanced partition statistics: aoe fix
      Enhanced partition statistics: update partition statitics
      Enhanced partition statistics: core statistics
      block: fixup rq_init() a bit
    
    Manually fixed conflict in drivers/block/aoe/aoecmd.c due to statistics
    support.
  26. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    Linus Torvalds committed Feb 8, 2008
    …/git/teigland/dlm
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
      dlm: add __init and __exit marks to init and exit functions
      dlm: eliminate astparam type casting
      dlm: proper types for asts and basts
      dlm: dlm/user.c input validation fixes
      dlm: fix dlm_dir_lookup() handling of too long names
      dlm: fix overflows when copying from ->m_extra to lvb
      dlm: make find_rsb() fail gracefully when namelen is too large
      dlm: receive_rcom_lock_args() overflow check
      dlm: verify that places expecting rcom_lock have packet long enough
      dlm: validate data in dlm_recover_directory()
      dlm: missing length check in check_config()
      dlm: use proper type for ->ls_recover_buf
      dlm: do not byteswap rcom_config
      dlm: do not byteswap rcom_lock
      dlm: dlm_process_incoming_buffer() fixes
      dlm: use proper C for dlm/requestqueue stuff (and fix alignment bug)
  27. Merge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kerne…

    Linus Torvalds committed Feb 8, 2008
    …l/git/paulus/powerpc
    
    * 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
      [POWERPC] Add arch-specific walk_memory_remove() for 64-bit powerpc
      [POWERPC] Enable hotplug memory remove for 64-bit powerpc
      [POWERPC] Add remove_memory() for 64-bit powerpc
      [POWERPC] Make cell IOMMU fixed mapping printk more useful
      [POWERPC] Fix potential cell IOMMU bug when switching back to default DMA ops
      [POWERPC] Don't enable cell IOMMU fixed mapping if there are no dma-ranges
      [POWERPC] Fix cell IOMMU null pointer explosion on old firmwares
      [POWERPC] spufs: Fix timing dependent false return from spufs_run_spu
      [POWERPC] spufs: No need to have a runnable SPU for libassist update
      [POWERPC] spufs: Update SPU_Status[CISHP] in backing runcntl write
      [POWERPC] spufs: Fix state_mutex leaks
      [POWERPC] Disable G5 NAP mode during SMU commands on U3
  28. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6

    Linus Torvalds committed Feb 8, 2008
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
      [SPARC64]: Make use of the new fs/compat_binfmt_elf.c
      [SPARC64]: Make use of compat_sys_ptrace()
    
    Manually fixed trivial delete/modift conflict in arch/sparc64/kernel/binfmt_elf32.c
  29. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

    Linus Torvalds committed Feb 8, 2008
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits)
      [IPSEC] flow: reorder "struct flow_cache_entry" and remove SLAB_HWCACHE_ALIGN
      [DECNET] ROUTE: remove unecessary alignment
      [IPSEC]: Add support for aes-ctr.
      [ISDN]: fix section mismatch warning in enpci_card_msg
      [TIPC]: declare proto_ops structures as 'const'.
      [TIPC]: Kill unused static inline (x5)
      [TC]: oops in em_meta
      [IPV6] Minor cleanup: remove unused definitions in net/ip6_fib.h
      [IPV6] Minor clenup: remove two unused definitions in net/ip6_route.h
      [AF_IUCV]: defensive programming of iucv_callback_txdone
      [AF_IUCV]: broken send_skb_q results in endless loop
      [IUCV]: wrong irq-disabling locking at module load time
      [CAN]: Minor clean-ups
      [CAN]: Move proto_{,un}register() out of spin-locked region
      [CAN]: Clean up module auto loading
      [IPSEC] flow: Remove an unnecessary ____cacheline_aligned
      [IPV4]: route: fix crash ip_route_input
      [NETFILTER]: xt_iprange: add missing #include
      [NETFILTER]: xt_iprange: fix typo in address family
      [NETFILTER]: nf_conntrack: fix ct_extend ->move operation
      ...
  30. Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/g…

    Linus Torvalds committed Feb 8, 2008
    …it/lenb/linux-acpi-2.6
    
    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
      acer-wmi, tc1100-wmi: select ACPI_WMI
      ACPI: WMI: Improve Kconfig description
      ACPI: DMI: add Panasonic CF-52 and Thinpad X61
      ACPI: thermal: syntax, spelling, kernel-doc
      intel_menlo: build on X86 only
      ACPI: build WMI on X86 only
      ACPI: cpufreq: Print _PPC changes via cpufreq debug layer
      ACPI: add newline to printk
  31. splice: missing user pointer access verification

    Jens Axboe committed with Linus Torvalds Feb 8, 2008
    vmsplice_to_user() must always check the user pointer and length
    with access_ok() before copying. Likewise, for the slow path of
    copy_from_user_mmap_sem() we need to check that we may read from
    the user region.
    
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
    Cc: Wojciech Purczynski <cliph@research.coseinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  32. quota: turn quotas off when remounting read-only

    jankara committed with Linus Torvalds Feb 8, 2008
    Turn off quotas before filesystem is remounted read only.  Otherwise quota
    will try to write to read-only filesystem which does no good...  We could
    also just refuse to remount ro when quota is enabled but turning quota off
    is consistent with what we do on umount.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Cc: <stable@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  33. ext3 can fail badly when device stops accepting BIO_RW_BARRIER requests

    neilbrown committed with Linus Torvalds Feb 8, 2008
    Some devices - notably dm and md - can change their behaviour in response
    to BIO_RW_BARRIER requests.  They might start out accepting such requests
    but on reconfiguration, they find out that they cannot any more.
    
    ext3 (and other filesystems) deal with this by always testing if
    BIO_RW_BARRIER requests fail with EOPNOTSUPP, and retrying the write
    requests without the barrier (probably after waiting for any pending writes
    to complete).
    
    However there is a bug in the handling for this for ext3.
    
    When ext3 (jbd actually) decides to submit a BIO_RW_BARRIER request, it
    sets the buffer_ordered flag on the buffer head.  If the request completes
    successfully, the flag STAYS SET.
    
    Other code might then write the same buffer_head after the device has been
    reconfigured to not accept barriers.  This write will then fail, but the
    "other code" is not ready to handle EOPNOTSUPP errors and the error will be
    treated as fatal.
    
    This can be seen without having to reconfigure a device at exactly the
    wrong time by putting:
    
    		if (buffer_ordered(bh))
    			printk("OH DEAR, and ordered buffer\n");
    
    in the while loop in "commit phase 5" of journal_commit_transaction.
    
    If it ever prints the "OH DEAR ..." message (as it does sometimes for
    me), then that request could (in different circumstances) have failed
    with EOPNOTSUPP, but that isn't tested for.
    
    My proposed fix is to clear the buffer_ordered flag after it has been
    used, as in the following patch.
    
    Signed-off-by: Neil Brown <neilb@suse.de>
    Cc: <linux-ext4@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  34. reduce large do_mount stack usage with noinlines

    Eric Sandeen committed with Linus Torvalds Feb 8, 2008
    do_mount() uses a whopping 616 bytes of stack on x86_64 in 2.6.24-mm1,
    largely thanks to gcc inlining the various helper functions.
    
    noinlining these can slim it down a lot; on my box this patch gets it down
    to 168, which is mostly the struct nameidata nd; left on the stack.
    
    These functions are called only as do_mount() helpers; none of them should
    be in any path that would see a performance benefit from inlining...
    
    Signed-off-by: Eric Sandeen <sandeen@redhat.com>
    Cc: Arjan van de Ven <arjan@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>