aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sunrpc/rpc_pipe_fs.h
diff options
context:
space:
mode:
authorStanislav Kinsbursky <skinsbursky@parallels.com>2011-12-26 15:43:32 +0300
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-01-31 18:20:24 -0500
commitba9e097593f371ebd102580a0c5b1b2cf55636a0 (patch)
tree737cda4281e4d77738149e8cd481d7414ccaf160 /include/linux/sunrpc/rpc_pipe_fs.h
parentSUNRPC: replace inode lock with pipe lock for RPC PipeFS operations (diff)
downloadlinux-dev-ba9e097593f371ebd102580a0c5b1b2cf55636a0.tar.xz
linux-dev-ba9e097593f371ebd102580a0c5b1b2cf55636a0.zip
SUNRPC: split SUNPRC PipeFS pipe data and inode creation
Generally, pipe data is used only for pipes, and thus allocating space for it on every RPC inode allocation is redundant. This patch splits private SUNRPC PipeFS pipe data and inode, makes pipe data allocated only for pipe inodes. This patch is also is a next step towards to to removing PipeFS inode references from kernel code other than PipeFS itself. Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/sunrpc/rpc_pipe_fs.h')
-rw-r--r--include/linux/sunrpc/rpc_pipe_fs.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/sunrpc/rpc_pipe_fs.h b/include/linux/sunrpc/rpc_pipe_fs.h
index c93ea8689bc8..57512c23d34c 100644
--- a/include/linux/sunrpc/rpc_pipe_fs.h
+++ b/include/linux/sunrpc/rpc_pipe_fs.h
@@ -21,9 +21,7 @@ struct rpc_pipe_ops {
void (*destroy_msg)(struct rpc_pipe_msg *);
};
-struct rpc_inode {
- struct inode vfs_inode;
- void *private;
+struct rpc_pipe {
struct list_head pipe;
struct list_head in_upcall;
struct list_head in_downcall;
@@ -38,6 +36,12 @@ struct rpc_inode {
spinlock_t lock;
};
+struct rpc_inode {
+ struct inode vfs_inode;
+ void *private;
+ struct rpc_pipe *pipe;
+};
+
static inline struct rpc_inode *
RPC_I(struct inode *inode)
{