1. 10 1月, 2012 4 次提交
    • A
      vfs: new helper - d_make_root() · adc0e91a
      Al Viro 提交于
      d_alloc_root() with iput() in case of allocation failure...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      adc0e91a
    • D
      dcache: use a dispose list in select_parent · b48f03b3
      Dave Chinner 提交于
      select_parent currently abuses the dentry cache LRU to provide
      cleanup features for child dentries that need to be freed. It moves
      them to the tail of the LRU, then tells shrink_dcache_parent() to
      calls __shrink_dcache_sb to unconditionally move them to a dispose
      list (as DCACHE_REFERENCED is ignored). __shrink_dcache_sb() has to
      relock the dentries to move them off the LRU onto the dispose list,
      but otherwise does not touch the dentries that select_parent() moved
      to the tail of the LRU. It then passses the dispose list to
      shrink_dentry_list() which tries to free the dentries.
      
      IOWs, the use of __shrink_dcache_sb() is superfluous - we can build
      exactly the same list of dentries for disposal directly in
      select_parent() and call shrink_dentry_list() instead of calling
      __shrink_dcache_sb() to do that. This means that we avoid long holds
      on the lru lock walking the LRU moving dentries to the dispose list
      We also avoid the need to relock each dentry just to move it off the
      LRU, reducing the numebr of times we lock each dentry to dispose of
      them in shrink_dcache_parent() from 3 to 2 times.
      
      Further, we remove one of the two callers of __shrink_dcache_sb().
      This also means that __shrink_dcache_sb can be moved into back into
      prune_dcache_sb() and we no longer have to handle referenced
      dentries conditionally, simplifying the code.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b48f03b3
    • A
      ceph: d_alloc_root() may fail · 3c5184ef
      Al Viro 提交于
      ... and ceph_init_dentry(NULL) will oops
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      3c5184ef
    • A
      ext4: fix failure exits · 94bf608a
      Al Viro 提交于
      a) leaking root dentry is bad
      b) in case of failed ext4_mb_init() we don't want to do ext4_mb_release()
      c) OTOH, in the same case we *do* want ext4_ext_release()
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      94bf608a
  2. 09 1月, 2012 17 次提交
    • A
      isofs: inode leak on mount failure · 8fdd8c49
      Al Viro 提交于
      d_alloc_root() failure leaves root inode leaked...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      8fdd8c49
    • A
      ext[34]: avoid i_nlink warnings triggered by drop_nlink/inc_nlink kludge in symlink() · 0ce8c010
      Al Viro 提交于
      Both ext3 and ext4 put the half-created symlink inode into the orphan list
      for a while (see the comment in ext[34]_symlink() for gory details).  Then,
      if everything went fine, they pull it out of the orphan list and bump the
      link count back to 1.  The thing is, inc_nlink() is going to complain about
      seeing somebody changing i_nlink from 0 to 1.  With a good reason, since
      normally something like that is a bug.  Explicit set_nlink(inode, 1) does
      the same thing as inc_nlink() here, but it does *not* complain - exactly
      because it should be usable in strange situations like this one.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0ce8c010
    • A
      exofs: oops after late failure in mount · da01636a
      Al Viro 提交于
      We have already set ->s_root, so ->put_super() is going to be called.
      Freeing ->s_fs_info is a bloody bad idea when it's going to be
      dereferenced very shortly...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      da01636a
    • A
      devpts: fix double-free on mount failure · 3850aba7
      Al Viro 提交于
      devpts_kill_sb() is called even if devpts_fill_super() fails;
      we should not do that kfree() in the latter, especially not
      with ->s_fs_info left pointing to freed object.  Double kfree()
      is a Bad Thing(tm)...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      3850aba7
    • A
      ... and the same for gadgetfs · 87da5b32
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      87da5b32
    • A
      functionfs: unfuck failure exits on mount · 5b5f9560
      Al Viro 提交于
      * if you do dput() of root dentry, do *not* follow that with iput() of root
      inode.
      * while we are at it, don't do that dput() at all - you are leaving the pointer
      in ->s_root and your ->kill_sb() will be very unhappy with that.  It will do
      proper dput(), though, so the easiest way is to leave that to it entirely.
      * freeing ->s_fs_info is also best left to ->kill_sb() (which will do it
      anyway), especially since we leave the pointer in place.
      * that xchg() in ->kill_sb() is not a bug per se, but it's a plain and simple
      masturbation with fewer excuses than Onan had...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      5b5f9560
    • L
      Merge tag 'infiniband-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 48fa57ac
      Linus Torvalds 提交于
      infiniband changes for 3.3 merge window
      
      * tag 'infiniband-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        rdma/core: Fix sparse warnings
        RDMA/cma: Fix endianness bugs
        RDMA/nes: Fix terminate during AE
        RDMA/nes: Make unnecessarily global nes_set_pau() static
        RDMA/nes: Change MDIO bus clock to 2.5MHz
        IB/cm: Fix layout of APR message
        IB/mlx4: Fix SL to 802.1Q priority-bits mapping for IBoE
        IB/qib: Default some module parameters optimally
        IB/qib: Optimize locking for get_txreq()
        IB/qib: Fix a possible data corruption when receiving packets
        IB/qib: Eliminate 64-bit jiffies use
        IB/qib: Fix style issues
        IB/uverbs: Protect QP multicast list
      48fa57ac
    • L
      Merge branch 'dma-buf-merge' of git://people.freedesktop.org/~airlied/linux · 8e369672
      Linus Torvalds 提交于
      * 'dma-buf-merge' of git://people.freedesktop.org/~airlied/linux:
        dma-buf: mark EXPERIMENTAL for 1st release.
        dma-buf: Documentation for buffer sharing framework
        dma-buf: Introduce dma buffer sharing mechanism
      8e369672
    • L
      Merge branch 'hwmon-for-linus' of... · 6950d76c
      Linus Torvalds 提交于
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        max1111.c: fix checkpatch warning
        hwmon: (lm75) fix checkpatch warnings
        hwmon: (lm80) fix checkpatch messages
        hwmon: replaced strict_str* with kstr*
        hwmon: (lm75) fix checkpatch warning
        hwmon: (lm75) added error handling
        hwmon: (ltc4261) set data->valid to 0 if error
        hwmon: (f75375s) Add support for F75387SG/RG
        hwmon: (f75375s) Disable setting DC fan control mode for F75373
        hwmon: (f75375s) Initialize pwmX_mode and pwmX_enable if there is no platform data
        hwmon: (f75375s) Fix value range for PWM modes
        hwmon: (f75375s) Use standard sysfs attribute names
        hwmon: (f75375s) Fix checkpatch errors and warnings
        hwmon: (pmbus/zl6100) Only instantiate external temperature sensor if enabled
        hwmon: (pmbus/zl6100) Add support for Ericsson BMR45[0,1] and BMR46[2,3,4]
        hwmon: (pmbus/zl6100) Add support for ZL2005
        hwmon: (pmbus/adm1275) Validate device ID
      6950d76c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · b7d845f8
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (36 commits)
        mfd: Clearing events requires event registers to be writable for da9052-core
        mfd: Fix annotations in da9052-core
        gpiolib: Mark da9052 driver broken
        mfd: Declare da9052_regmap_config for the bus drivers
        MFD: DA9052/53 MFD core module add SPI support v2
        MFD: DA9052/53 MFD core module
        regmap: Add irq_base accessor to regmap_irq
        regmap: Allow drivers to reinitialise the register cache at runtime
        regmap: Add trace event for successful cache reads
        regmap: Allow regmap_update_bits() users to detect changes
        regmap: Report if we actually handled an interrupt in regmap-irq
        regmap: Fix rbtreee build when not using debugfs
        regmap: Provide debugfs dump of the rbtree cache data
        regmap: Do debugfs init before cache init
        regmap: Suppress noop writes in regmap_update_bits()
        regmap: Remove indexed cache type
        regmap: Drop check whether a register is readable in regcache_read
        regmap: Properly round cache_word_size
        regmap: Add support for 10/14 register formating
        regmap: Try cached read before checking if a hardware read is possible
        ...
      b7d845f8
    • L
      Merge tag 'md-3.3' of git://neil.brown.name/md · 2943c833
      Linus Torvalds 提交于
      md update for 3.3
      
      Big change is new hot-replacement.
      A slot in an array can hold 2 devices - one that
      wants-replacement and one that is the replacement.
      Once the replacement is built - either from the
      original or (in the case of errors) from elsewhere,
      the wants-replacement device will be removed.
      
      * tag 'md-3.3' of git://neil.brown.name/md: (36 commits)
        md/raid1: Mark device want_replacement when we see a write error.
        md/raid1: If there is a spare and a want_replacement device, start replacement.
        md/raid1: recognise replacements when assembling arrays.
        md/raid1: handle activation of replacement device when recovery completes.
        md/raid1: Allow a failed replacement device to be removed.
        md/raid1: Allocate spare to store replacement devices and their bios.
        md/raid1:  Replace use of mddev->raid_disks with conf->raid_disks.
        md/raid10: If there is a spare and a want_replacement device, start replacement.
        md/raid10: recognise replacements when assembling array.
        md/raid10: Allow replacement device to be replace old drive.
        md/raid10: handle recovery of replacement devices.
        md/raid10:  Handle replacement devices during resync.
        md/raid10: writes should get directed to replacement as well as original.
        md/raid10: allow removal of failed replacement devices.
        md/raid10: preferentially read from replacement device if possible.
        md/raid10:  change read_balance to return an rdev
        md/raid10: prepare data structures for handling replacement.
        md/raid5: Mark device want_replacement when we see a write error.
        md/raid5: If there is a spare and a want_replacement device, start replacement.
        md/raid5: recognise replacements when assembling array.
        ...
      2943c833
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 98793265
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)
        Kconfig: acpi: Fix typo in comment.
        misc latin1 to utf8 conversions
        devres: Fix a typo in devm_kfree comment
        btrfs: free-space-cache.c: remove extra semicolon.
        fat: Spelling s/obsolate/obsolete/g
        SCSI, pmcraid: Fix spelling error in a pmcraid_err() call
        tools/power turbostat: update fields in manpage
        mac80211: drop spelling fix
        types.h: fix comment spelling for 'architectures'
        typo fixes: aera -> area, exntension -> extension
        devices.txt: Fix typo of 'VMware'.
        sis900: Fix enum typo 'sis900_rx_bufer_status'
        decompress_bunzip2: remove invalid vi modeline
        treewide: Fix comment and string typo 'bufer'
        hyper-v: Update MAINTAINERS
        treewide: Fix typos in various parts of the kernel, and fix some comments.
        clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR
        gpio: Kconfig: drop unknown symbol 'CS5535_GPIO'
        leds: Kconfig: Fix typo 'D2NET_V2'
        sound: Kconfig: drop unknown symbol ARCH_CLPS7500
        ...
      
      Fix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new
      kconfig additions, close to removed commented-out old ones)
      98793265
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm · b4a133da
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/apm:
        x86: Kconfig: drop unknown symbol 'APM_MODULE'
      b4a133da
    • L
      Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · eb59c505
      Linus Torvalds 提交于
      * 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)
        PM / Hibernate: Implement compat_ioctl for /dev/snapshot
        PM / Freezer: fix return value of freezable_schedule_timeout_killable()
        PM / shmobile: Allow the A4R domain to be turned off at run time
        PM / input / touchscreen: Make st1232 use device PM QoS constraints
        PM / QoS: Introduce dev_pm_qos_add_ancestor_request()
        PM / shmobile: Remove the stay_on flag from SH7372's PM domains
        PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
        PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode
        PM: Drop generic_subsys_pm_ops
        PM / Sleep: Remove forward-only callbacks from AMBA bus type
        PM / Sleep: Remove forward-only callbacks from platform bus type
        PM: Run the driver callback directly if the subsystem one is not there
        PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers
        PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
        PM / Sleep: Merge internal functions in generic_ops.c
        PM / Sleep: Simplify generic system suspend callbacks
        PM / Hibernate: Remove deprecated hibernation snapshot ioctls
        PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()
        ARM: S3C64XX: Implement basic power domain support
        PM / shmobile: Use common always on power domain governor
        ...
      
      Fix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused
      XBT_FORCE_SLEEP bit
      eb59c505
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw · 1619ed8f
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:
        GFS2: local functions should be static
        GFS2: We only need one ACL getting function
        GFS2: Fix multi-block allocation
        GFS2: decouple quota allocations from block allocations
        GFS2: split function rgblk_search
        GFS2: Fix up "off by one" in the previous patch
        GFS2: move toward a generic multi-block allocator
        GFS2: O_(D)SYNC support for fallocate
        GFS2: remove vestigial al_alloced
        GFS2: combine gfs2_alloc_block and gfs2_alloc_di
        GFS2: Add non-try locks back to get_local_rgrp
        GFS2: f_ra is always valid in dir readahead function
        GFS2: Fix very unlikley memory leak in ACL xattr code
        GFS2: More automated code analysis fixes
        GFS2: Add readahead to sequential directory traversal
        GFS2: Fix up REQ flags
      1619ed8f
    • L
      Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs · 29ad0de2
      Linus Torvalds 提交于
      * 'for-linus' of git://oss.sgi.com/xfs/xfs: (22 commits)
        xfs: mark the xfssyncd workqueue as non-reentrant
        xfs: simplify xfs_qm_detach_gdquots
        xfs: fix acl count validation in xfs_acl_from_disk()
        xfs: remove unused XBT_FORCE_SLEEP bit
        xfs: remove XFS_QMOPT_DQSUSER
        xfs: kill xfs_qm_idtodq
        xfs: merge xfs_qm_dqinit_core into the only caller
        xfs: add a xfs_dqhold helper
        xfs: simplify xfs_qm_dqattach_grouphint
        xfs: nest qm_dqfrlist_lock inside the dquot qlock
        xfs: flatten the dquot lock ordering
        xfs: implement lazy removal for the dquot freelist
        xfs: remove XFS_DQ_INACTIVE
        xfs: cleanup xfs_qm_dqlookup
        xfs: cleanup dquot locking helpers
        xfs: remove the sync_mode argument to xfs_qm_dqflush_all
        xfs: remove xfs_qm_sync
        xfs: make sure to really flush all dquots in xfs_qm_quotacheck
        xfs: untangle SYNC_WAIT and SYNC_TRYLOCK meanings for xfs_qm_dqflush
        xfs: remove the lid_size field in struct log_item_desc
        ...
      
      Fix up trivial conflict in fs/xfs/xfs_sync.c
      29ad0de2
    • L
      Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 972b2c71
      Linus Torvalds 提交于
      * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)
        reiserfs: Properly display mount options in /proc/mounts
        vfs: prevent remount read-only if pending removes
        vfs: count unlinked inodes
        vfs: protect remounting superblock read-only
        vfs: keep list of mounts for each superblock
        vfs: switch ->show_options() to struct dentry *
        vfs: switch ->show_path() to struct dentry *
        vfs: switch ->show_devname() to struct dentry *
        vfs: switch ->show_stats to struct dentry *
        switch security_path_chmod() to struct path *
        vfs: prefer ->dentry->d_sb to ->mnt->mnt_sb
        vfs: trim includes a bit
        switch mnt_namespace ->root to struct mount
        vfs: take /proc/*/mounts and friends to fs/proc_namespace.c
        vfs: opencode mntget() mnt_set_mountpoint()
        vfs: spread struct mount - remaining argument of next_mnt()
        vfs: move fsnotify junk to struct mount
        vfs: move mnt_devname
        vfs: move mnt_list to struct mount
        vfs: switch pnode.h macros to struct mount *
        ...
      972b2c71
  3. 08 1月, 2012 4 次提交
    • L
      Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 02550d61
      Linus Torvalds 提交于
      devicetree/next changes queued for v3.3 merge window
      
      * tag 'devicetree-for-linus-20120104' of git://git.secretlab.ca/git/linux-2.6:
        ARM: prom.h: Fix build error by removing unneeded header file
        irq: check domain hwirq range for DT translate
        dt: add empty of_get_node/of_put_node functions
        of/pdt: fix section mismatch warning
        i2c-designware: add OF binding support
        dt/i2c: Enumerate some of the known trivial i2c devices
        dt: reform for_each_property to for_each_property_of_node
        ARM/of: allow *machine_desc.dt_compat to be const
        of/base: Take NULL string into account for property with multiple strings
        OF/device-tree: Add some entries to vendor-prefixes.txt
      
      Fix up trivial add-add conflicts in include/linux/of.h
      02550d61
    • L
      Merge tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 2d51daaa
      Linus Torvalds 提交于
      spi changes queued up for v3.3 merge window
      
      * tag 'spi-for-linus-20120104' of git://git.secretlab.ca/git/linux-2.6:
        spi: Fix device unregistration when unregistering the bus master
        spi-topcliff-pch: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor
        spi-topcliff-pch: Support new device LAPIS Semiconductor ML7831 IOH
        spi/omap: Correct the error path
        spi/omap: call pm_runtime_disable in error path and remove
        spi/omap: Use a workqueue per omap2_mcspi controller
      2d51daaa
    • L
      Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6 · fbce1c23
      Linus Torvalds 提交于
      Changes queued in gpio/next for the start of the 3.3 merge window
      
      * tag 'gpio-for-linus-20120104' of git://git.secretlab.ca/git/linux-2.6:
        gpio: Add decode of WM8994 GPIO configuration
        gpio: Convert GPIO drivers to module_platform_driver
        gpio: Fix typo in comment in Samsung driver
        gpio: Explicitly index samsung_gpio_cfgs
        gpio: Add Linus Walleij as gpio co-maintainer
        of: Add device tree selftests
        of: create of_phandle_args to simplify return of phandle parsing data
        gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()
        gpio/microblaze: Eliminate duplication of of_get_named_gpio_flags()
        gpiolib: output basic details and consolidate gpio device drivers
        pch_gpio: Change company name OKI SEMICONDUCTOR to LAPIS Semiconductor
        pch_gpio: Support new device LAPIS Semiconductor ML7831 IOH
        spi/pl022: make the chip deselect handling thread safe
        spi/pl022: add support for pm_runtime autosuspend
        spi/pl022: disable the PL022 block when unused
        spi/pl022: move device disable to workqueue thread
        spi/pl022: skip default configuration before suspending
        spi/pl022: fix build warnings
        spi/pl022: only enable RX interrupts when TX is complete
      fbce1c23
    • L
      Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 7affca35
      Linus Torvalds 提交于
      * 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (73 commits)
        arm: fix up some samsung merge sysdev conversion problems
        firmware: Fix an oops on reading fw_priv->fw in sysfs loading file
        Drivers:hv: Fix a bug in vmbus_driver_unregister()
        driver core: remove __must_check from device_create_file
        debugfs: add missing #ifdef HAS_IOMEM
        arm: time.h: remove device.h #include
        driver-core: remove sysdev.h usage.
        clockevents: remove sysdev.h
        arm: convert sysdev_class to a regular subsystem
        arm: leds: convert sysdev_class to a regular subsystem
        kobject: remove kset_find_obj_hinted()
        m86k: gpio - convert sysdev_class to a regular subsystem
        mips: txx9_sram - convert sysdev_class to a regular subsystem
        mips: 7segled - convert sysdev_class to a regular subsystem
        sh: dma - convert sysdev_class to a regular subsystem
        sh: intc - convert sysdev_class to a regular subsystem
        power: suspend - convert sysdev_class to a regular subsystem
        power: qe_ic - convert sysdev_class to a regular subsystem
        power: cmm - convert sysdev_class to a regular subsystem
        s390: time - convert sysdev_class to a regular subsystem
        ...
      
      Fix up conflicts with 'struct sysdev' removal from various platform
      drivers that got changed:
       - arch/arm/mach-exynos/cpu.c
       - arch/arm/mach-exynos/irq-eint.c
       - arch/arm/mach-s3c64xx/common.c
       - arch/arm/mach-s3c64xx/cpu.c
       - arch/arm/mach-s5p64x0/cpu.c
       - arch/arm/mach-s5pv210/common.c
       - arch/arm/plat-samsung/include/plat/cpu.h
       - arch/powerpc/kernel/sysfs.c
      and fix up cpu_is_hotpluggable() as per Greg in include/linux/cpu.h
      7affca35
  4. 07 1月, 2012 15 次提交