1. 18 Mar, 2011 5 commits
    • Al Viro's avatar
      change the locking order for namespace_sem · b12cea91
      Al Viro authored
      Have it nested inside ->i_mutex.  Instead of using follow_down()
      under namespace_sem, followed by grabbing i_mutex and checking that
      mountpoint to be is not dead, do the following:
      	grab i_mutex
      	check that it's not dead
      	grab namespace_sem
      	see if anything is mounted there
      	if not, we've won
      	otherwise
      		drop locks
      		put_path on what we had
      		replace with what's mounted
      		retry everything with new mountpoint to be
      
      New helper (lock_mount()) does that.  do_add_mount(), do_move_mount(),
      do_loopback() and pivot_root() switched to it; in case of the last
      two that eliminates a race we used to have - original code didn't
      do follow_down().
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      b12cea91
    • Al Viro's avatar
      fix deadlock in pivot_root() · 27cb1572
      Al Viro authored
      Don't hold vfsmount_lock over the loop traversing ->mnt_parent;
      do check_mnt(new.mnt) under namespace_sem instead; combined with
      namespace_sem held over all that code it'll guarantee the stability
      of ->mnt_parent chain all the way to the root.
      
      Doing check_mnt() outside of namespace_sem in case of pivot_root()
      is wrong anyway.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      27cb1572
    • Al Viro's avatar
      vfs: split off vfsmount-related parts of vfs_kern_mount() · 9d412a43
      Al Viro authored
      new function: mount_fs().  Does all work done by vfs_kern_mount()
      except the allocation and filling of vfsmount; returns root dentry
      or ERR_PTR().
      
      vfs_kern_mount() switched to using it and taken to fs/namespace.c,
      along with its wrappers.
      
      alloc_vfsmnt()/free_vfsmnt() made static.
      
      functions in namespace.c slightly reordered.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9d412a43
    • Tony Luck's avatar
      Some fixes for pstore · fbe0aa1f
      Tony Luck authored
      1) Change from ->get_sb() to ->mount()
      2) Use mount_single() instead of mount_nodev()
      3) Pulled in ramfs_get_inode() & trimmed to what I need for pstore
      4) Drop the ugly pstore_writefile() Just save data using kmalloc() and
         provide a pstore_file_read() that uses simple_read_from_buffer().
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      fbe0aa1f
    • Al Viro's avatar
      kill simple_set_mnt() · 474a00ee
      Al Viro authored
      not needed anymore, since all users (->get_sb() instances) are gone.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      474a00ee
  2. 17 Mar, 2011 8 commits
    • Linus Torvalds's avatar
      Merge branch 'mnt_devname' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 054cfaac
      Linus Torvalds authored
      * 'mnt_devname' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        vfs: bury ->get_sb()
        nfs: switch NFS from ->get_sb() to ->mount()
        nfs: stop mangling ->mnt_devname on NFS
        vfs: new superblock methods to override /proc/*/mount{s,info}
        nfs: nfs_do_{ref,sub}mount() superblock argument is redundant
        nfs: make nfs_path() work without vfsmount
        nfs: store devname at disconnected NFS roots
        nfs: propagate devname to nfs{,4}_get_root()
      054cfaac
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · dc113c1f
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/block: amiflop - Remove superfluous amiga_chip_alloc() cast
        m68k/atari: ARAnyM - Add support for network access
        m68k/atari: ARAnyM - Add support for console access
        m68k/atari: ARAnyM - Add support for block access
        m68k/atari: Initial ARAnyM support
        m68k: Kconfig - Remove unneeded "default n"
        m68k: Makefiles - Change to new flags variables
        m68k/amiga: Reclaim Chip RAM for PPC exception handlers
        m68k: Allow all kernel traps to be handled via exception fixups
        m68k: Use base_trap_init() to initialize vectors
        m68k: Add helper function handle_kernel_fault()
      dc113c1f
    • Linus Torvalds's avatar
      Merge branch 'remove' of master.kernel.org:/home/rmk/linux-2.6-arm · 63a93699
      Linus Torvalds authored
      * 'remove' of master.kernel.org:/home/rmk/linux-2.6-arm:
        ARM: 6629/2: aaec2000: remove support for mach-aaec2000
        ARM: lh7a40x: remove unmaintained platform support
      
      Fix up trivial conflicts in
       - arch/arm/mach-{aaec2000,lh7a40x}/include/mach/memory.h (removed)
       - drivers/usb/gadget/Kconfig (USB_[GADGET_]LH7A40X removed, others added)
      63a93699
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm · 16d87757
      Linus Torvalds authored
      * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (91 commits)
        ARM: 6806/1: irq: introduce entry and exit functions for chained handlers
        ARM: 6781/1: Thumb-2: Work around buggy Thumb-2 short branch relocations in gas
        ARM: 6747/1: P2V: Thumb2 support
        ARM: 6798/1: aout-core: zero thread debug registers in a.out core dump
        ARM: 6796/1: Footbridge: Fix I/O mappings for NOMMU mode
        ARM: 6784/1: errata: no automatic Store Buffer drain on Cortex-A9
        ARM: 6772/1: errata: possible fault MMU translations following an ASID switch
        ARM: 6776/1: mach-ux500: activate fix for errata 753970
        ARM: 6794/1: SPEAr: Append UL to device address macros.
        ARM: 6793/1: SPEAr: Remove unused *_SIZE macros from spear*.h files
        ARM: 6792/1: SPEAr: Replace SIZE macro's with SZ_4K macros
        ARM: 6791/1: SPEAr3xx: Declare device structures after shirq code
        ARM: 6790/1: SPEAr: Clock Framework: Rename usbd clock and align apb_clk entry
        ARM: 6789/1: SPEAr3xx: Rename sdio to sdhci
        ARM: 6788/1: SPEAr: Include mach/hardware.h instead of mach/spear.h
        ARM: 6787/1: SPEAr: Reorder #includes in .h & .c files.
        ARM: 6681/1: SPEAr: add debugfs support to clk API
        ARM: 6703/1: SPEAr: update clk API support
        ARM: 6679/1: SPEAr: make clk API functions more generic
        ARM: 6737/1: SPEAr: formalized timer support
        ...
      16d87757
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · e3455133
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (41 commits)
        m68knommu: external interrupt support to ColdFire intc-simr controller
        m68knommu: external interrupt support to ColdFire intc-2 controller
        m68knommu: remove ColdFire CLOCK_DIV config option
        m68knommu: fix gpio warnings for ColdFire 5407 targets
        m68knommu: fix gpio warnings for ColdFire 532x targets
        m68knommu: fix gpio warnings for ColdFire 5307 targets
        m68knommu: fix gpio warnings for ColdFire 527x targets
        m68knommu: fix gpio warnings for ColdFire 5272 targets
        m68knommu: fix gpio warnings for ColdFire 5249 targets
        m68knommu: fix gpio warnings for ColdFire 523x targets
        m68knommu: fix gpio warnings for ColdFire 520x targets
        m68knommu: fix gpio warnings for ColdFire 5206e targets
        m68knommu: fix gpio warnings for ColdFire 5206 targets
        m68knommu: fixing compiler warnings
        m68knommu: limit interrupts supported by ColdFire intc-simr driver
        m68knommu: move some init code out of unmask routine for ColdFire intc-2
        m68knommu: limit interrupts supported by ColdFire intc-2 driver
        m68knommu: add basic support for the ColdFire based FireBee board
        m68knommu: make ColdFire internal peripheral region configurable
        m68knommu: clean up definitions of ColdFire peripheral base registers
        ...
      e3455133
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 · 242e5d06
      Linus Torvalds authored
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
        [IA64] tioca: Fix assignment from incompatible pointer warnings
        [IA64] mca.c: Fix cast from integer to pointer warning
        [IA64] setup.c Typo fix "Architechtuallly"
        [IA64] Add CONFIG_MISC_DEVICES=y to configs that need it.
        [IA64] disable interrupts at end of ia64_mca_cpe_int_handler()
        [IA64] Add DMA_ERROR_CODE define.
        pstore: fix build warning for unused return value from sysfs_create_file
        pstore: X86 platform interface using ACPI/APEI/ERST
        pstore: new filesystem interface to platform persistent storage
      242e5d06
    • Linus Torvalds's avatar
      Merge branch 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6 · 4c5811bf
      Linus Torvalds authored
      * 'devicetree/next' of git://git.secretlab.ca/git/linux-2.6: (21 commits)
        tty: serial: altera_jtaguart: Add device tree support
        tty: serial: altera_uart: Add devicetree support
        dt: eliminate of_platform_driver shim code
        dt: Eliminate of_platform_{,un}register_driver
        dt/serial: Eliminate users of of_platform_{,un}register_driver
        dt/usb: Eliminate users of of_platform_{,un}register_driver
        dt/video: Eliminate users of of_platform_{,un}register_driver
        dt/net: Eliminate users of of_platform_{,un}register_driver
        dt/sound: Eliminate users of of_platform_{,un}register_driver
        dt/spi: Eliminate users of of_platform_{,un}register_driver
        dt: uartlite: merge platform and of_platform driver bindings
        dt: xilinx_hwicap: merge platform and of_platform driver bindings
        ipmi: convert OF driver to platform driver
        leds/leds-gpio: merge platform_driver with of_platform_driver
        dt/sparc: Eliminate users of of_platform_{,un}register_driver
        dt/powerpc: Eliminate users of of_platform_{,un}register_driver
        dt/powerpc: move of_bus_type infrastructure to ibmebus
        drivercore/dt: add a match table pointer to struct device
        dt: Typo fix.
        altera_ps2: Add devicetree support
        ...
      4c5811bf
    • Linus Torvalds's avatar
      Merge branch 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl · f74b9444
      Linus Torvalds authored
      * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
        BKL: That's all, folks
        fs/locks.c: Remove stale FIXME left over from BKL conversion
        ipx: remove the BKL
        appletalk: remove the BKL
        x25: remove the BKL
        ufs: remove the BKL
        hpfs: remove the BKL
        drivers: remove extraneous includes of smp_lock.h
        tracing: don't trace the BKL
        adfs: remove the big kernel lock
      f74b9444
  3. 16 Mar, 2011 27 commits