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/conv.h | |
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/conv.h')
-rw-r--r-- | fs/9p/conv.h | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/fs/9p/conv.h b/fs/9p/conv.h index d5e33e17a685..26a736e4a2e7 100644 --- a/fs/9p/conv.h +++ b/fs/9p/conv.h | |||
@@ -1,8 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * linux/fs/9p/conv.h | 2 | * linux/fs/9p/conv.h |
3 | * | 3 | * |
4 | * 9P protocol conversion definitions | 4 | * 9P protocol conversion definitions. |
5 | * | 5 | * |
6 | * Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net> | ||
6 | * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> | 7 | * Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com> |
7 | * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> | 8 | * Copyright (C) 2002 by Ron Minnich <rminnich@lanl.gov> |
8 | * | 9 | * |
@@ -25,11 +26,26 @@ | |||
25 | */ | 26 | */ |
26 | 27 | ||
27 | int v9fs_deserialize_stat(void *buf, u32 buflen, struct v9fs_stat *stat, | 28 | int v9fs_deserialize_stat(void *buf, u32 buflen, struct v9fs_stat *stat, |
28 | u32 statlen, int extended); | ||
29 | int v9fs_serialize_fcall(struct v9fs_fcall *tcall, void *buf, u32 buflen, | ||
30 | int extended); | 29 | int extended); |
31 | int v9fs_deserialize_fcall(void *buf, u32 buflen, struct v9fs_fcall *rcall, | 30 | int v9fs_deserialize_fcall(void *buf, u32 buflen, struct v9fs_fcall *rcall, |
32 | int rcalllen, int extended); | 31 | int extended); |
32 | |||
33 | void v9fs_set_tag(struct v9fs_fcall *fc, u16 tag); | ||
33 | 34 | ||
34 | /* this one is actually in error.c right now */ | 35 | struct v9fs_fcall *v9fs_create_tversion(u32 msize, char *version); |
35 | int v9fs_errstr2errno(char *errstr); | 36 | struct v9fs_fcall *v9fs_create_tauth(u32 afid, char *uname, char *aname); |
37 | struct v9fs_fcall *v9fs_create_tattach(u32 fid, u32 afid, char *uname, | ||
38 | char *aname); | ||
39 | struct v9fs_fcall *v9fs_create_tflush(u16 oldtag); | ||
40 | struct v9fs_fcall *v9fs_create_twalk(u32 fid, u32 newfid, u16 nwname, | ||
41 | char **wnames); | ||
42 | struct v9fs_fcall *v9fs_create_topen(u32 fid, u8 mode); | ||
43 | struct v9fs_fcall *v9fs_create_tcreate(u32 fid, char *name, u32 perm, u8 mode); | ||
44 | struct v9fs_fcall *v9fs_create_tread(u32 fid, u64 offset, u32 count); | ||
45 | struct v9fs_fcall *v9fs_create_twrite(u32 fid, u64 offset, u32 count, | ||
46 | const char __user *data); | ||
47 | struct v9fs_fcall *v9fs_create_tclunk(u32 fid); | ||
48 | struct v9fs_fcall *v9fs_create_tremove(u32 fid); | ||
49 | struct v9fs_fcall *v9fs_create_tstat(u32 fid); | ||
50 | struct v9fs_fcall *v9fs_create_twstat(u32 fid, struct v9fs_wstat *wstat, | ||
51 | int extended); | ||