On Wednesday 27 October 2010 20:43:59 Linus Torvalds wrote: > On Wed, Oct 27, 2010 at 11:42 AM, Linus Torvalds > <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > Feel free to edit the message/patch to your hearts content. > > Oh, and if you want me to just commit this part, I can do so. It > doesn't make much sense without the other parts to actually make it > useful, though, so it probably makes more sense to come with them. Once Bruce is happy with the test results, you can pull it from git+ssh://master.kernel.org/pub/scm/linux/kernel/git/arnd/bkl.git flock I've rewritten all the changelogs to make more sense as a series, and split out the bits that turn lock_flocks into a spinlock to come last, so we get a bisectable series. The contents are left unchanged. Arnd --- commit b3426739cc8f7c7dd127ca8dad5e25195930cac1 Author: Arnd Bergmann <arnd@xxxxxxxx> Date: Wed Oct 27 21:39:58 2010 +0200 locks: turn lock_flocks into a spinlock Nothing depends on lock_flocks using the BKL any more, so we can do the switch over to a private spinlock. Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> fs/Kconfig | 1 - fs/locks.c | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) commit 55d3ff97c5c0b3dce39f705e2b1fe85818891822 Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Date: Wed Oct 27 12:38:12 2010 -0400 locks: avoid fasync allocation under lock_flocks This splits fasync_helper into four functions: fasync_alloc, fasync_free, fasync_insert_entry and fasync_remove_entry, in order to allow the lease handling to call them directly instead of going through fasync_helper. The fasync_helper interface really doesn't make sense outside of ->fasync file operations, which use the same calling conventions of passing flags in and out as the helper. After the change, fcntl_setlease can simply allocate the new fasync_struct outside of lock_flocks, which is required to turn that into a spinlock. Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> [bfields@xxxxxxxxxx: rebase on top of my changes to Arnd's patch] Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> [arnd: rewrite changelog text] Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> fs/fcntl.c | 66 +++++++++++++++++++++++++++++++++++++++------------ fs/locks.c | 18 +++++++++++++- include/linux/fs.h | 5 ++++ 3 files changed, 72 insertions(+), 17 deletions(-) commit c5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3 Author: Arnd Bergmann <arnd@xxxxxxxx> Date: Wed Oct 27 15:46:08 2010 +0200 locks/nfsd: allocate file lock outside of spinlock As suggested by Christoph Hellwig, this moves allocation of new file locks out of generic_setlease into the callers, nfs4_open_delegation and fcntl_setlease in order to allow GFP_KERNEL allocations when lock_flocks has become a spinlock. Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Acked-by: J. Bruce Fields <bfields@xxxxxxxxxx> fs/locks.c | 36 ++++++++++++------------------------ fs/nfsd/nfs4state.c | 26 +++++++++++++++----------- include/linux/fs.h | 1 + 3 files changed, 28 insertions(+), 35 deletions(-) commit a282a1fa6b23bd21ba0b86e53ed2a316b001836f Author: J. Bruce Fields <bfields@xxxxxxxxxx> Date: Tue Oct 26 18:25:30 2010 -0400 lockd: fix nlmsvc_notify_blocked locking nlmsvc_notify_blocked walks the nlm_blocked list, which requires nlm_blocked_lock. Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> fs/lockd/svclock.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) commit 763641d81202834e9d64de2019d1edec12868f4f Author: Arnd Bergmann <arnd@xxxxxxxx> Date: Tue Oct 26 22:55:40 2010 +0200 lockd: push lock_flocks down lockd should use lock_flocks() instead of lock_kernel() to lock against posix locks accessing the i_flock list. This is a prerequisite to turning lock_flocks into a spinlock. Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Acked-by: J. Bruce Fields <bfields@xxxxxxxxxx> fs/lockd/svc.c | 11 ----------- fs/lockd/svcsubs.c | 9 ++++++++- fs/nfs/Kconfig | 1 - fs/nfsd/Kconfig | 1 - 4 files changed, 8 insertions(+), 14 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html