diff options
author | Arnd Bergmann <arnd@arndb.de> | 2010-10-04 15:18:23 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2010-10-19 05:29:59 -0400 |
commit | a6f8dbc654c3dddc5ac98cf59a88447a90e99ece (patch) | |
tree | ef4244528cd4a975bca2d00ac1b5e5430a1eac45 /net/sunrpc/cache.c | |
parent | 1fa4f3b57cf0c525027ea61011312de139b04f9b (diff) |
sunrpc: remove the big kernel lock
The sunrpc cache_ioctl function does not need the big kernel lock
because it uses its own queue_lock already.
rpc_pipe_ioctl apparently should be using i_lock like the other
operations on the pipe file descriptor do.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'net/sunrpc/cache.c')
-rw-r--r-- | net/sunrpc/cache.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 2b06410e584e..29b11e065015 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/workqueue.h> | 28 | #include <linux/workqueue.h> |
29 | #include <linux/mutex.h> | 29 | #include <linux/mutex.h> |
30 | #include <linux/pagemap.h> | 30 | #include <linux/pagemap.h> |
31 | #include <linux/smp_lock.h> | ||
32 | #include <asm/ioctls.h> | 31 | #include <asm/ioctls.h> |
33 | #include <linux/sunrpc/types.h> | 32 | #include <linux/sunrpc/types.h> |
34 | #include <linux/sunrpc/cache.h> | 33 | #include <linux/sunrpc/cache.h> |
@@ -1348,15 +1347,10 @@ static unsigned int cache_poll_procfs(struct file *filp, poll_table *wait) | |||
1348 | static long cache_ioctl_procfs(struct file *filp, | 1347 | static long cache_ioctl_procfs(struct file *filp, |
1349 | unsigned int cmd, unsigned long arg) | 1348 | unsigned int cmd, unsigned long arg) |
1350 | { | 1349 | { |
1351 | long ret; | ||
1352 | struct inode *inode = filp->f_path.dentry->d_inode; | 1350 | struct inode *inode = filp->f_path.dentry->d_inode; |
1353 | struct cache_detail *cd = PDE(inode)->data; | 1351 | struct cache_detail *cd = PDE(inode)->data; |
1354 | 1352 | ||
1355 | lock_kernel(); | 1353 | return cache_ioctl(inode, filp, cmd, arg, cd); |
1356 | ret = cache_ioctl(inode, filp, cmd, arg, cd); | ||
1357 | unlock_kernel(); | ||
1358 | |||
1359 | return ret; | ||
1360 | } | 1354 | } |
1361 | 1355 | ||
1362 | static int cache_open_procfs(struct inode *inode, struct file *filp) | 1356 | static int cache_open_procfs(struct inode *inode, struct file *filp) |
@@ -1555,13 +1549,8 @@ static long cache_ioctl_pipefs(struct file *filp, | |||
1555 | { | 1549 | { |
1556 | struct inode *inode = filp->f_dentry->d_inode; | 1550 | struct inode *inode = filp->f_dentry->d_inode; |
1557 | struct cache_detail *cd = RPC_I(inode)->private; | 1551 | struct cache_detail *cd = RPC_I(inode)->private; |
1558 | long ret; | ||
1559 | 1552 | ||
1560 | lock_kernel(); | 1553 | return cache_ioctl(inode, filp, cmd, arg, cd); |
1561 | ret = cache_ioctl(inode, filp, cmd, arg, cd); | ||
1562 | unlock_kernel(); | ||
1563 | |||
1564 | return ret; | ||
1565 | } | 1554 | } |
1566 | 1555 | ||
1567 | static int cache_open_pipefs(struct inode *inode, struct file *filp) | 1556 | static int cache_open_pipefs(struct inode *inode, struct file *filp) |