diff options
author | 2004-02-17 08:57:29 +0000 | |
---|---|---|
committer | 2004-02-17 08:57:29 +0000 | |
commit | 69cc79ad513988f2cf1a2ebc72a0327c6d043161 (patch) | |
tree | 4aab6ea6f9061354633870e088d9c15a6cd14084 /kernel/inode.c | |
parent | 3ca0dc5d3ef86d72183a13d5e59c776876e00eab (diff) |
support for user mounts
Diffstat (limited to 'kernel/inode.c')
-rw-r--r-- | kernel/inode.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/kernel/inode.c b/kernel/inode.c index d896965..257b41d 100644 --- a/kernel/inode.c +++ b/kernel/inode.c @@ -23,6 +23,10 @@ #define kstatfs statfs #endif +#ifndef FS_SAFE +#define FS_SAFE 0 +#endif + static void fuse_read_inode(struct inode *inode) { /* No op */ @@ -193,6 +197,11 @@ static int fuse_read_super(struct super_block *sb, void *data, int silent) struct inode *root; struct fuse_mount_data *d = data; + if(!capable(CAP_SYS_ADMIN)) { + if(d->flags & FUSE_ALLOW_OTHER) + return -EPERM; + } + sb->s_blocksize = PAGE_CACHE_SIZE; sb->s_blocksize_bits = PAGE_CACHE_SHIFT; sb->s_magic = FUSE_SUPER_MAGIC; @@ -246,7 +255,7 @@ static struct file_system_type fuse_fs_type = { .name = "fuse", .get_sb = fuse_get_sb, .kill_sb = kill_anon_super, - .fs_flags = 0 + .fs_flags = FS_SAFE, }; #else static struct super_block *fuse_read_super_compat(struct super_block *sb, |