1. 02 Feb, 2008 11 commits
  2. 08 Feb, 2008 4 commits
  3. 02 Feb, 2008 2 commits
  4. 08 Feb, 2008 23 commits
    • Linus Torvalds's avatar
      Merge branch 'cris' of git://www.jni.nu/cris · 0cf975e1
      Linus Torvalds authored
      * '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.
        ...
      0cf975e1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 03054de1
      Linus Torvalds authored
      * '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.
      03054de1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm · b5eb9513
      Linus Torvalds authored
      * '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)
      b5eb9513
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · dde00137
      Linus Torvalds authored
      * '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
      dde00137
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · f3aafa6c
      Linus Torvalds authored
      * 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
      f3aafa6c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 3668805a
      Linus Torvalds authored
      * 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
        ...
      3668805a
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 7b791d44
      Linus Torvalds authored
      * '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
      7b791d44
    • Jens Axboe's avatar
      splice: missing user pointer access verification · 8811930d
      Jens Axboe authored
      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: default avatarJens Axboe <jens.axboe@oracle.com>
      Cc: Wojciech Purczynski <cliph@research.coseinc.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8811930d
    • Jan Kara's avatar
      quota: turn quotas off when remounting read-only · 66191dc6
      Jan Kara authored
      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: default avatarJan Kara <jack@suse.cz>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66191dc6
    • Neil Brown's avatar
      ext3 can fail badly when device stops accepting BIO_RW_BARRIER requests · 28ae094c
      Neil Brown authored
      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: default avatarNeil Brown <neilb@suse.de>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      28ae094c
    • Eric Sandeen's avatar
      reduce large do_mount stack usage with noinlines · 2dafe1c4
      Eric Sandeen authored
      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: default avatarEric Sandeen <sandeen@redhat.com>
      Cc: Arjan van de Ven <arjan@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2dafe1c4
    • Jeff Dike's avatar
      uml: fix mm_context memory leak · ac2a6599
      Jeff Dike authored
      [ Spotted by Miklos ]
      
      Fix a memory leak in init_new_context.  The struct page ** buffer allocated
      for install_special_mapping was never recorded, and thus leaked when the
      mm_struct was freed.  Fix it by saving the pointer in mm_context_t and freeing
      it in arch_exit_mmap.
      Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ac2a6599
    • Jeff Dike's avatar
      uml: x86_64 should copy %fs during fork · 5aaf5f7b
      Jeff Dike authored
      %fs needs to be copied from parent to child during fork.
      
      Tidied up some whitespace while I was here.
      Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5aaf5f7b
    • Jim Meyering's avatar
      uml: improved error handling while locating temp dir · 11a7ac23
      Jim Meyering authored
      * arch/um/os-Linux/mem.c (make_tempfile): Don't deref NULL upon failed malloc.
      
      * arch/um/os-Linux/mem.c (make_tempfile): Handle NULL tempdir.
      Don't let a long tempdir (e.g., via TMPDIR) provoke heap corruption.
      
      [ jdike - formatting cleanups, deleted obsolete comment ]
      Signed-off-by: default avatarJim Meyering <meyering@redhat.com>
      Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      11a7ac23
    • Jeff Dike's avatar
      uml: style fixes in arch/um/os-Linux · 5134d8fe
      Jeff Dike authored
      Style changes under arch/um/os-Linux:
      	include trimming
      	CodingStyle fixes
      	some printks needed severity indicators
      
      make_tempfile turns out not to be used outside of mem.c, so it is now static.
      Its declaration in tempfile.h is no longer needed, and tempfile.h itself is no
      longer needed.
      
      create_tmp_file was also made static.
      
      checkpatch moans about an EXPORT_SYMBOL in user_syms.c which is part of a
      macro definition - this is copying a bit of kernel infrastructure into the
      libc side of UML because the kernel headers can't be included there.
      Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5134d8fe
    • Jeff Dike's avatar
      uml: runtime host VMSPLIT detection · 536788fe
      Jeff Dike authored
      Calculate TASK_SIZE at run-time by figuring out the host's VMSPLIT - this is
      needed on i386 if UML is to run on hosts with varying VMSPLITs without
      recompilation.
      
      TASK_SIZE is now defined in terms of a variable, task_size.  This gets rid of
      an include of pgtable.h from processor.h, which can cause include loops.
      
      On i386, task_size is calculated early in boot by probing the address space in
      a binary search to figure out where the boundary between usable and non-usable
      memory is.  This tries to make sure that a page that is considered to be in
      userspace is, or can be made, read-write.  I'm concerned about a system-global
      VDSO page in kernel memory being hit and considered to be a userspace page.
      
      On x86_64, task_size is just the old value of CONFIG_TOP_ADDR.
      
      A bunch of config variable are gone now.  CONFIG_TOP_ADDR is directly replaced
      by TASK_SIZE.  NEST_LEVEL is gone since the relocation of the stubs makes it
      irrelevant.  All the HOST_VMSPLIT stuff is gone.  All references to these in
      arch/um/Makefile are also gone.
      
      I noticed and fixed a missing extern in os.h when adding os_get_task_size.
      
      Note: This has been revised to fix the 32-bit UML on 64-bit host bug that
      Miklos ran into.
      Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      536788fe
    • Martin Schwidefsky's avatar
      CONFIG_HIGHPTE vs. sub-page page tables. · 2f569afd
      Martin Schwidefsky authored
      Background: I've implemented 1K/2K page tables for s390.  These sub-page
      page tables are required to properly support the s390 virtualization
      instruction with KVM.  The SIE instruction requires that the page tables
      have 256 page table entries (pte) followed by 256 page status table entries
      (pgste).  The pgstes are only required if the process is using the SIE
      instruction.  The pgstes are updated by the hardware and by the hypervisor
      for a number of reasons, one of them is dirty and reference bit tracking.
      To avoid wasting memory the standard pte table allocation should return
      1K/2K (31/64 bit) and 2K/4K if the process is using SIE.
      
      Problem: Page size on s390 is 4K, page table size is 1K or 2K.  That means
      the s390 version for pte_alloc_one cannot return a pointer to a struct
      page.  Trouble is that with the CONFIG_HIGHPTE feature on x86 pte_alloc_one
      cannot return a pointer to a pte either, since that would require more than
      32 bit for the return value of pte_alloc_one (and the pte * would not be
      accessible since its not kmapped).
      
      Solution: The only solution I found to this dilemma is a new typedef: a
      pgtable_t.  For s390 pgtable_t will be a (pte *) - to be introduced with a
      later patch.  For everybody else it will be a (struct page *).  The
      additional problem with the initialization of the ptl lock and the
      NR_PAGETABLE accounting is solved with a constructor pgtable_page_ctor and
      a destructor pgtable_page_dtor.  The page table allocation and free
      functions need to call these two whenever a page table page is allocated or
      freed.  pmd_populate will get a pgtable_t instead of a struct page pointer.
       To get the pgtable_t back from a pmd entry that has been installed with
      pmd_populate a new function pmd_pgtable is added.  It replaces the pmd_page
      call in free_pte_range and apply_to_pte_range.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2f569afd
    • Andy Whitcroft's avatar
      update checkpatch.pl to version 0.14 · 13214adf
      Andy Whitcroft authored
      This version brings the remainder of the queued fixes.  A number of fixes
      for items missed reported by Andrew Morton and others.  Also a handful
      of new checks and fixes for false positives.  Of note:
      
       - new warning associated with --file to try and avoid cleanup only patches,
       - corrected handling of completly empty files,
       - corrected report handling with multiple files,
       - handling of possible types in the face of multiple declarations,
       - detection of unnessary braces on complex if statements (where present), and
       - all new comment spacing handling.
      
      Andi Kleen (1):
            Introduce a warning when --file mode is used
      
      Andy Whitcroft (14):
            Version: 0.14
            clean up some space violations in checkpatch.pl
            a completly empty file should not provoke a whinge
            reset report lines buffers between files
            unary ++/-- may abutt close braces
            __typeof__ is also unary
            comments: revamp comment handling
            add --summary-file option adding filename to summary line
            trailing backslashes are not trailing statements
            handle operators passed as parameters such as to ASSERTCMP
            possible types -- enhance debugging
            check for boolean operations with constants
            possible types: handle multiple declarations
            detect and report if statements where all branches are single statements
      
      Arjan van de Ven (1):
            quiet option should not print the summary on no errors
      
      Bartlomiej Zolnierkiewicz (1):
            warn about using __FUNCTION__
      
      Timur Tabi (1):
            loosen spacing checks for __asm__
      Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      13214adf
    • Ralf Baechle's avatar
      MIPS: Mark all but i8259 interrupts as no-probe. · 24649c00
      Ralf Baechle authored
      Use set_irq_noprobe() to mark all MIPS interrupts as non-probe.  Override that
      default for i8259 interrupts.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Acked-and-tested-by: default avatarRob Landley <rob@landley.net>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      24649c00
    • Ralf Baechle's avatar
      IRQ_NOPROBE helper functions · 46f4f8f6
      Ralf Baechle authored
      Probing non-ISA interrupts using the handle_percpu_irq as their handle_irq
      method may crash the system because handle_percpu_irq does not check
      IRQ_WAITING.  This for example hits the MIPS Qemu configuration.
      
      This patch provides two helper functions set_irq_noprobe and set_irq_probe to
      set rsp.  clear the IRQ_NOPROBE flag.  The only current caller is MIPS code
      but this really belongs into generic code.
      
      As an aside, interrupt probing these days has become a mostly obsolete if not
      dangerous art.  I think Linux interrupts should be changed to default to
      non-probing but that's subject of this patch.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Acked-and-tested-by: default avatarRob Landley <rob@landley.net>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      46f4f8f6
    • Denis Cheng's avatar
      fs/char_dev.c: chrdev_open marked static and removed from fs.h · 922f9cfa
      Denis Cheng authored
      There is an outdated comment in serial_core.c also fixed.
      Signed-off-by: default avatarDenis Cheng <crquan@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      922f9cfa
    • Patrick McHardy's avatar
      preemptible RCU: sparse annotations · b55ab616
      Patrick McHardy authored
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Dipankar Sarma <dipankar@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b55ab616
    • Jan Kara's avatar
      buffer_head: fix private_list handling · 535ee2fb
      Jan Kara authored
      There are two possible races in handling of private_list in buffer cache.
      
      1) When fsync_buffers_list() processes a private_list, it clears
         b_assoc_mapping and moves buffer to its private list.  Now
         drop_buffers() comes, sees a buffer is on list so it calls
         __remove_assoc_queue() which complains about b_assoc_mapping being
         cleared (as it cannot propagate possible IO error).  This race has been
         actually observed in the wild.
      
      2) When fsync_buffers_list() processes a private_list,
         mark_buffer_dirty_inode() can be called on bh which is already on the
         private list of fsync_buffers_list().  As buffer is on some list (note
         that the check is performed without private_lock), it is not readded to
         the mapping's private_list and after fsync_buffers_list() finishes, we
         have a dirty buffer which should be on private_list but it isn't.  This
         race has not been reported, probably because most (but not all) callers
         of mark_buffer_dirty_inode() hold i_mutex and thus are serialized with
         fsync().
      
      Fix these issues by not clearing b_assoc_map when fsync_buffers_list()
      moves buffer to a dedicated list and by reinserting buffer in private_list
      when it is found dirty after we have submitted buffer for IO.  We also
      change the tests whether a buffer is on a private list from
      !list_empty(&bh->b_assoc_buffers) to bh->b_assoc_map so that they are
      single word reads and hence lockless checks are safe.
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Cc: Nick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      535ee2fb