Skip to content
  1. Apr 03, 2012
    • Linus Torvalds's avatar
      Merge branch 'paul' (Fixups from Paul Gortmaker) · 95694129
      Linus Torvalds authored
      This merges some of the fixes from Paul Gortmaker for the header file
      cleanup fallout.
      
      Some of the patches are going through arch maintainer trees, and David
      Howells suggested another be done differently, but this at least fixes a
      few cases.
      
      * emailed from Paul Gortmaker <paul.gortmaker@windriver.com>:
        asm-generic: add linux/types.h to cmpxchg.h
        firewire: restore the device.h include in linux/firewire.h
        frv: fix warnings in mb93090-mb00/pci-dma.c about implicit EXPORT_SYMBOL
        parisc: fix missing cmpxchg file error from system.h split
        blackfin: fix cmpxchg build fails from system.h fallout
        avr32: fix build failures from mis-naming of atmel_nand.h
        ARM: mach-msm: fix compile fail from system.h fallout
        irq_work: fix compile failure on MIPS from system.h split
      95694129
    • Paul Gortmaker's avatar
      asm-generic: add linux/types.h to cmpxchg.h · 80da6a4f
      Paul Gortmaker authored
      
      
      Builds of the openrisc or1ksim_defconfig show the following:
      
        In file included from arch/openrisc/include/generated/asm/cmpxchg.h:1:0,
                         from include/asm-generic/atomic.h:18,
                         from arch/openrisc/include/generated/asm/atomic.h:1,
                         from include/linux/atomic.h:4,
                         from include/linux/dcache.h:4,
                         from fs/notify/fsnotify.c:19:
        include/asm-generic/cmpxchg.h: In function '__xchg':
        include/asm-generic/cmpxchg.h:34:20: error: expected ')' before 'u8'
        include/asm-generic/cmpxchg.h:34:20: warning: type defaults to 'int' in type name
      
      and many more lines of similar errors.  It seems specific to the or32
      because most other platforms have an arch specific component that would
      have already included types.h ahead of time, but the o32 does not.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Jonas Bonn <jonas@southpole.se>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      80da6a4f
    • Paul Gortmaker's avatar
      firewire: restore the device.h include in linux/firewire.h · f68c56b7
      Paul Gortmaker authored
      Commit 313162d0 ("device.h: audit and cleanup users in main include
      dir") exchanged an include <linux/device.h> for a struct *device but in
      actuality I misread this file when creating 313162d0
      
       and it should have
      remained an include.
      
      There were no build regressions since all consumers were already getting
      device.h anyway, but make it right regardless.
      
      Reported-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f68c56b7
    • Paul Gortmaker's avatar
      frv: fix warnings in mb93090-mb00/pci-dma.c about implicit EXPORT_SYMBOL · 9a78da11
      Paul Gortmaker authored
      
      
      To fix:
      
          arch/frv/mb93090-mb00/pci-dma.c:31:1: warning: data definition has no type or storage class [enabled by default]
          arch/frv/mb93090-mb00/pci-dma.c:31:1: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL' [-Wimplicit-int]
          arch/frv/mb93090-mb00/pci-dma.c:31:1: warning: parameter names (without types) in function declaration [enabled by default]
          arch/frv/mb93090-mb00/pci-dma.c:38:1: warning: data definition has no type or storage class [enabled by default]
      
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9a78da11
    • Paul Gortmaker's avatar
      parisc: fix missing cmpxchg file error from system.h split · 9e5228ce
      Paul Gortmaker authored
      Commit b4816afa
      
       ("Move the asm-generic/system.h xchg()
      implementation to asm-generic/cmpxchg.h") introduced the concept of
      asm/cmpxchg.h but the parisc arch never got one.  Fork the cmpxchg
      content out of the asm/atomic.h file to create one.
      
      Some minor whitespace fixups were done on the block of code that created
      the new file.
      
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Helge Deller <deller@gmx.de>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9e5228ce
    • Paul Gortmaker's avatar
      blackfin: fix cmpxchg build fails from system.h fallout · 1512cdc3
      Paul Gortmaker authored
      Commit 3bed8d67
      
       ("Disintegrate asm/system.h for Blackfin [ver #2]")
      introduced arch/blackfin/include/asm/cmpxchg.h but has it also including
      the asm-generic one which causes this:
      
        CC      arch/blackfin/kernel/asm-offsets.s
        In file included from arch/blackfin/include/asm/cmpxchg.h:125:0,
                       from arch/blackfin/include/asm/atomic.h:10,
                       from include/linux/atomic.h:4,
                       from include/linux/spinlock.h:384,
                       from include/linux/seqlock.h:29,
                       from include/linux/time.h:8,
                       from include/linux/timex.h:56,
                       from include/linux/sched.h:57,
                       from arch/blackfin/kernel/asm-offsets.c:10:
        include/asm-generic/cmpxchg.h:24:15: error: redefinition of '__xchg'
        arch/blackfin/include/asm/cmpxchg.h:82:29: note: previous definition of '__xchg' was here
        make[2]: *** [arch/blackfin/kernel/asm-offsets.s] Error 1
      
      It really only needs two simple defines from asm-generic, so just use
      those instead.
      
      Cc: Bob Liu <lliubbo@gmail.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1512cdc3
    • Paul Gortmaker's avatar
      avr32: fix build failures from mis-naming of atmel_nand.h · 3d92e051
      Paul Gortmaker authored
      Commit bf4289cb
      
       ("ATMEL: fix nand ecc support") indicated that it
      wanted to "Move platform data to a common header
      include/linux/platform_data/atmel_nand.h" and the new header even had
      re-include protectors with:
      
          #ifndef __ATMEL_NAND_H__
      
      However, the file that was added was simply called atmel.h
      and this caused avr32 defconfig to fail with:
      
        In file included from arch/avr32/boards/atstk1000/setup.c:22:
        arch/avr32/mach-at32ap/include/mach/board.h:10:44: error: linux/platform_data/atmel_nand.h: No such file or directory
        In file included from arch/avr32/boards/atstk1000/setup.c:22:
        arch/avr32/mach-at32ap/include/mach/board.h:121: warning: 'struct atmel_nand_data' declared inside parameter list
        arch/avr32/mach-at32ap/include/mach/board.h:121: warning: its scope is only this definition or declaration, which is probably not what you want
        make[2]: *** [arch/avr32/boards/atstk1000/setup.o] Error 1
      
      It seems the scope of the file contents will expand beyond
      just nand, so ignore the original intention, and fix up the
      users who reference the bad name with the _nand suffix.
      
      CC: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      CC: David Woodhouse <dwmw2@infradead.org>
      Acked-by: default avatarHans-Christian Egtvedt <egtvedt@samfundet.no>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3d92e051
    • Paul Gortmaker's avatar
      ARM: mach-msm: fix compile fail from system.h fallout · b443caf1
      Paul Gortmaker authored
      To fix:
      
        In file included from arm/boot/compressed/misc.c:28:0:
        arm/mach-msm/include/mach/uncompress.h: In function 'putc':
        arch/arm/mach-msm/include/mach/uncompress.h:48:3: error: implicit
        declaration of function 'smp_mb' [-Werror=implicit-function-declaration]
      
      The putc does a cpu_relax which for this platform is smp_mb.
      
      Bisect indicates the 1st failing commit as: 0195c002
      
       ("Merge tag
      'split-asm_system_h...")
      
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Acked-by: default avatarDavid Brown <davidb@codeaurora.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b443caf1
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi · b1a808ff
      Linus Torvalds authored
      Pull HSI (High Speed Synchronous Serial Interface) framework from Carlos Chinea:
       "The High Speed Synchronous Serial Interface (HSI) is a serial
        interface mainly used for connecting application engines (APE) with
        cellular modem engines (CMT) in cellular handsets.
      
        The framework is currently being used for some people and we would
        like to see it integrated into the kernel for 3.3.  There is no HW
        controller drivers in this pull, but some people have already some of
        them pending which they would like to push as soon as this integrated.
        I am also working on the acceptance for an TI OMAP one, based on a
        compatible legacy version of the interface called SSI."
      
      Ok, so it didn't get into 3.3, but here it is pulled into 3.4.
      
      Several people piped up to say "yeah, we want this".
      
      * 'for-next' of git://gitorious.org/kernel-hsi/kernel-hsi:
        HSI: hsi_char: Update ioctl-number.txt
        HSI: Add HSI API documentation
        HSI: hsi_char: Add HSI char device kernel configuration
        HSI: hsi_char: Add HSI char device driver
        HSI: hsi: Introducing HSI framework
      b1a808ff
    • Linus Torvalds's avatar
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 97754175
      Linus Torvalds authored
      Pull 'make cscope' fix from Michal Marek:
       "The kbuild.git#misc pull request introduced a bug that broke make
        cscope.  Apparently, both the original author and me only tested the
        use case that the commit was supposed to improve (make tags/TAGS), and
        not the use case that was not supposed (make cscope)."
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        tags.sh: Add missing quotes
      97754175
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 8f6b7676
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       - Fix for CPU hotplug hang in padata.
       - Avoid using cpu_active inappropriately in pcrypt and padata.
       - Fix for user-space algorithm lookup hang with IV generators.
       - Fix for netlink dump of algorithms where stuff went missing due to
         incorrect calculation of message size.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: user - Fix size of netlink dump message
        crypto: user - Fix lookup of algorithms with IV generator
        crypto: pcrypt - Use the online cpumask as the default
        padata: Fix cpu hotplug
        padata: Use the online cpumask as the default
        padata: Add a reference to the api documentation
      8f6b7676
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 143418d0
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "This contains a couple more fixes for the system.h disintegration, a
        trivial section mismatch fix, a couple of patches from akpm that I
        didn't quite get he expected me to pickup, and a few more trivialities
        form Kumar that he appear to have forgotten to send me in the previous
        batch."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/eeh: Fix use of set_current_state() in eeh event handling set_current_state() wart
        powerpc/eeh: Remove eeh_event_handler()->daemonize()
        powerpc/kvm: Fallout from system.h disintegration
        powerpc: Fix fallout from system.h split up
        powerpc: Mark const init data with __initconst instead of __initdata
        powerpc/qe: Update the SNUM table for MPC8569 Rev2.0
        powerpc/dts: Removed fsl,msi property from dts.
        powerpc/epapr: add "memory" as a clobber to all hypercalls
        powerpc/85xx: Enable I2C_CHARDEV and I2C_MPC options in defconfigs
        powerpc/85xx: add the P1020UTM-PC DTS support
        powerpc/85xx: add the P1020MBG-PC DTS support
        powerpc/8xxx: remove 85xx/86xx restrictions from fsl_guts.h
      143418d0
  2. Apr 02, 2012
  3. Apr 01, 2012
    • Linus Torvalds's avatar
      Linux 3.4-rc1 · dd775ae2
      Linus Torvalds authored
      dd775ae2
    • Linus Torvalds's avatar
      Merge branch 's3-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console · b7ffff4b
      Linus Torvalds authored
      Pull virtio S3 support patches from Amit Shah:
       "Turns out S3 is not different from S4 for virtio devices: the device
        is assumed to be reset, so the host and guest state are to be assumed
        to be out of sync upon resume.  We handle the S4 case with exactly the
        same scenario, so just point the suspend/resume routines to the
        freeze/restore ones.
      
        Once that is done, we also use the PM API's macro to initialise the
        sleep functions.
      
        A couple of cleanups are included: there's no need for special thaw
        processing in the balloon driver, so that's addressed in patches 1 and
        2.
      
        Testing: both S3 and S4 support have been tested using these patches
        using a similar method used earlier during S4 patch development: a
        guest is started with virtio-blk as the only disk, a virtio network
        card, a virtio-serial port and a virtio balloon device.  Ping from
        guest to host, dd /dev/zero to a file on the disk, and IO from the
        host on the virtio-serial port, all at once, while exercising S4 and
        S3 (separately) were tested.  They all continue to work fine after
        resume.  virtio balloon values too were tested by inflating and
        deflating the balloon."
      
      Pulling from Amit, since Rusty is off getting married (and presumably
      shaving people).
      
      * 's3-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console:
        virtio-pci: switch to PM ops macro to initialise PM functions
        virtio-pci: S3 support
        virtio-pci: drop restore_common()
        virtio: drop thaw PM operation
        virtio: balloon: Allow stats update after restore from S4
      b7ffff4b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8bb1f229
      Linus Torvalds authored
      Pull second try at vfs part d#2 from Al Viro:
       "Miklos' first series (with do_lookup() rewrite split into edible
        chunks) + assorted bits and pieces.
      
        The 'untangling of do_lookup()' series is is a splitup of what used to
        be a monolithic patch from Miklos, so this series is basically "how do
        I convince myself that his patch is correct (or find a hole in it)".
        No holes found and I like the resulting cleanup, so in it went..."
      
      Changes from try 1: Fix a boot problem with selinux, and commit messages
      prettied up a bit.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (24 commits)
        vfs: fix out-of-date dentry_unhash() comment
        vfs: split __lookup_hash
        untangling do_lookup() - take __lookup_hash()-calling case out of line.
        untangling do_lookup() - switch to calling __lookup_hash()
        untangling do_lookup() - merge d_alloc_and_lookup() callers
        untangling do_lookup() - merge failure exits in !dentry case
        untangling do_lookup() - massage !dentry case towards __lookup_hash()
        untangling do_lookup() - get rid of need_reval in !dentry case
        untangling do_lookup() - eliminate a loop.
        untangling do_lookup() - expand the area under ->i_mutex
        untangling do_lookup() - isolate !dentry stuff from the rest of it.
        vfs: move MAY_EXEC check from __lookup_hash()
        vfs: don't revalidate just looked up dentry
        vfs: fix d_need_lookup/d_revalidate order in do_lookup
        ext3: move headers to fs/ext3/
        migrate ext2_fs.h guts to fs/ext2/ext2.h
        new helper: ext2_image_size()
        get rid of pointless includes of ext2_fs.h
        ext2: No longer export ext2_fs.h to user space
        mtdchar: kill persistently held vfsmount
        ...
      8bb1f229
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f22e08a7
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar.
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Fix incorrect usage of for_each_cpu_mask() in select_fallback_rq()
        sched: Fix __schedule_bug() output when called from an interrupt
        sched/arch: Introduce the finish_arch_post_lock_switch() scheduler callback
      f22e08a7
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f187e9fd
      Linus Torvalds authored
      Pull perf updates and fixes from Ingo Molnar:
       "It's mostly fixes, but there's also two late items:
      
         - preliminary GTK GUI support for perf report
         - PMU raw event format descriptors in sysfs, to be parsed by tooling
      
        The raw event format in sysfs is a new ABI.  For example for the 'CPU'
        PMU we have:
      
          aldebaran:~> ll /sys/bus/event_source/devices/cpu/format/*
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/any
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/cmask
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/edge
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/event
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/inv
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/offcore_rsp
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/pc
          -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/umask
      
        those lists of fields contain a specific format:
      
          aldebaran:~> cat /sys/bus/event_source/devices/cpu/format/offcore_rsp
          config1:0-63
      
        So, those who wish to specify raw events can now use the following
        event format:
      
          -e cpu/cmask=1,event=2,umask=3
      
        Most people will not want to specify any events (let alone raw
        events), they'll just use whatever default event the tools use.
      
        But for more obscure PMU events that have no cross-architecture
        generic events the above syntax is more usable and a bit more
        structured than specifying hex numbers."
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
        perf tools: Remove auto-generated bison/flex files
        perf annotate: Fix off by one symbol hist size allocation and hit accounting
        perf tools: Add missing ref-cycles event back to event parser
        perf annotate: addr2line wants addresses in same format as objdump
        perf probe: Finder fails to resolve function name to address
        tracing: Fix ent_size in trace output
        perf symbols: Handle NULL dso in dso__name_len
        perf symbols: Do not include libgen.h
        perf tools: Fix bug in raw sample parsing
        perf tools: Fix display of first level of callchains
        perf tools: Switch module.h into export.h
        perf: Move mmap page data_head offset assertion out of header
        perf: Fix mmap_page capabilities and docs
        perf diff: Fix to work with new hists design
        perf tools: Fix modifier to be applied on correct events
        perf tools: Fix various casting issues for 32 bits
        perf tools: Simplify event_read_id exit path
        tracing: Fix ftrace stack trace entries
        tracing: Move the tracing_on/off() declarations into CONFIG_TRACING
        perf report: Add a simple GTK2-based 'perf report' browser
        ...
      f187e9fd
    • Linus Torvalds's avatar
      Merge tag 'parisc-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6 · adb3b1f3
      Linus Torvalds authored
      Pull PARISC misc updates from James Bottomley:
       "This is a couple of minor updates (fixing lws futex locking and
        removing some obsolete cpu_*_map calls)."
      
      * tag 'parisc-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
        [PARISC] remove references to cpu_*_map.
        [PARISC] futex: Use same lock set as lws calls
      adb3b1f3
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 · a75ee6ec
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is primarily another round of driver updates (lpfc, bfa, fcoe,
        ipr) plus a new ufshcd driver.  There shouldn't be anything
        controversial in here (The final deletion of scsi proc_ops which
        caused some build breakage has been held over until the next merge
        window to give us more time to stabilise it).
      
        I'm afraid, with me moving continents at exactly the wrong time,
        anything submitted after the merge window opened has been held over to
        the next merge window."
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (63 commits)
        [SCSI] ipr: Driver version 2.5.3
        [SCSI] ipr: Increase alignment boundary of command blocks
        [SCSI] ipr: Increase max concurrent oustanding commands
        [SCSI] ipr: Remove unnecessary memory barriers
        [SCSI] ipr: Remove unnecessary interrupt clearing on new adapters
        [SCSI] ipr: Fix target id allocation re-use problem
        [SCSI] atp870u, mpt2sas, qla4xxx use pci_dev->revision
        [SCSI] fcoe: Drop the rtnl_mutex before calling fcoe_ctlr_link_up
        [SCSI] bfa: Update the driver version to 3.0.23.0
        [SCSI] bfa: BSG and User interface fixes.
        [SCSI] bfa: Fix to avoid vport delete hang on request queue full scenario.
        [SCSI] bfa: Move service parameter programming logic into firmware.
        [SCSI] bfa: Revised Fabric Assigned Address(FAA) feature implementation.
        [SCSI] bfa: Flash controller IOC pll init fixes.
        [SCSI] bfa: Serialize the IOC hw semaphore unlock logic.
        [SCSI] bfa: Modify ISR to process pending completions
        [SCSI] bfa: Add fc host issue lip support
        [SCSI] mpt2sas: remove extraneous sas_log_info messages
        [SCSI] libfc: fcoe_transport_create fails in single-CPU environment
        [SCSI] fcoe: reduce contention for fcoe_rx_list lock [v2]
        ...
      a75ee6ec
    • J. Bruce Fields's avatar
      vfs: fix out-of-date dentry_unhash() comment · c0d02594
      J. Bruce Fields authored
      64252c75
      
       "vfs: remove dget() from
      dentry_unhash()" changed the implementation but not the comment.
      
      Cc: Sage Weil <sage@newdream.net>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      c0d02594
    • Miklos Szeredi's avatar
      vfs: split __lookup_hash · bad61189
      Miklos Szeredi authored
      
      
      Split __lookup_hash into two component functions:
      
       lookup_dcache - tries cached lookup, returns whether real lookup is needed
       lookup_real - calls i_op->lookup
      
      This eliminates code duplication between d_alloc_and_lookup() and
      d_inode_lookup().
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bad61189
    • Al Viro's avatar
    • Al Viro's avatar
      untangling do_lookup() - switch to calling __lookup_hash() · a3255546
      Al Viro authored
      
      
      now we have __lookup_hash() open-coded if !dentry case;
      just call the damn thing instead...
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      a3255546
    • Al Viro's avatar
    • Al Viro's avatar
    • Al Viro's avatar
      untangling do_lookup() - massage !dentry case towards __lookup_hash() · d774a058
      Al Viro authored
      
      
      Reorder if-else cases for starters...
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      d774a058
    • Al Viro's avatar
      untangling do_lookup() - get rid of need_reval in !dentry case · 08b0ab7c
      Al Viro authored
      
      
      Everything arriving into if (!dentry) will have need_reval = 1.
      Indeed, the only way to get there with need_reval reset to 0 would
      be via
      	if (unlikely(d_need_lookup(dentry)))
      		goto unlazy;
      	if (unlikely(dentry->d_flags & DCACHE_OP_REVALIDATE)) {
      		status = d_revalidate(dentry, nd);
      	if (unlikely(status <= 0)) {
      		if (status != -ECHILD)
      			need_reval = 0;
      		goto unlazy;
      ...
      unlazy:
      	/* no assignments to dentry */
      	if (dentry && unlikely(d_need_lookup(dentry))) {
      		dput(dentry);
      		dentry = NULL;
      	}
      and if d_need_lookup() had already been false the first time around, it
      will remain false on the second call as well.
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      08b0ab7c
    • Al Viro's avatar
      untangling do_lookup() - eliminate a loop. · acc9cb3c
      Al Viro authored
      
      
      d_lookup() *will* fail after successful d_invalidate(), if we are
      holding i_mutex all along.  IOW, we don't need to jump back to
      l: - we know what path will be taken there and can do that (i.e.
      d_alloc_and_lookup()) directly.
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      acc9cb3c
    • Al Viro's avatar
      untangling do_lookup() - expand the area under ->i_mutex · 37c17e1f
      Al Viro authored
      
      
      keep holding ->i_mutex over revalidation parts
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      37c17e1f
    • Al Viro's avatar
      untangling do_lookup() - isolate !dentry stuff from the rest of it. · 3f6c7c71
      Al Viro authored
      
      
      Duplicate the revalidation-related parts into if (!dentry) branch.
      Next step will be to pull them under i_mutex.
      
      This and the next 8 commits are more or less a splitup of patch
      by Miklos; folks, when you are working with something that convoluted,
      carve your patches up into easily reviewed steps, especially when
      a lot of codepaths involved are rarely hit...
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      3f6c7c71
    • Miklos Szeredi's avatar
      vfs: move MAY_EXEC check from __lookup_hash() · cda309de
      Miklos Szeredi authored
      
      
      The only caller of __lookup_hash() that needs the exec permission check on
      parent is lookup_one_len().
      
      All lookup_hash() callers already checked permission in LOOKUP_PARENT walk.
      
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      cda309de