All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH-V2] [fs/9P] Add posixacl mount option
@ 2011-01-27  6:55 Venkateswararao Jujjuri (JV)
  2011-01-27 14:40 ` Aneesh Kumar K. V
  0 siblings, 1 reply; 3+ messages in thread
From: Venkateswararao Jujjuri (JV) @ 2011-01-27  6:55 UTC (permalink / raw)
  To: v9fs-developer; +Cc: linux-fsdevel, Venkateswararao Jujjuri (JV)

The mount option access=client is overloaded as it assumes acl too.
Adding posixacl option to enable POSIX ACLs makes it explicit and clear.
Also it is convenient in the future to add other types of acls like richacls.

Ideally, the access mode 'client' should be just like V9FS_ACCESS_USER
except it underscores the location of access check.
Traditional 9P protocol lets the server perform access checks but with
this mode, all the access checks will be performed on the client itself.
Server just follows the client's directive.

Changes from V1
--------------
- Changed the option to -o posixacl and corresponding changes.
- Corrected if conditions in acl.c

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
---
 fs/9p/acl.c       |    8 +++++---
 fs/9p/v9fs.c      |   24 +++++++++++++++++-------
 fs/9p/v9fs.h      |    6 +++++-
 fs/9p/vfs_super.c |    2 +-
 4 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/fs/9p/acl.c b/fs/9p/acl.c
index 0a2e480..1ee3434 100644
--- a/fs/9p/acl.c
+++ b/fs/9p/acl.c
@@ -59,7 +59,8 @@ int v9fs_get_acl(struct inode *inode, struct p9_fid *fid)
 	struct v9fs_session_info *v9ses;
 
 	v9ses = v9fs_inode2v9ses(inode);
-	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) {
+	if (((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) ||
+			((v9ses->flags & V9FS_ACL_MASK) != V9FS_POSIX_ACL)) {
 		set_cached_acl(inode, ACL_TYPE_DEFAULT, NULL);
 		set_cached_acl(inode, ACL_TYPE_ACCESS, NULL);
 		return 0;
@@ -104,9 +105,10 @@ int v9fs_check_acl(struct inode *inode, int mask, unsigned int flags)
 		return -ECHILD;
 
 	v9ses = v9fs_inode2v9ses(inode);
-	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) {
+	if (((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) ||
+			((v9ses->flags & V9FS_ACL_MASK) != V9FS_POSIX_ACL)) {
 		/*
-		 * On access = client mode get the acl
+		 * On access = client  and acl = on mode get the acl
 		 * values from the server
 		 */
 		return 0;
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index d34f293..7823a7c 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -55,7 +55,7 @@ enum {
 	/* Cache options */
 	Opt_cache_loose, Opt_fscache,
 	/* Access options */
-	Opt_access,
+	Opt_access, Opt_posixacl,
 	/* Error token */
 	Opt_err
 };
@@ -73,6 +73,7 @@ static const match_table_t tokens = {
 	{Opt_fscache, "fscache"},
 	{Opt_cachetag, "cachetag=%s"},
 	{Opt_access, "access=%s"},
+	{Opt_posixacl, "posixacl"},
 	{Opt_err, NULL}
 };
 
@@ -194,13 +195,7 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
 			else if (strcmp(s, "any") == 0)
 				v9ses->flags |= V9FS_ACCESS_ANY;
 			else if (strcmp(s, "client") == 0) {
-#ifdef CONFIG_9P_FS_POSIX_ACL
 				v9ses->flags |= V9FS_ACCESS_CLIENT;
-#else
-				P9_DPRINTK(P9_DEBUG_ERROR,
-					"Not defined CONFIG_9P_FS_POSIX_ACL. "
-					"Ignoring access=client option\n");
-#endif
 			} else {
 				v9ses->flags |= V9FS_ACCESS_SINGLE;
 				v9ses->uid = simple_strtoul(s, &e, 10);
@@ -210,6 +205,16 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
 			kfree(s);
 			break;
 
+		case Opt_posixacl:
+#ifdef CONFIG_9P_FS_POSIX_ACL
+			v9ses->flags |= V9FS_POSIX_ACL;
+#else
+			P9_DPRINTK(P9_DEBUG_ERROR,
+					"Not defined CONFIG_9P_FS_POSIX_ACL. "
+					"Ignoring posixacl option\n");
+#endif
+			break;
+
 		default:
 			continue;
 		}
@@ -294,6 +299,11 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 		 */
 		v9ses->flags &= ~V9FS_ACCESS_MASK;
 		v9ses->flags |= V9FS_ACCESS_USER;
+		/*
+		 * We support ACL checks on clinet only if the protocol is
+		 * 9P2000.L and access is V9FS_ACCESS_CLIENT.
+		 */
+		v9ses->flags &= ~V9FS_ACL_MASK;
 	}
 	/*FIXME !! */
 	/* for legacy mode, fall back to V9FS_ACCESS_ANY */
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index c4b5d88..b776a2c 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -28,8 +28,10 @@
  * @V9FS_PROTO_2000L: whether or not to use 9P2000.l extensions
  * @V9FS_ACCESS_SINGLE: only the mounting user can access the hierarchy
  * @V9FS_ACCESS_USER: a new attach will be issued for every user (default)
+ * @V9FS_ACCESS_CLIENT: Just like user, but access check is performed on client.
  * @V9FS_ACCESS_ANY: use a single attach for all users
  * @V9FS_ACCESS_MASK: bit mask of different ACCESS options
+ * @V9FS_ACL_ON: If ACLs are enforced
  *
  * Session flags reflect options selected by users at mount time
  */
@@ -37,13 +39,15 @@
 			 V9FS_ACCESS_USER |   \
 			 V9FS_ACCESS_CLIENT)
 #define V9FS_ACCESS_MASK V9FS_ACCESS_ANY
+#define V9FS_ACL_MASK V9FS_POSIX_ACL
 
 enum p9_session_flags {
 	V9FS_PROTO_2000U	= 0x01,
 	V9FS_PROTO_2000L	= 0x02,
 	V9FS_ACCESS_SINGLE	= 0x04,
 	V9FS_ACCESS_USER	= 0x08,
-	V9FS_ACCESS_CLIENT	= 0x10
+	V9FS_ACCESS_CLIENT	= 0x10,
+	V9FS_POSIX_ACL		= 0x20
 };
 
 /* possible values of ->cache */
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index dbaabe3..4f14be5 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -91,7 +91,7 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
 	    MS_NOATIME;
 
 #ifdef CONFIG_9P_FS_POSIX_ACL
-	if ((v9ses->flags & V9FS_ACCESS_MASK) == V9FS_ACCESS_CLIENT)
+	if ((v9ses->flags & V9FS_ACL_MASK) == V9FS_POSIX_ACL)
 		sb->s_flags |= MS_POSIXACL;
 #endif
 
-- 
1.6.5.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH-V2] [fs/9P] Add posixacl mount option
  2011-01-27  6:55 [PATCH-V2] [fs/9P] Add posixacl mount option Venkateswararao Jujjuri (JV)
@ 2011-01-27 14:40 ` Aneesh Kumar K. V
  2011-01-27 20:09   ` Venkateswararao Jujjuri (JV)
  0 siblings, 1 reply; 3+ messages in thread
From: Aneesh Kumar K. V @ 2011-01-27 14:40 UTC (permalink / raw)
  To: Venkateswararao Jujjuri (JV), v9fs-developer
  Cc: linux-fsdevel, Venkateswararao Jujjuri (JV)

On Wed, 26 Jan 2011 22:55:28 -0800, "Venkateswararao Jujjuri (JV)" <jvrao@linux.vnet.ibm.com> wrote:
> The mount option access=client is overloaded as it assumes acl too.
> Adding posixacl option to enable POSIX ACLs makes it explicit and clear.
> Also it is convenient in the future to add other types of acls like richacls.
> 
> Ideally, the access mode 'client' should be just like V9FS_ACCESS_USER
> except it underscores the location of access check.
> Traditional 9P protocol lets the server perform access checks but with
> this mode, all the access checks will be performed on the client itself.
> Server just follows the client's directive.
> 
> Changes from V1
> --------------
> - Changed the option to -o posixacl and corresponding changes.
> - Corrected if conditions in acl.c
> 
> Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
> ---
>  fs/9p/acl.c       |    8 +++++---
>  fs/9p/v9fs.c      |   24 +++++++++++++++++-------
>  fs/9p/v9fs.h      |    6 +++++-
>  fs/9p/vfs_super.c |    2 +-
>  4 files changed, 28 insertions(+), 12 deletions(-)
> 
> diff --git a/fs/9p/acl.c b/fs/9p/acl.c
> index 0a2e480..1ee3434 100644
> --- a/fs/9p/acl.c
> +++ b/fs/9p/acl.c
> @@ -59,7 +59,8 @@ int v9fs_get_acl(struct inode *inode, struct p9_fid *fid)
>  	struct v9fs_session_info *v9ses;
> 
>  	v9ses = v9fs_inode2v9ses(inode);
> -	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) {
> +	if (((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) ||
> +			((v9ses->flags & V9FS_ACL_MASK) != V9FS_POSIX_ACL)) {
>  		set_cached_acl(inode, ACL_TYPE_DEFAULT, NULL);
>  		set_cached_acl(inode, ACL_TYPE_ACCESS, NULL);
>  		return 0;
> @@ -104,9 +105,10 @@ int v9fs_check_acl(struct inode *inode, int mask, unsigned int flags)
>  		return -ECHILD;
> 
>  	v9ses = v9fs_inode2v9ses(inode);
> -	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) {
> +	if (((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) ||
> +			((v9ses->flags & V9FS_ACL_MASK) !=
> V9FS_POSIX_ACL)) {

check_acl should be called only if IS_POSIXACL(inode) is true. So do we
really need this check ?. Even the original change is not needed i guess.

>  		/*
> -		 * On access = client mode get the acl
> +		 * On access = client  and acl = on mode get the acl
>  		 * values from the server
>  		 */
>  		return 0;
> diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
> index d34f293..7823a7c 100644
> --- a/fs/9p/v9fs.c
> +++ b/fs/9p/v9fs.c
> @@ -55,7 +55,7 @@ enum {
>  	/* Cache options */
>  	Opt_cache_loose, Opt_fscache,
>  	/* Access options */
> -	Opt_access,
> +	Opt_access, Opt_posixacl,
>  	/* Error token */
>  	Opt_err
>  };
> @@ -73,6 +73,7 @@ static const match_table_t tokens = {
>  	{Opt_fscache, "fscache"},
>  	{Opt_cachetag, "cachetag=%s"},
>  	{Opt_access, "access=%s"},
> +	{Opt_posixacl, "posixacl"},
>  	{Opt_err, NULL}
>  };
> 
> @@ -194,13 +195,7 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>  			else if (strcmp(s, "any") == 0)
>  				v9ses->flags |= V9FS_ACCESS_ANY;
>  			else if (strcmp(s, "client") == 0) {
> -#ifdef CONFIG_9P_FS_POSIX_ACL
>  				v9ses->flags |= V9FS_ACCESS_CLIENT;
> -#else
> -				P9_DPRINTK(P9_DEBUG_ERROR,
> -					"Not defined CONFIG_9P_FS_POSIX_ACL. "
> -					"Ignoring access=client option\n");
> -#endif
>  			} else {
>  				v9ses->flags |= V9FS_ACCESS_SINGLE;
>  				v9ses->uid = simple_strtoul(s, &e, 10);
> @@ -210,6 +205,16 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>  			kfree(s);
>  			break;
> 
> +		case Opt_posixacl:
> +#ifdef CONFIG_9P_FS_POSIX_ACL
> +			v9ses->flags |= V9FS_POSIX_ACL;
> +#else
> +			P9_DPRINTK(P9_DEBUG_ERROR,
> +					"Not defined CONFIG_9P_FS_POSIX_ACL. "
> +					"Ignoring posixacl option\n");
> +#endif

We should also ensure that -o posixacl is only allowed with
access=client. 

> +			break;
> +
>  		default:
>  			continue;
>  		}
> @@ -294,6 +299,11 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
>  		 */
>  		v9ses->flags &= ~V9FS_ACCESS_MASK;
>  		v9ses->flags |= V9FS_ACCESS_USER;
> +		/*
> +		 * We support ACL checks on clinet only if the protocol is
> +		 * 9P2000.L and access is V9FS_ACCESS_CLIENT.
> +		 */
> +		v9ses->flags &= ~V9FS_ACL_MASK;
>  	}

That is this need  update, 
access=user -o posixacl with dotu should not be allowed. 


>  	/*FIXME !! */
>  	/* for legacy mode, fall back to V9FS_ACCESS_ANY */
> diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
> index c4b5d88..b776a2c 100644
> --- a/fs/9p/v9fs.h
> +++ b/fs/9p/v9fs.h
> @@ -28,8 +28,10 @@
>   * @V9FS_PROTO_2000L: whether or not to use 9P2000.l extensions
>   * @V9FS_ACCESS_SINGLE: only the mounting user can access the hierarchy
>   * @V9FS_ACCESS_USER: a new attach will be issued for every user (default)
> + * @V9FS_ACCESS_CLIENT: Just like user, but access check is performed on client.
>   * @V9FS_ACCESS_ANY: use a single attach for all users
>   * @V9FS_ACCESS_MASK: bit mask of different ACCESS options
> + * @V9FS_ACL_ON: If ACLs are enforced

V9FS_POSIX_ACL ^^ that should be


>   *
>   * Session flags reflect options selected by users at mount time
>   */
> @@ -37,13 +39,15 @@
>  			 V9FS_ACCESS_USER |   \
>  			 V9FS_ACCESS_CLIENT)
>  #define V9FS_ACCESS_MASK V9FS_ACCESS_ANY
> +#define V9FS_ACL_MASK V9FS_POSIX_ACL
> 
>  enum p9_session_flags {
>  	V9FS_PROTO_2000U	= 0x01,
>  	V9FS_PROTO_2000L	= 0x02,
>  	V9FS_ACCESS_SINGLE	= 0x04,
>  	V9FS_ACCESS_USER	= 0x08,
> -	V9FS_ACCESS_CLIENT	= 0x10
> +	V9FS_ACCESS_CLIENT	= 0x10,
> +	V9FS_POSIX_ACL		= 0x20
>  };
> 
>  /* possible values of ->cache */
> diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
> index dbaabe3..4f14be5 100644
> --- a/fs/9p/vfs_super.c
> +++ b/fs/9p/vfs_super.c
> @@ -91,7 +91,7 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
>  	    MS_NOATIME;
> 
>  #ifdef CONFIG_9P_FS_POSIX_ACL
> -	if ((v9ses->flags & V9FS_ACCESS_MASK) == V9FS_ACCESS_CLIENT)
> +	if ((v9ses->flags & V9FS_ACL_MASK) == V9FS_POSIX_ACL)
>  		sb->s_flags |= MS_POSIXACL;
>  #endif
> 
> -- 
> 1.6.5.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH-V2] [fs/9P] Add posixacl mount option
  2011-01-27 14:40 ` Aneesh Kumar K. V
@ 2011-01-27 20:09   ` Venkateswararao Jujjuri (JV)
  0 siblings, 0 replies; 3+ messages in thread
From: Venkateswararao Jujjuri (JV) @ 2011-01-27 20:09 UTC (permalink / raw)
  To: Aneesh Kumar K. V; +Cc: v9fs-developer, linux-fsdevel

On 1/27/2011 6:40 AM, Aneesh Kumar K. V wrote:
> On Wed, 26 Jan 2011 22:55:28 -0800, "Venkateswararao Jujjuri (JV)" <jvrao@linux.vnet.ibm.com> wrote:
>> The mount option access=client is overloaded as it assumes acl too.
>> Adding posixacl option to enable POSIX ACLs makes it explicit and clear.
>> Also it is convenient in the future to add other types of acls like richacls.
>>
>> Ideally, the access mode 'client' should be just like V9FS_ACCESS_USER
>> except it underscores the location of access check.
>> Traditional 9P protocol lets the server perform access checks but with
>> this mode, all the access checks will be performed on the client itself.
>> Server just follows the client's directive.
>>
>> Changes from V1
>> --------------
>> - Changed the option to -o posixacl and corresponding changes.
>> - Corrected if conditions in acl.c
>>
>> Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
>> ---
>>  fs/9p/acl.c       |    8 +++++---
>>  fs/9p/v9fs.c      |   24 +++++++++++++++++-------
>>  fs/9p/v9fs.h      |    6 +++++-
>>  fs/9p/vfs_super.c |    2 +-
>>  4 files changed, 28 insertions(+), 12 deletions(-)
>>
>> diff --git a/fs/9p/acl.c b/fs/9p/acl.c
>> index 0a2e480..1ee3434 100644
>> --- a/fs/9p/acl.c
>> +++ b/fs/9p/acl.c
>> @@ -59,7 +59,8 @@ int v9fs_get_acl(struct inode *inode, struct p9_fid *fid)
>>  	struct v9fs_session_info *v9ses;
>>
>>  	v9ses = v9fs_inode2v9ses(inode);
>> -	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) {
>> +	if (((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) ||
>> +			((v9ses->flags & V9FS_ACL_MASK) != V9FS_POSIX_ACL)) {
>>  		set_cached_acl(inode, ACL_TYPE_DEFAULT, NULL);
>>  		set_cached_acl(inode, ACL_TYPE_ACCESS, NULL);
>>  		return 0;
>> @@ -104,9 +105,10 @@ int v9fs_check_acl(struct inode *inode, int mask, unsigned int flags)
>>  		return -ECHILD;
>>
>>  	v9ses = v9fs_inode2v9ses(inode);
>> -	if ((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) {
>> +	if (((v9ses->flags & V9FS_ACCESS_MASK) != V9FS_ACCESS_CLIENT) ||
>> +			((v9ses->flags & V9FS_ACL_MASK) !=
>> V9FS_POSIX_ACL)) {
> 
> check_acl should be called only if IS_POSIXACL(inode) is true. So do we
> really need this check ?. Even the original change is not needed i guess.

May be not; if we need it to be deleted let us have another patch.

> 
>>  		/*
>> -		 * On access = client mode get the acl
>> +		 * On access = client  and acl = on mode get the acl
>>  		 * values from the server
>>  		 */
>>  		return 0;
>> diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
>> index d34f293..7823a7c 100644
>> --- a/fs/9p/v9fs.c
>> +++ b/fs/9p/v9fs.c
>> @@ -55,7 +55,7 @@ enum {
>>  	/* Cache options */
>>  	Opt_cache_loose, Opt_fscache,
>>  	/* Access options */
>> -	Opt_access,
>> +	Opt_access, Opt_posixacl,
>>  	/* Error token */
>>  	Opt_err
>>  };
>> @@ -73,6 +73,7 @@ static const match_table_t tokens = {
>>  	{Opt_fscache, "fscache"},
>>  	{Opt_cachetag, "cachetag=%s"},
>>  	{Opt_access, "access=%s"},
>> +	{Opt_posixacl, "posixacl"},
>>  	{Opt_err, NULL}
>>  };
>>
>> @@ -194,13 +195,7 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>>  			else if (strcmp(s, "any") == 0)
>>  				v9ses->flags |= V9FS_ACCESS_ANY;
>>  			else if (strcmp(s, "client") == 0) {
>> -#ifdef CONFIG_9P_FS_POSIX_ACL
>>  				v9ses->flags |= V9FS_ACCESS_CLIENT;
>> -#else
>> -				P9_DPRINTK(P9_DEBUG_ERROR,
>> -					"Not defined CONFIG_9P_FS_POSIX_ACL. "
>> -					"Ignoring access=client option\n");
>> -#endif
>>  			} else {
>>  				v9ses->flags |= V9FS_ACCESS_SINGLE;
>>  				v9ses->uid = simple_strtoul(s, &e, 10);
>> @@ -210,6 +205,16 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts)
>>  			kfree(s);
>>  			break;
>>
>> +		case Opt_posixacl:
>> +#ifdef CONFIG_9P_FS_POSIX_ACL
>> +			v9ses->flags |= V9FS_POSIX_ACL;
>> +#else
>> +			P9_DPRINTK(P9_DEBUG_ERROR,
>> +					"Not defined CONFIG_9P_FS_POSIX_ACL. "
>> +					"Ignoring posixacl option\n");
>> +#endif
> 
> We should also ensure that -o posixacl is only allowed with
> access=client. 



> 
>> +			break;
>> +
>>  		default:
>>  			continue;
>>  		}
>> @@ -294,6 +299,11 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
>>  		 */
>>  		v9ses->flags &= ~V9FS_ACCESS_MASK;
>>  		v9ses->flags |= V9FS_ACCESS_USER;
>> +		/*
>> +		 * We support ACL checks on clinet only if the protocol is
>> +		 * 9P2000.L and access is V9FS_ACCESS_CLIENT.
>> +		 */
>> +		v9ses->flags &= ~V9FS_ACL_MASK;
>>  	}
> 
> That is this need  update, 
> access=user -o posixacl with dotu should not be allowed. 

Hrm.. that would make sense.. I can add a check here.

> 
> 
>>  	/*FIXME !! */
>>  	/* for legacy mode, fall back to V9FS_ACCESS_ANY */
>> diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
>> index c4b5d88..b776a2c 100644
>> --- a/fs/9p/v9fs.h
>> +++ b/fs/9p/v9fs.h
>> @@ -28,8 +28,10 @@
>>   * @V9FS_PROTO_2000L: whether or not to use 9P2000.l extensions
>>   * @V9FS_ACCESS_SINGLE: only the mounting user can access the hierarchy
>>   * @V9FS_ACCESS_USER: a new attach will be issued for every user (default)
>> + * @V9FS_ACCESS_CLIENT: Just like user, but access check is performed on client.
>>   * @V9FS_ACCESS_ANY: use a single attach for all users
>>   * @V9FS_ACCESS_MASK: bit mask of different ACCESS options
>> + * @V9FS_ACL_ON: If ACLs are enforced
> 
> V9FS_POSIX_ACL ^^ that should be

Good catch.

Thanks,
JV

> 
> 
>>   *
>>   * Session flags reflect options selected by users at mount time
>>   */
>> @@ -37,13 +39,15 @@
>>  			 V9FS_ACCESS_USER |   \
>>  			 V9FS_ACCESS_CLIENT)
>>  #define V9FS_ACCESS_MASK V9FS_ACCESS_ANY
>> +#define V9FS_ACL_MASK V9FS_POSIX_ACL
>>
>>  enum p9_session_flags {
>>  	V9FS_PROTO_2000U	= 0x01,
>>  	V9FS_PROTO_2000L	= 0x02,
>>  	V9FS_ACCESS_SINGLE	= 0x04,
>>  	V9FS_ACCESS_USER	= 0x08,
>> -	V9FS_ACCESS_CLIENT	= 0x10
>> +	V9FS_ACCESS_CLIENT	= 0x10,
>> +	V9FS_POSIX_ACL		= 0x20
>>  };
>>
>>  /* possible values of ->cache */
>> diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
>> index dbaabe3..4f14be5 100644
>> --- a/fs/9p/vfs_super.c
>> +++ b/fs/9p/vfs_super.c
>> @@ -91,7 +91,7 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
>>  	    MS_NOATIME;
>>
>>  #ifdef CONFIG_9P_FS_POSIX_ACL
>> -	if ((v9ses->flags & V9FS_ACCESS_MASK) == V9FS_ACCESS_CLIENT)
>> +	if ((v9ses->flags & V9FS_ACL_MASK) == V9FS_POSIX_ACL)
>>  		sb->s_flags |= MS_POSIXACL;
>>  #endif
>>
>> -- 
>> 1.6.5.2
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-01-27 20:09 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-27  6:55 [PATCH-V2] [fs/9P] Add posixacl mount option Venkateswararao Jujjuri (JV)
2011-01-27 14:40 ` Aneesh Kumar K. V
2011-01-27 20:09   ` Venkateswararao Jujjuri (JV)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.