[PATCH] v9fs: add extension field to Tcreate
authorLatchesar Ionkov <lucho@ionkov.net>
Sat, 25 Mar 2006 11:07:26 +0000 (03:07 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 25 Mar 2006 16:22:54 +0000 (08:22 -0800)
Implement a new way of creating special files.  Instead of Tcreate+Twstat,
add one more field to Tcreate that contains special file description.

Signed-off-by: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/9p/9p.c
fs/9p/9p.h
fs/9p/conv.c
fs/9p/conv.h
fs/9p/vfs_file.c
fs/9p/vfs_inode.c

index ea2cf96..81027bc 100644 (file)
@@ -334,8 +334,8 @@ v9fs_t_remove(struct v9fs_session_info *v9ses, u32 fid,
  */
 
 int
-v9fs_t_create(struct v9fs_session_info *v9ses, u32 fid, char *name,
-             u32 perm, u8 mode, struct v9fs_fcall **rcp)
+v9fs_t_create(struct v9fs_session_info *v9ses, u32 fid, char *name, u32 perm,
+       u8 mode, char *extension, struct v9fs_fcall **rcp)
 {
        int ret;
        struct v9fs_fcall *tc;
@@ -343,7 +343,9 @@ v9fs_t_create(struct v9fs_session_info *v9ses, u32 fid, char *name,
        dprintk(DEBUG_9P, "fid %d name '%s' perm %x mode %d\n",
                fid, name, perm, mode);
 
-       tc = v9fs_create_tcreate(fid, name, perm, mode);
+       tc = v9fs_create_tcreate(fid, name, perm, mode, extension,
+               v9ses->extended);
+
        if (!IS_ERR(tc)) {
                ret = v9fs_mux_rpc(v9ses->mux, tc, rcp);
                kfree(tc);
index 1df9e69..2bb89b4 100644 (file)
@@ -235,6 +235,7 @@ struct Tcreate {
        struct v9fs_str name;
        u32 perm;
        u8 mode;
+       struct v9fs_str extension;
 };
 
 struct Rcreate {
@@ -364,7 +365,7 @@ int v9fs_t_remove(struct v9fs_session_info *v9ses, u32 fid,
                  struct v9fs_fcall **rcall);
 
 int v9fs_t_create(struct v9fs_session_info *v9ses, u32 fid, char *name,
-                 u32 perm, u8 mode, struct v9fs_fcall **rcall);
+       u32 perm, u8 mode, char *extension, struct v9fs_fcall **rcall);
 
 int v9fs_t_read(struct v9fs_session_info *v9ses, u32 fid,
                u64 offset, u32 count, struct v9fs_fcall **rcall);
diff --cc fs/9p/conv.c
Simple merge
diff --cc fs/9p/conv.h
Simple merge
Simple merge
Simple merge