05 Oct, 2010

1 commit

  • This prepares the removal of the big kernel lock from the
    file locking code. We still use the BKL as long as fs/lockd
    uses it and ceph might sleep, but we can flip the definition
    to a private spinlock as soon as that's done.
    All users outside of fs/lockd get converted to use
    lock_flocks() instead of lock_kernel() where appropriate.

    Based on an earlier patch to use a spinlock from Matthew
    Wilcox, who has attempted this a few times before, the
    earliest patch from over 10 years ago turned it into
    a semaphore, which ended up being slower than the BKL
    and was subsequently reverted.

    Someone should do some serious performance testing when
    this becomes a spinlock, since this has caused problems
    before. Using a spinlock should be at least as good
    as the BKL in theory, but who knows...

    Signed-off-by: Arnd Bergmann
    Acked-by: Matthew Wilcox
    Cc: Christoph Hellwig
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: Andrew Morton
    Cc: Miklos Szeredi
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: John Kacur
    Cc: Sage Weil
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-fsdevel@vger.kernel.org

    Arnd Bergmann
     

22 Sep, 2009

1 commit


01 Jul, 2009

1 commit

  • Don't unlock on vfs_rejected_lock path in afs_do_setlk, since the lock
    is unlocked after abort_attempt label.

    Signed-off-by: Jiri Slaby
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     

10 Oct, 2007

1 commit


01 Aug, 2007

1 commit

  • Fix file locking for AFS:

    (*) Start the lock manager thread under a mutex to avoid a race.

    (*) Made the locking non-fair: New readlocks will jump pending writelocks if
    there's a readlock currently granted on a file. This makes the behaviour
    similar to Linux's VFS locking.

    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

20 Jul, 2007

1 commit

  • Bruce and David's patches clashed.

    fs/afs/flock.c: In function 'afs_do_getlk':
    fs/afs/flock.c:459: error: void value not ignored as it ought to be

    Cc: "J. Bruce Fields"
    Acked-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

17 Jul, 2007

1 commit