summaryrefslogtreecommitdiff
path: root/fs/9p/v9fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/9p/v9fs.h')
-rw-r--r--fs/9p/v9fs.h38
1 files changed, 22 insertions, 16 deletions
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index abc4b1668ace..db4b4193f2e2 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -29,31 +29,30 @@
struct v9fs_session_info {
/* options */
unsigned int maxdata;
- unsigned char extended; /* set to 1 if we are using UNIX extensions */
+ unsigned char flags; /* session flags */
unsigned char nodev; /* set to 1 if no disable device mapping */
- unsigned short port; /* port to connect to */
unsigned short debug; /* debug level */
- unsigned short proto; /* protocol to use */
unsigned int afid; /* authentication fid */
- unsigned int rfdno; /* read file descriptor number */
- unsigned int wfdno; /* write file descriptor number */
unsigned int cache; /* cache mode */
- char *name; /* user name to mount as */
- char *remotename; /* name of remote hierarchy being mounted */
- unsigned int uid; /* default uid/muid for legacy support */
- unsigned int gid; /* default gid for legacy support */
-
+ char *options; /* copy of mount options */
+ char *uname; /* user name to mount as */
+ char *aname; /* name of remote hierarchy being mounted */
+ unsigned int dfltuid; /* default uid/muid for legacy support */
+ unsigned int dfltgid; /* default gid for legacy support */
+ u32 uid; /* if ACCESS_SINGLE, the uid that has access */
+ struct p9_trans_module *trans; /* 9p transport */
struct p9_client *clnt; /* 9p client */
struct dentry *debugfs_dir;
};
-/* possible values of ->proto */
+/* session flags */
enum {
- PROTO_TCP,
- PROTO_UNIX,
- PROTO_FD,
- PROTO_PCI,
+ V9FS_EXTENDED = 0x01, /* 9P2000.u */
+ V9FS_ACCESS_MASK = 0x06, /* access mask */
+ V9FS_ACCESS_SINGLE = 0x02, /* only one user can access the files */
+ V9FS_ACCESS_USER = 0x04, /* attache per user */
+ V9FS_ACCESS_ANY = 0x06, /* use the same attach for all users */
};
/* possible values of ->cache */
@@ -73,11 +72,18 @@ void v9fs_session_cancel(struct v9fs_session_info *v9ses);
#define V9FS_MAGIC 0x01021997
/* other default globals */
-#define V9FS_PORT 564
+#define V9FS_PORT 564
#define V9FS_DEFUSER "nobody"
#define V9FS_DEFANAME ""
+#define V9FS_DEFUID (-2)
+#define V9FS_DEFGID (-2)
static inline struct v9fs_session_info *v9fs_inode2v9ses(struct inode *inode)
{
return (inode->i_sb->s_fs_info);
}
+
+static inline int v9fs_extended(struct v9fs_session_info *v9ses)
+{
+ return v9ses->flags & V9FS_EXTENDED;
+}