1. 11 May, 2008 10 commits
    • Steve French's avatar
      [CIFS] don't allow demultiplex thread to exit until kthread_stop is called · e691b9d1
      Steve French authored
      cifs_demultiplex_thread can exit under several conditions:
      
      1) if it's signaled
      2) if there's a problem with session setup
      3) if kthread_stop is called on it
      
      The first two are problems. If kthread_stop is called on the thread,
      there is no guarantee that it will still be up. We need to have the
      thread stay up until kthread_stop is called on it.
      
      One option would be to not even try to tear things down until after
      kthread_stop is called. However, in the case where there is a problem
      setting up the session, there's no real reason to try continuing the
      loop.
      
      This patch allows the thread to clean up and prepare for exit under all
      three conditions, but it has the thread go to sleep until kthread_stop
      is called. This allows us to simplify the shutdown code somewhat since
      we can be reasonably sure that the thread won't exit after being
      signaled but before kthread_stop is called.
      
      It also removes the places where the thread itself set the tsk variable
      since it appeared that it could have a potential race where the thread
      might never be shut down.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Acked-by: default avatarChristoph Hellwig <hch@infradead.org>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      e691b9d1
    • Jeff Layton's avatar
      [CIFS] when not using unix extensions, check for and set ATTR_READONLY on create and mkdir · 67750fb9
      Jeff Layton authored
      When creating a directory on a CIFS share without POSIX extensions,
      and the given mode has no write bits set, set the ATTR_READONLY bit.
      
      When creating a file, set ATTR_READONLY if the create mode has no write
      bits set and we're not using unix extensions.
      
      There are some comments about this being problematic due to the VFS
      splitting creates into 2 parts. I'm not sure what that's actually
      talking about, but I'm assuming that it has something to do with how
      mknod is implemented. In the simple case where we have no unix
      extensions and we're just creating a regular file, there's no reason
      we can't set ATTR_READONLY.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      67750fb9
    • Jeff Layton's avatar
      [CIFS] add local struct inode pointer to cifs_setattr · 02eadeff
      Jeff Layton authored
      Clean up cifs_setattr a bit by adding a local inode pointer, and
      changing all of the direntry->d_inode references to it. This also adds a
      bit of micro-optimization. d_inode shouldn't change over the life of
      this function, so we only need to dereference it once.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      02eadeff
    • Cyrill Gorcunov's avatar
      [CIFS] cifs_find_tcp_session cleanup · 1b20d672
      Cyrill Gorcunov authored
      This patch cleans up cifs_find_tcp_session so it become
      less indented. Also the error of skipping IPv6 matched
      addresses fixed.
      Signed-off-by: default avatarCyrill Gorcunov <gorcunov@gmail.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      1b20d672
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 5bb7ff79
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm:
        [ARM] 5033/1: Unbreak corgi_ssp by registering ssp drivers earlier.
        [ARM] Orion: clean up addr-map.c after window setting code purge
        [ARM] Orion: pass proper t_clk into mv643xx_eth
        [ARM] Orion: use mv643xx_eth driver mbus window handling
        [ARM] pxa: Fix RCSR handling
        [ARM] lubbock: fix compilation
        [ARM] 5032/1: Added cpufreq support for pxa27x CPU
        [ARM] 5031/1: Indentation correction in cpu-pxa.c.
        [ARM] 5028/1: pxafb: fix broken "backward compatibility way" in framebuffer
        [ARM] 4882/2: Correction for S3C2410 clkout generation
        [ARM] 5027/1: Fixed random memory corruption on pxa suspend cycle.
        [ARM] 5024/1: Fix some minor clk issues in the MMCI PL18x driver
        [ARM] 5023/1: Fix broken gpio interrupts on ep93xx
        ns9xxx: fix sparse warning
        ns9xxx: check for irq lockups
        ns9xxx: fix handle_prio_irq to unmask irqs with lower priority
      5bb7ff79
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 · 3e1b83ab
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
        x86: rdc: leds build/config fix
        x86: sysfs cpu?/topology is empty in 2.6.25 (32-bit Intel system)
        x86: revert commit 709f744f ("x86: bitops asm constraint fixes")
        x86: restrict keyboard io ports reservation to make ipmi driver work
        x86: fix fpu restore from sig return
        x86: remove spew print out about bus to node mapping
        x86: revert printk format warning change which is for linux-next
        x86: cleanup PAT cpu validation
        x86: geode: define geode_has_vsa2() even if CONFIG_MGEODE_LX is not set
        x86: GEODE: cache results from geode_has_vsa2() and uninline
        x86: revert geode config dependency
      3e1b83ab
    • Linus Torvalds's avatar
      BKL: revert back to the old spinlock implementation · 8e3e076c
      Linus Torvalds authored
      The generic semaphore rewrite had a huge performance regression on AIM7
      (and potentially other BKL-heavy benchmarks) because the generic
      semaphores had been rewritten to be simple to understand and fair.  The
      latter, in particular, turns a semaphore-based BKL implementation into a
      mess of scheduling.
      
      The attempt to fix the performance regression failed miserably (see the
      previous commit 00b41ec2 'Revert
      "semaphore: fix"'), and so for now the simple and sane approach is to
      instead just go back to the old spinlock-based BKL implementation that
      never had any issues like this.
      
      This patch also has the advantage of being reported to fix the
      regression completely according to Yanmin Zhang, unlike the semaphore
      hack which still left a couple percentage point regression.
      
      As a spinlock, the BKL obviously has the potential to be a latency
      issue, but it's not really any different from any other spinlock in that
      respect.  We do want to get rid of the BKL asap, but that has been the
      plan for several years.
      
      These days, the biggest users are in the tty layer (open/release in
      particular) and Alan holds out some hope:
      
        "tty release is probably a few months away from getting cured - I'm
         afraid it will almost certainly be the very last user of the BKL in
         tty to get fixed as it depends on everything else being sanely locked."
      
      so while we're not there yet, we do have a plan of action.
      Tested-by: default avatarYanmin Zhang <yanmin_zhang@linux.intel.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Alexander Viro <viro@ftp.linux.org.uk>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8e3e076c
    • Linus Torvalds's avatar
      Revert "semaphore: fix" · 00b41ec2
      Linus Torvalds authored
      This reverts commit bf726eab, as it has
      been reported to cause a regression with processes stuck in __down(),
      apparently because some missing wakeup.
      
      Quoth Sven Wegener:
       "I'm currently investigating a regression that has showed up with my
        last git pull yesterday.  Bisecting the commits showed bf726e
        "semaphore: fix" to be the culprit, reverting it fixed the issue.
      
        Symptoms: During heavy filesystem usage (e.g.  a kernel compile) I get
        several compiler processes in uninterruptible sleep, blocking all i/o
        on the filesystem.  System is an Intel Core 2 Quad running a 64bit
        kernel and userspace.  Filesystem is xfs on top of lvm.  See below for
        the output of sysrq-w."
      
      See
      
      	http://lkml.org/lkml/2008/5/10/45
      
      for full report.
      
      In the meantime, we can just fix the BKL performance regression by
      reverting back to the good old BKL spinlock implementation instead,
      since any sleeping lock will generally perform badly, especially if it
      tries to be fair.
      Reported-by: default avatarSven Wegener <sven.wegener@stealer.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      00b41ec2
    • Linus Torvalds's avatar
      Make <asm-x86/spinlock.h> use ACCESS_ONCE() · 39f004ba
      Linus Torvalds authored
      ..instead of cooking up its own uglier local version of it.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      39f004ba
    • Linus Torvalds's avatar
      Move ACCESS_ONCE() to <linux/compiler.h> · 9c3cdc1f
      Linus Torvalds authored
      It actually makes much more sense there, and we do tend to need it for
      non-RCU usage too.  Moving it to <linux/compiler.h> will allow some
      other cases that have open-coded the same logic to use the same helper
      function that RCU has used.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9c3cdc1f
  2. 10 May, 2008 7 commits
  3. 09 May, 2008 23 commits