noextend force legacy mode (no 9p2000.u semantics)
- uid attempt to mount as a particular uid
+ dfltuid attempt to mount as a particular uid
- gid attempt to mount with a particular gid
+ dfltgid attempt to mount with a particular gid
afid security channel - used by Plan 9 authentication protocols
enum {
/* Options that take integer arguments */
- Opt_debug, Opt_msize, Opt_uid, Opt_gid, Opt_afid,
+ Opt_debug, Opt_msize, Opt_dfltuid, Opt_dfltgid, Opt_afid,
/* String options */
Opt_uname, Opt_remotename, Opt_trans,
/* Options that take no arguments */
static match_table_t tokens = {
{Opt_debug, "debug=%x"},
{Opt_msize, "msize=%u"},
- {Opt_uid, "uid=%u"},
- {Opt_gid, "gid=%u"},
+ {Opt_dfltuid, "dfltuid=%u"},
+ {Opt_dfltgid, "dfltgid=%u"},
{Opt_afid, "afid=%u"},
{Opt_uname, "uname=%s"},
{Opt_remotename, "aname=%s"},
case Opt_msize:
v9ses->maxdata = option;
break;
- case Opt_uid:
- v9ses->uid = option;
+ case Opt_dfltuid:
+ v9ses->dfltuid = option;
break;
- case Opt_gid:
- v9ses->gid = option;
+ case Opt_dfltgid:
+ v9ses->dfltgid = option;
break;
case Opt_afid:
v9ses->afid = option;
strcpy(v9ses->name, V9FS_DEFUSER);
strcpy(v9ses->remotename, V9FS_DEFANAME);
+ v9ses->dfltuid = V9FS_DEFUID;
+ v9ses->dfltgid = V9FS_DEFGID;
v9ses->options = kstrdup(data, GFP_KERNEL);
v9fs_parse_options(v9ses);
char *options; /* copy of mount options */
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 */
+ unsigned int dfltuid; /* default uid/muid for legacy support */
+ unsigned int dfltgid; /* default gid for legacy support */
struct p9_trans_module *trans; /* 9p transport */
struct p9_client *clnt; /* 9p client */
struct dentry *debugfs_dir;
#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)
{
inode->i_mtime.tv_sec = stat->mtime;
inode->i_ctime.tv_sec = stat->mtime;
- inode->i_uid = v9ses->uid;
- inode->i_gid = v9ses->gid;
+ inode->i_uid = v9ses->dfltuid;
+ inode->i_gid = v9ses->dfltgid;
if (v9fs_extended(v9ses)) {
inode->i_uid = stat->n_uid;