xfs
[Top] [All Lists]

[PATCH] powerpc/spufs: convert userns uid/gid mount options to kuid/kgid

To: Ben Myers <bpm@xxxxxxx>
Subject: [PATCH] powerpc/spufs: convert userns uid/gid mount options to kuid/kgid
From: Dwight Engen <dwight.engen@xxxxxxxxxx>
Date: Wed, 21 Aug 2013 14:33:51 -0400
Cc: Jeremy Kerr <jk@xxxxxxxxxx>, cbe-oss-dev@xxxxxxxxxxxxxxxx, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>, Arnd Bergmann <arnd@xxxxxxxx>, Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-next@xxxxxxxxxxxxxxx, Gao feng <gaofeng@xxxxxxxxxxxxxx>, linuxppc-dev@xxxxxxxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20130821155654.GI5262@xxxxxxx>
Organization: Oracle Corporation
References: <20130820172052.1f0d89ddf6a1a40ef70333fd@xxxxxxxxxxxxxxxx> <20130820120702.000b044e@xxxxxxxxxx> <201308202246.30869.arnd@xxxxxxxx> <20130821010822.220f592a@xxxxxxxxxx> <52145E6C.80404@xxxxxxxxxx> <20130821155654.GI5262@xxxxxxx>
Acked-by: Jeremy Kerr <jk@xxxxxxxxxx>
Tested-by: Jeremy Kerr <jk@xxxxxxxxxx>
Signed-off-by: Dwight Engen <dwight.engen@xxxxxxxxxx>
---
 arch/powerpc/platforms/cell/spufs/inode.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/platforms/cell/spufs/inode.c 
b/arch/powerpc/platforms/cell/spufs/inode.c
index f390042..87ba7cf 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -620,12 +620,16 @@ spufs_parse_options(struct super_block *sb, char 
*options, struct inode *root)
                case Opt_uid:
                        if (match_int(&args[0], &option))
                                return 0;
-                       root->i_uid = option;
+                       root->i_uid = make_kuid(current_user_ns(), option);
+                       if (!uid_valid(root->i_uid))
+                               return 0;
                        break;
                case Opt_gid:
                        if (match_int(&args[0], &option))
                                return 0;
-                       root->i_gid = option;
+                       root->i_gid = make_kgid(current_user_ns(), option);
+                       if (!gid_valid(root->i_gid))
+                               return 0;
                        break;
                case Opt_mode:
                        if (match_octal(&args[0], &option))
-- 
1.8.1.4

On Wed, 21 Aug 2013 10:56:54 -0500
Ben Myers <bpm@xxxxxxx> wrote:

> Hey Dwight,
> 
> On Wed, Aug 21, 2013 at 02:30:04PM +0800, Jeremy Kerr wrote:
> > > Yes, I agree. The other filesystems that take an Opt_uid as well
> > > do use current_user_ns() and not init_user_ns. They also do a
> > > uid_valid() check and fail the mount (or fallback to
> > > GLOBAL_ROOT_UID). So I think that would look like this:
> > 
> > Looks good to me. Builds and mounts as expected.
> > 
> > Acked-by: Jeremy Kerr <jk@xxxxxxxxxx>
> 
> Could you repost this patch with the right subject and a commit
> header?  Given Jeremy's Ack I think we could proceed to pull this in.

Sure, I just wanted to make sure someone had tested it first, which it
looks like Jeremy did, thanks.

> Regards,
>       Ben

<Prev in Thread] Current Thread [Next in Thread>