diff options
author | Latchesar Ionkov <lucho@ionkov.net> | 2006-01-08 04:05:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-08 23:14:06 -0500 |
commit | 531b1094b74365dcc55fa464d28a9a2497ae825d (patch) | |
tree | a0384dabe3be1c844166d028b3ef7c21c3dfe5fc /fs/9p/vfs_super.c | |
parent | d8da097afb765654c866062148fd98b11db9003e (diff) |
[PATCH] v9fs: zero copy implementation
Performance enhancement reducing the number of copies in the data and
stat paths.
Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Cc: Eric Van Hensbergen <ericvh@ericvh.myip.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/9p/vfs_super.c')
-rw-r--r-- | fs/9p/vfs_super.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c index 83b6edd0988a..d4d71a9ca573 100644 --- a/fs/9p/vfs_super.c +++ b/fs/9p/vfs_super.c | |||
@@ -44,7 +44,6 @@ | |||
44 | #include "v9fs.h" | 44 | #include "v9fs.h" |
45 | #include "9p.h" | 45 | #include "9p.h" |
46 | #include "v9fs_vfs.h" | 46 | #include "v9fs_vfs.h" |
47 | #include "conv.h" | ||
48 | #include "fid.h" | 47 | #include "fid.h" |
49 | 48 | ||
50 | static void v9fs_clear_inode(struct inode *); | 49 | static void v9fs_clear_inode(struct inode *); |
@@ -123,10 +122,11 @@ static struct super_block *v9fs_get_sb(struct file_system_type | |||
123 | 122 | ||
124 | dprintk(DEBUG_VFS, " \n"); | 123 | dprintk(DEBUG_VFS, " \n"); |
125 | 124 | ||
126 | v9ses = kcalloc(1, sizeof(struct v9fs_session_info), GFP_KERNEL); | 125 | v9ses = kmalloc(sizeof(struct v9fs_session_info), GFP_KERNEL); |
127 | if (!v9ses) | 126 | if (!v9ses) |
128 | return ERR_PTR(-ENOMEM); | 127 | return ERR_PTR(-ENOMEM); |
129 | 128 | ||
129 | memset(v9ses, 0, sizeof(struct v9fs_session_info)); | ||
130 | if ((newfid = v9fs_session_init(v9ses, dev_name, data)) < 0) { | 130 | if ((newfid = v9fs_session_init(v9ses, dev_name, data)) < 0) { |
131 | dprintk(DEBUG_ERROR, "problem initiating session\n"); | 131 | dprintk(DEBUG_ERROR, "problem initiating session\n"); |
132 | kfree(v9ses); | 132 | kfree(v9ses); |
@@ -168,10 +168,10 @@ static struct super_block *v9fs_get_sb(struct file_system_type | |||
168 | goto put_back_sb; | 168 | goto put_back_sb; |
169 | } | 169 | } |
170 | 170 | ||
171 | root_fid->qid = fcall->params.rstat.stat->qid; | 171 | root_fid->qid = fcall->params.rstat.stat.qid; |
172 | root->d_inode->i_ino = | 172 | root->d_inode->i_ino = |
173 | v9fs_qid2ino(&fcall->params.rstat.stat->qid); | 173 | v9fs_qid2ino(&fcall->params.rstat.stat.qid); |
174 | v9fs_mistat2inode(fcall->params.rstat.stat, root->d_inode, sb); | 174 | v9fs_stat2inode(&fcall->params.rstat.stat, root->d_inode, sb); |
175 | } | 175 | } |
176 | 176 | ||
177 | kfree(fcall); | 177 | kfree(fcall); |