aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/cell
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2007-04-23 21:08:23 +0200
committerArnd Bergmann <arnd@klappe.arndb.de>2007-04-23 21:18:58 +0200
commitf11f5ee70f48899506514e5e0d10ee2c8ddd359a (patch)
tree7afab396d16bf5e55e71128c1abeda9f62f44861 /arch/powerpc/platforms/cell
parent[POWERPC] spufs: use memcpy_fromio() to copy from local store (diff)
downloadlinux-dev-f11f5ee70f48899506514e5e0d10ee2c8ddd359a.tar.xz
linux-dev-f11f5ee70f48899506514e5e0d10ee2c8ddd359a.zip
[POWERPC] spufs: add mode= mount option
Add a 'mode=' option to spufs mount arguments. This allows more control over access to the top-level spufs directory. Tested on Cell. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Diffstat (limited to 'arch/powerpc/platforms/cell')
-rw-r--r--arch/powerpc/platforms/cell/spufs/inode.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
index 6b52dfabaeef..8f6cd8763306 100644
--- a/arch/powerpc/platforms/cell/spufs/inode.c
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
@@ -521,13 +521,14 @@ out:
/* File system initialization */
enum {
- Opt_uid, Opt_gid, Opt_err,
+ Opt_uid, Opt_gid, Opt_mode, Opt_err,
};
static match_table_t spufs_tokens = {
- { Opt_uid, "uid=%d" },
- { Opt_gid, "gid=%d" },
- { Opt_err, NULL },
+ { Opt_uid, "uid=%d" },
+ { Opt_gid, "gid=%d" },
+ { Opt_mode, "mode=%o" },
+ { Opt_err, NULL },
};
static int
@@ -554,6 +555,11 @@ spufs_parse_options(char *options, struct inode *root)
return 0;
root->i_gid = option;
break;
+ case Opt_mode:
+ if (match_octal(&args[0], &option))
+ return 0;
+ root->i_mode = option | S_IFDIR;
+ break;
default:
return 0;
}