aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-10-27 09:46:08 -0400
committerArnd Bergmann <arnd@arndb.de>2010-10-27 15:41:50 -0400
commitc5b1f0d92c36851aca09ac6c7c0c4f9690ac14f3 (patch)
treec8aa4ad65aea3b97292135a4c23d512e6071dc8d /include/linux
parenta282a1fa6b23bd21ba0b86e53ed2a316b001836f (diff)
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@arndb.de> Acked-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/fs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index bb20373d0b46..8d7de08ab546 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1113,6 +1113,7 @@ extern int fcntl_getlease(struct file *filp);
1113 1113
1114/* fs/locks.c */ 1114/* fs/locks.c */
1115extern void locks_init_lock(struct file_lock *); 1115extern void locks_init_lock(struct file_lock *);
1116extern struct file_lock * locks_alloc_lock(void);
1116extern void locks_copy_lock(struct file_lock *, struct file_lock *); 1117extern void locks_copy_lock(struct file_lock *, struct file_lock *);
1117extern void __locks_copy_lock(struct file_lock *, const struct file_lock *); 1118extern void __locks_copy_lock(struct file_lock *, const struct file_lock *);
1118extern void locks_remove_posix(struct file *, fl_owner_t); 1119extern void locks_remove_posix(struct file *, fl_owner_t);