1. 02 6月, 2012 40 次提交
    • L
      Merge tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd · f5e7e844
      Linus Torvalds 提交于
      Pull mtd update from David Woodhouse:
       - More robust parsing especially of xattr data in JFFS2
       - Updates to mxc_nand and gpmi drivers to support new boards and device tree
       - Improve consistency of information about ECC strength in NAND devices
       - Clean up partition handling of plat_nand
       - Support NAND drivers without dedicated access to OOB area
       - BCH hardware ECC support for OMAP
       - Other fixes and cleanups, and a few new device IDs
      
      Fixed trivial conflict in drivers/mtd/nand/gpmi-nand/gpmi-nand.c due to
      added include files next to each other.
      
      * tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd: (75 commits)
        mtd: mxc_nand: move ecc strengh setup before nand_scan_tail
        mtd: block2mtd: fix recursive call of mtd_writev
        mtd: gpmi-nand: define ecc.strength
        mtd: of_parts: fix breakage in Kconfig
        mtd: nand: fix scan_read_raw_oob
        mtd: docg3 fix in-middle of blocks reads
        mtd: cfi_cmdset_0002: Slight cleanup of fixup messages
        mtd: add fixup for S29NS512P NOR flash.
        jffs2: allow to complete xattr integrity check on first GC scan
        jffs2: allow to discriminate between recoverable and non-recoverable errors
        mtd: nand: omap: add support for hardware BCH ecc
        ARM: OMAP3: gpmc: add BCH ecc api and modes
        mtd: nand: check the return code of 'read_oob/read_oob_raw'
        mtd: nand: remove 'sndcmd' parameter of 'read_oob/read_oob_raw'
        mtd: m25p80: Add support for Winbond W25Q80BW
        jffs2: get rid of jffs2_sync_super
        jffs2: remove unnecessary GC pass on sync
        jffs2: remove unnecessary GC pass on umount
        jffs2: remove lock_super
        mtd: gpmi: add gpmi support for mx6q
        ...
      f5e7e844
    • L
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · 48445159
      Linus Torvalds 提交于
      Pull x86 platform driver updates from Matthew Garrett:
       "Some significant improvements for the Sony driver on newer machines,
        but other than that mostly just minor fixes and a patch to remove the
        broken rfkill code from the Dell driver."
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86: (35 commits)
        apple-gmux: Fix up the suspend/resume patch
        dell-laptop: Remove rfkill code
        toshiba_acpi: Fix mis-merge
        dell-laptop: Add touchpad led support for Dell V3450
        acer-wmi: add 3 laptops to video backlight vendor mode quirk table
        sony-laptop: add touchpad enable/disable function
        sony-laptop: add missing Fn key combos for 0x100 handlers
        sony-laptop: add support for more WWAN modems
        sony-laptop: new keyboard backlight handle
        sony-laptop: add high speed battery charging function
        sony-laptop: support automatic resume on lid open
        sony-laptop: adjust error handling in finding SNC handles
        sony-laptop: add thermal profiles support
        sony-laptop: support battery care functions
        sony-laptop: additional debug statements
        sony-laptop: improve SNC initialization and acpi notify callback code
        sony-laptop: use kstrtoul to parse sysfs values
        sony-laptop: generalise ACPI calls into SNC functions
        sony-laptop: fix return path when no ACPI buffer is allocated
        sony-laptop: use soft rfkill status stored in hw
        ...
      48445159
    • L
      Merge branch 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux · af4f8ba3
      Linus Torvalds 提交于
      Pull slab updates from Pekka Enberg:
       "Mainly a bunch of SLUB fixes from Joonsoo Kim"
      
      * 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
        slub: use __SetPageSlab function to set PG_slab flag
        slub: fix a memory leak in get_partial_node()
        slub: remove unused argument of init_kmem_cache_node()
        slub: fix a possible memory leak
        Documentations: Fix slabinfo.c directory in vm/slub.txt
        slub: fix incorrect return type of get_any_partial()
      af4f8ba3
    • L
      Merge branch 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · efff0471
      Linus Torvalds 提交于
      Pull arm fixes for ux500 mismerge mishap from Arnd Bergmann:
       "The device tree conversion for arm/ux500 in 3.5 turns out to be
        incomplete because of a mismerge done by Linus Walleij that I failed
        to notice early enough and that Lee Jones as the original author of
        those patches did not manage to fix during the -next cycle.  While we
        originally to get a much larger set of ux500 device tree enablement
        patches merged, this did not happen in time.
      
        After some discussion at Linaro Connect conference this week, Lee has
        been able to do damage control and provide a series to put the broken
        platform back into usable shape for both DT and non-DT based booting.
      
        This series has not been part of linux-next and is based on top of the
        current state of the upstream kernel rather than an -rc, but this is
        the best we could manage given the earlier breakage."
      
      * 'ux500/hickup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: ux500: Enable probing of pinctrl through Device Tree
        ARM: ux500: Add support for ab8500 regulators into the Device Tree
        ARM: ux500: Provide regulator support for SMSC911x via Device Tree
        ARM: ux500: Allow PRCMU regulator to be probed during a DT enabled boot
        ARM: ux500: Apply db8500-prcmu regulator information to db8500 Device Tree
        ARM: ux500: Only initialise STE's UIBs on boards which support them
        ARM: ux500: Disable platform setup of the ab8500 when DT is enabled
        ARM: ux500: Use correct format for dynamic IRQ assignment
        ARM: ux500: Re-enable SMSC911x platform code registration during non-DT boots
        ARM: ux500: PRCMU related configuration and layout corrections for Device Tree
        ARM: ux500: Remove DB8500 PRCMU platform registration when DT is enabled
        ARM: ux500: Disable SMSC911x platform code registration when DT is enabled
        ARM: ux500: New DT:ed u8500_init_devices for one-by-one device enablement
        ARM: ux500: New DT:ed snowball_platform_devs for one-by-one device enablement
        pinctrl-nomadik: Allow Device Tree driver probing
      efff0471
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 3ded7acf
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "A bunch of fixes:
         - vmware memory corruption
         - ttm spinlock balance
         - cirrus/mgag200 work in the presence of efifb
        and finally Alex and Jerome managed to track down a magic set of bits
        that on certain rv740 and evergreen cards allow the correct use of the
        complete set of render backends, this makes the cards operate
        correctly in a number of scenarios we had issues in before, it also
        manages to boost speed on benchmarks my large amounts on these
        specific gpus."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/edid: Make the header fixup threshold tunable
        drm/radeon: fix regression in UMS CS ioctl
        drm/vmwgfx: Fix nasty write past alloced memory area
        drm/ttm: Fix spinlock imbalance
        drm/radeon: fixup tiling group size and backendmap on r6xx-r9xx (v4)
        drm/radeon: fix HD6790, HD6570 backend programming
        drm/radeon: properly program gart on rv740, juniper, cypress, barts, hemlock
        drm/radeon: fix bank information in tiling config
        drm/mgag200: kick off conflicting framebuffers earlier.
        drm/cirrus: kick out conflicting framebuffers earlier
        cirrus: avoid crash if driver fails to load
      3ded7acf
    • L
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 37b22400
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "Just a few trivial driver-specific fixes."
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hdspm - Work around broken DDS value on PCI RME MADI
        ALSA: usb-audio: fix rate_list memory leak
        ASoC: fsi: bugfix: ensure dma is terminated
        ASoC: fsi: bugfix: correct dma area
        ASoC: fsi: bugfix: enable master clock control on DMA stream
        ASoC: imx-ssi: Use clk_prepare_enable/clk_disable_unprepare
      37b22400
    • S
      mtd: mxc_nand: move ecc strengh setup before nand_scan_tail · 4a43faf5
      Sascha Hauer 提交于
      Since commit 6a918bad, the mxc_nand driver
      fails with:
      
      Driver must set ecc.strength when using hardware ECC
      
      This is because nand_scan_tail checks for correct ecc strength
      settings, so we must set them up before nand_scan_tail.
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      Cc: stable@vger.kernel.org [3.4+]
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      4a43faf5
    • G
      mtd: block2mtd: fix recursive call of mtd_writev · 2e24e32e
      Gabor Juhos 提交于
      The 'mtd_writev' interface calls the function assigned
      to the '_write' field of a given mtd device if that is
      not NULL. The block2mtd driver sets the '_writev' field
      to the 'mtd_writev' function itself and thus causes a
      endless loop.
      
      This is caused by 1dbebd32
      (mtd: harmonize mtd_writev usage).
      
      Remove the assignment from the block2mtd driver to fix the
      issue.
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Cc: stable@kernel.org [3.3+]
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      2e24e32e
    • M
      mtd: gpmi-nand: define ecc.strength · 5636ce0f
      Marek Vasut 提交于
      Fix an issue which was introduced by the recent addition of ecc.strength.
      
      The ecc.strength wasn't set in gpmi-nand, resulting in the following crash:
      [    2.550000] kernel BUG at drivers/mtd/nand/nand_base.c:3347!
      ...
      [    2.550000] [<c020841c>] (nand_scan_tail+0x328/0x650) from [<c02f68e0>] (gpmi_nand_probe+0x43c/0x5a4)
      [    2.550000] [<c02f68e0>] (gpmi_nand_probe+0x43c/0x5a4) from [<c01f6618>] (platform_drv_probe+0x14/0x18)
      [    2.550000] [<c01f6618>] (platform_drv_probe+0x14/0x18) from [<c01f55b0>] (driver_probe_device+0x74/0x1fc)
      [    2.550000] [<c01f55b0>] (driver_probe_device+0x74/0x1fc) from [<c01f57cc>] (__driver_attach+0x94/0x98)
      [    2.550000] [<c01f57cc>] (__driver_attach+0x94/0x98) from [<c01f3d40>] (bus_for_each_dev+0x50/0x80)
      [    2.550000] [<c01f3d40>] (bus_for_each_dev+0x50/0x80) from [<c01f4e18>] (bus_add_driver+0x188/0x25c)
      [    2.550000] [<c01f4e18>] (bus_add_driver+0x188/0x25c) from [<c01f5a70>] (driver_register+0x78/0x138)
      [    2.550000] [<c01f5a70>] (driver_register+0x78/0x138) from [<c043dc7c>] (gpmi_nand_init+0xc/0x30)
      [    2.550000] [<c043dc7c>] (gpmi_nand_init+0xc/0x30) from [<c0008824>] (do_one_initcall+0x108/0x17c)
      [    2.550000] [<c0008824>] (do_one_initcall+0x108/0x17c) from [<c042a8b8>] (kernel_init+0xfc/0x1bc)
      [    2.550000] [<c042a8b8>] (kernel_init+0xfc/0x1bc) from [<c000fab4>] (kernel_thread_exit+0x0/0x8)
      Signed-off-by: NMarek Vasut <marex@denx.de>
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      5636ce0f
    • M
      apple-gmux: Fix up the suspend/resume patch · a2f01a89
      Matthew Garrett 提交于
      I incorporated the wrong version of the suspend/resume patch for gmux,
      and so lost David Woodhouse's fix to leave the backlight level unchanged
      over suspend/resume. This fixes it up to v2.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      a2f01a89
    • F
      mtd: of_parts: fix breakage in Kconfig · 2e929d00
      Frank Svendsboe 提交于
      MTD_OF_PARTS and the default setting is not working due to using 'Y'
      instead of 'y', introduced in commit
      d6137bad. This made our board, and
      possibly other boards using DTS defined partitions and not having
      CONFIG_MTD_OF_PARTS=y defined in the defconfig, fail to mount root.
      Signed-off-by: NFrank Svendsboe <frank.svendsboe@gmail.com>
      Cc: stable@kernel.org [3.2+]
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      2e929d00
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 86c47b70
      Linus Torvalds 提交于
      Pull third pile of signal handling patches from Al Viro:
       "This time it's mostly helpers and conversions to them; there's a lot
        of stuff remaining in the tree, but that'll either go in -rc2
        (isolated bug fixes, ideally via arch maintainers' trees) or will sit
        there until the next cycle."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
        x86: get rid of calling do_notify_resume() when returning to kernel mode
        blackfin: check __get_user() return value
        whack-a-mole with TIF_FREEZE
        FRV: Optimise the system call exit path in entry.S [ver #2]
        FRV: Shrink TIF_WORK_MASK [ver #2]
        FRV: Prevent syscall exit tracing and notify_resume at end of kernel exceptions
        new helper: signal_delivered()
        powerpc: get rid of restore_sigmask()
        most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set
        set_restore_sigmask() is never called without SIGPENDING (and never should be)
        TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set
        don't call try_to_freeze() from do_signal()
        pull clearing RESTORE_SIGMASK into block_sigmask()
        sh64: failure to build sigframe != signal without handler
        openrisc: tracehook_signal_handler() is supposed to be called on success
        new helper: sigmask_to_save()
        new helper: restore_saved_sigmask()
        new helpers: {clear,test,test_and_clear}_restore_sigmask()
        HAVE_RESTORE_SIGMASK is defined on all architectures now
      86c47b70
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1193755a
      Linus Torvalds 提交于
      Pull vfs changes from Al Viro.
       "A lot of misc stuff.  The obvious groups:
         * Miklos' atomic_open series; kills the damn abuse of
           ->d_revalidate() by NFS, which was the major stumbling block for
           all work in that area.
         * ripping security_file_mmap() and dealing with deadlocks in the
           area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in
           general.
         * ->encode_fh() switched to saner API; insane fake dentry in
           mm/cleancache.c gone.
         * assorted annotations in fs (endianness, __user)
         * parts of Artem's ->s_dirty work (jff2 and reiserfs parts)
         * ->update_time() work from Josef.
         * other bits and pieces all over the place.
      
        Normally it would've been in two or three pull requests, but
        signal.git stuff had eaten a lot of time during this cycle ;-/"
      
      Fix up trivial conflicts in Documentation/filesystems/vfs.txt (the
      'truncate_range' inode method was removed by the VM changes, the VFS
      update adds an 'update_time()' method), and in fs/btrfs/ulist.[ch] (due
      to sparse fix added twice, with other changes nearby).
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)
        nfs: don't open in ->d_revalidate
        vfs: retry last component if opening stale dentry
        vfs: nameidata_to_filp(): don't throw away file on error
        vfs: nameidata_to_filp(): inline __dentry_open()
        vfs: do_dentry_open(): don't put filp
        vfs: split __dentry_open()
        vfs: do_last() common post lookup
        vfs: do_last(): add audit_inode before open
        vfs: do_last(): only return EISDIR for O_CREAT
        vfs: do_last(): check LOOKUP_DIRECTORY
        vfs: do_last(): make ENOENT exit RCU safe
        vfs: make follow_link check RCU safe
        vfs: do_last(): use inode variable
        vfs: do_last(): inline walk_component()
        vfs: do_last(): make exit RCU safe
        vfs: split do_lookup()
        Btrfs: move over to use ->update_time
        fs: introduce inode operation ->update_time
        reiserfs: get rid of resierfs_sync_super
        reiserfs: mark the superblock as dirty a bit later
        ...
      1193755a
    • L
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 4edebed8
      Linus Torvalds 提交于
      Pull Ext4 updates from Theodore Ts'o:
       "The major new feature added in this update is Darrick J Wong's
        metadata checksum feature, which adds crc32 checksums to ext4's
        metadata fields.
      
        There is also the usual set of cleanups and bug fixes."
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (44 commits)
        ext4: hole-punch use truncate_pagecache_range
        jbd2: use kmem_cache_zalloc wrapper instead of flag
        ext4: remove mb_groups before tearing down the buddy_cache
        ext4: add ext4_mb_unload_buddy in the error path
        ext4: don't trash state flags in EXT4_IOC_SETFLAGS
        ext4: let getattr report the right blocks in delalloc+bigalloc
        ext4: add missing save_error_info() to ext4_error()
        ext4: add debugging trigger for ext4_error()
        ext4: protect group inode free counting with group lock
        ext4: use consistent ssize_t type in ext4_file_write()
        ext4: fix format flag in ext4_ext_binsearch_idx()
        ext4: cleanup in ext4_discard_allocated_blocks()
        ext4: return ENOMEM when mounts fail due to lack of memory
        ext4: remove redundundant "(char *) bh->b_data" casts
        ext4: disallow hard-linked directory in ext4_lookup
        ext4: fix potential integer overflow in alloc_flex_gd()
        ext4: remove needs_recovery in ext4_mb_init()
        ext4: force ro mount if ext4_setup_super() fails
        ext4: fix potential NULL dereference in ext4_free_inodes_counts()
        ext4/jbd2: add metadata checksumming to the list of supported features
        ...
      4edebed8
    • A
      x86: get rid of calling do_notify_resume() when returning to kernel mode · 44fbbb3d
      Al Viro 提交于
      If we end up calling do_notify_resume() with !user_mode(refs), it
      does nothing (do_signal() explicitly bails out and we can't get there
      with TIF_NOTIFY_RESUME in such situations).  Then we jump to
      resume_userspace_sig, which rechecks the same thing and bails out
      to resume_kernel, thus breaking the loop.
      
      It's easier and cheaper to check *before* calling do_notify_resume()
      and bail out to resume_kernel immediately.  And kill the check in
      do_signal()...
      
      Note that on amd64 we can't get there with !user_mode() at all - asm
      glue takes care of that.
      Acked-and-reviewed-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      44fbbb3d
    • A
      blackfin: check __get_user() return value · 29bf5dd8
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      29bf5dd8
    • A
      whack-a-mole with TIF_FREEZE · 35d51807
      Al Viro 提交于
      blackfin has reintroduced it, completely unused.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      35d51807
    • D
      FRV: Optimise the system call exit path in entry.S [ver #2] · a2eddc7c
      David Howells 提交于
      Optimise the system call exit path in entry.S by packing some instructions.
      Suggested-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a2eddc7c
    • D
      FRV: Shrink TIF_WORK_MASK [ver #2] · 1e5ef915
      David Howells 提交于
      Shrink TIF_WORK_MASK so that it will fit in the 12-bit signed immediate
      operand field of an ANDI instruction.
      Suggested-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      1e5ef915
    • D
      FRV: Prevent syscall exit tracing and notify_resume at end of kernel exceptions · 137c3c46
      David Howells 提交于
      Move the test for kernel mode processing from do_signal() into entry.S to also
      prevent system call exit tracing and userspace resumption notification handling
      happening when returning from kernel exceptions.
      Reported-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      137c3c46
    • A
      new helper: signal_delivered() · efee984c
      Al Viro 提交于
      Does block_sigmask() + tracehook_signal_handler();  called when
      sigframe has been successfully built.  All architectures converted
      to it; block_sigmask() itself is gone now (merged into this one).
      
      I'm still not too happy with the signature, but that's a separate
      story (IMO we need a structure that would contain signal number +
      siginfo + k_sigaction, so that get_signal_to_deliver() would fill one,
      signal_delivered(), handle_signal() and probably setup...frame() -
      take one).
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      efee984c
    • A
      powerpc: get rid of restore_sigmask() · 17440f17
      Al Viro 提交于
      ... it's just a call of set_current_blocked() now
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      17440f17
    • A
      most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set · 77097ae5
      Al Viro 提交于
      Only 3 out of 63 do not.  Renamed the current variant to __set_current_blocked(),
      added set_current_blocked() that will exclude unblockable signals, switched
      open-coded instances to it.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      77097ae5
    • A
    • A
      6fd84c08
    • A
      don't call try_to_freeze() from do_signal() · bf343dfd
      Al Viro 提交于
      get_signal_to_deliver() will handle it itself
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      bf343dfd
    • A
      pull clearing RESTORE_SIGMASK into block_sigmask() · a610d6e6
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a610d6e6
    • A
      sh64: failure to build sigframe != signal without handler · 5754f412
      Al Viro 提交于
      it's actually "send me SIGSEGV"...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      5754f412
    • A
      openrisc: tracehook_signal_handler() is supposed to be called on success · 39974d08
      Al Viro 提交于
      ... not if sigframe couldn't have been built.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      39974d08
    • A
      new helper: sigmask_to_save() · b7f9a11a
      Al Viro 提交于
      replace boilerplate "should we use ->saved_sigmask or ->blocked?"
      with calls of obvious inlined helper...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b7f9a11a
    • A
      new helper: restore_saved_sigmask() · 51a7b448
      Al Viro 提交于
      first fruits of ..._restore_sigmask() helpers: now we can take
      boilerplate "signal didn't have a handler, clear RESTORE_SIGMASK
      and restore the blocked mask from ->saved_mask" into a common
      helper.  Open-coded instances switched...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      51a7b448
    • A
      new helpers: {clear,test,test_and_clear}_restore_sigmask() · 4ebefe3e
      Al Viro 提交于
      helpers parallel to set_restore_sigmask(), used in the next commits
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      4ebefe3e
    • A
      HAVE_RESTORE_SIGMASK is defined on all architectures now · 754421c8
      Al Viro 提交于
      Everyone either defines it in arch thread_info.h or has TIF_RESTORE_SIGMASK
      and picks default set_restore_sigmask() in linux/thread_info.h.  Kill the
      ifdefs, slap #error in linux/thread_info.h to catch breakage when new ones
      get merged.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      754421c8
    • M
      dell-laptop: Remove rfkill code · a6c2390c
      Matthew Garrett 提交于
      The interface just doesn't work on some machines, and Dell haven't been
      able to tell us either which machines those are or what we should be
      doing instead. This would be fine, except it results in userspace ending
      up confused and general sadness. So let's just rip it out for now.
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      a6c2390c
    • M
      nfs: don't open in ->d_revalidate · 0ef97dcf
      Miklos Szeredi 提交于
      NFSv4 can't do reliable opens in d_revalidate, since it cannot know whether a
      mount needs to be followed or not.  It does check d_mountpoint() on the dentry,
      which can result in a weird error if the VFS found that the mount does not in
      fact need to be followed, e.g.:
      
        # mount --bind /mnt/nfs /mnt/nfs-clone
        # echo something > /mnt/nfs/tmp/bar
        # echo x > /tmp/file
        # mount --bind /tmp/file /mnt/nfs-clone/tmp/bar
        # cat  /mnt/nfs/tmp/bar
        cat: /mnt/nfs/tmp/bar: Not a directory
      
      Which should, by any sane filesystem, result in "something" being printed.
      
      So instead do the open in f_op->open() and in the unlikely case that the cached
      dentry turned out to be invalid, drop the dentry and return EOPENSTALE to let
      the VFS retry.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      CC: Trond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0ef97dcf
    • M
      vfs: retry last component if opening stale dentry · 16b1c1cd
      Miklos Szeredi 提交于
      NFS optimizes away d_revalidates for last component of open.  This means that
      open itself can find the dentry stale.
      
      This patch allows the filesystem to return EOPENSTALE and the VFS will retry the
      lookup on just the last component if possible.
      
      If the lookup was done using RCU mode, including the last component, then this
      is not possible since the parent dentry is lost.  In this case fall back to
      non-RCU lookup.  Currently this is not used since NFS will always leave RCU
      mode.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      16b1c1cd
    • M
      vfs: nameidata_to_filp(): don't throw away file on error · 50ee93af
      Miklos Szeredi 提交于
      If open fails, don't put the file.  This allows it to be reused if open needs to
      be retried.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      50ee93af
    • M
      vfs: nameidata_to_filp(): inline __dentry_open() · 91daee98
      Miklos Szeredi 提交于
      Copy __dentry_open() into nameidata_to_filp().
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      91daee98
    • M
      vfs: do_dentry_open(): don't put filp · 78f71eff
      Miklos Szeredi 提交于
      Move put_filp() out to __dentry_open(), the only caller now.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      78f71eff
    • M
      vfs: split __dentry_open() · 90ad1a8e
      Miklos Szeredi 提交于
      Split __dentry_open() into two functions:
      
        do_dentry_open() - does most of the actual work, doesn't put file on failure
        open_check_o_direct() - after a successful open, checks direct_IO method
      
      This will allow i_op->atomic_open to do just the file initialization and leave
      the direct_IO checking to the VFS.
      Signed-off-by: NMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      90ad1a8e