Browse Source

fs/9p: Pass the correct user credentials during attach

We need to make sure we pass the right uid value
during attach. dotl is similar to dotu in this regard.
Without this mapped security model on dotl doesn't work

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Aneesh Kumar K.V 15 years ago
parent
commit
9ffaf63e34
2 changed files with 3 additions and 2 deletions
  1. 2 1
      fs/9p/fid.c
  2. 1 1
      fs/9p/v9fs.c

+ 2 - 1
fs/9p/fid.c

@@ -152,7 +152,8 @@ struct p9_fid *v9fs_fid_lookup(struct dentry *dentry)
 			if (access == V9FS_ACCESS_SINGLE)
 			if (access == V9FS_ACCESS_SINGLE)
 				return ERR_PTR(-EPERM);
 				return ERR_PTR(-EPERM);
 
 
-			if (v9fs_proto_dotu(v9ses))
+			if (v9fs_proto_dotu(v9ses) ||
+				v9fs_proto_dotl(v9ses))
 				uname = NULL;
 				uname = NULL;
 			else
 			else
 				uname = v9ses->uname;
 				uname = v9ses->uname;

+ 1 - 1
fs/9p/v9fs.c

@@ -278,7 +278,7 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 	v9ses->maxdata = v9ses->clnt->msize - P9_IOHDRSZ;
 	v9ses->maxdata = v9ses->clnt->msize - P9_IOHDRSZ;
 
 
 	/* for legacy mode, fall back to V9FS_ACCESS_ANY */
 	/* for legacy mode, fall back to V9FS_ACCESS_ANY */
-	if (!v9fs_proto_dotu(v9ses) &&
+	if (!(v9fs_proto_dotu(v9ses) || v9fs_proto_dotl(v9ses)) &&
 		((v9ses->flags&V9FS_ACCESS_MASK) == V9FS_ACCESS_USER)) {
 		((v9ses->flags&V9FS_ACCESS_MASK) == V9FS_ACCESS_USER)) {
 
 
 		v9ses->flags &= ~V9FS_ACCESS_MASK;
 		v9ses->flags &= ~V9FS_ACCESS_MASK;