sunrpc: Pushdown the bkl from sunrpc cache ioctl
Pushdown the bkl to cache_ioctl_pipefs. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: Neil Brown <neilb@suse.de> Cc: Nfs <linux-nfs@vger.kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: John Kacur <jkacur@redhat.com> Cc: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
#include <linux/sunrpc/cache.h>
|
#include <linux/sunrpc/cache.h>
|
||||||
#include <linux/sunrpc/stats.h>
|
#include <linux/sunrpc/stats.h>
|
||||||
#include <linux/sunrpc/rpc_pipe_fs.h>
|
#include <linux/sunrpc/rpc_pipe_fs.h>
|
||||||
|
#include <linux/smp_lock.h>
|
||||||
|
|
||||||
#define RPCDBG_FACILITY RPCDBG_CACHE
|
#define RPCDBG_FACILITY RPCDBG_CACHE
|
||||||
|
|
||||||
@@ -1525,12 +1526,18 @@ static unsigned int cache_poll_pipefs(struct file *filp, poll_table *wait)
|
|||||||
return cache_poll(filp, wait, cd);
|
return cache_poll(filp, wait, cd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cache_ioctl_pipefs(struct inode *inode, struct file *filp,
|
static long cache_ioctl_pipefs(struct file *filp,
|
||||||
unsigned int cmd, unsigned long arg)
|
unsigned int cmd, unsigned long arg)
|
||||||
{
|
{
|
||||||
|
struct inode *inode = filp->f_dentry->d_inode;
|
||||||
struct cache_detail *cd = RPC_I(inode)->private;
|
struct cache_detail *cd = RPC_I(inode)->private;
|
||||||
|
long ret;
|
||||||
|
|
||||||
return cache_ioctl(inode, filp, cmd, arg, cd);
|
lock_kernel();
|
||||||
|
ret = cache_ioctl(inode, filp, cmd, arg, cd);
|
||||||
|
unlock_kernel();
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cache_open_pipefs(struct inode *inode, struct file *filp)
|
static int cache_open_pipefs(struct inode *inode, struct file *filp)
|
||||||
@@ -1553,7 +1560,7 @@ const struct file_operations cache_file_operations_pipefs = {
|
|||||||
.read = cache_read_pipefs,
|
.read = cache_read_pipefs,
|
||||||
.write = cache_write_pipefs,
|
.write = cache_write_pipefs,
|
||||||
.poll = cache_poll_pipefs,
|
.poll = cache_poll_pipefs,
|
||||||
.ioctl = cache_ioctl_pipefs, /* for FIONREAD */
|
.unlocked_ioctl = cache_ioctl_pipefs, /* for FIONREAD */
|
||||||
.open = cache_open_pipefs,
|
.open = cache_open_pipefs,
|
||||||
.release = cache_release_pipefs,
|
.release = cache_release_pipefs,
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user