aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2005-01-09 20:05:27 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2005-01-09 20:05:27 +0000
commit3c7d41bd13e48abe622ff0eec97ab716d74484a2 (patch)
tree996b962d7b94bfb687d14557904f437782467c1f
parent64107a63bef661b0ba53744bed84f7cd89c84c93 (diff)
fix
-rw-r--r--ChangeLog9
-rw-r--r--kernel/dir.c4
-rw-r--r--kernel/fuse_i.h2
-rw-r--r--kernel/inode.c18
-rw-r--r--lib/helper.c1
-rw-r--r--util/fusermount.c4
6 files changed, 24 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 747a1a9..24ce02d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
+ * Change "uid" mount option to "user_id" to avoid confusion with a
+ mount option "uid" commonly used by many filesystems
+
+2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
+
* Released 2.2-pre1
2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
@@ -117,6 +122,10 @@
* Add binary compatibility to 2.1 version of library with symbol
versioning
+2004-12-03 Miklos Szeredi <miklos@szeredi.hu>
+
+ * Released 2.1
+
2004-12-01 Miklos Szeredi <miklos@szeredi.hu>
* kernel: clean up writing functions
diff --git a/kernel/dir.c b/kernel/dir.c
index 08427a9..97d9a0b 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -436,7 +436,7 @@ static int fuse_revalidate(struct dentry *entry)
if (get_node_id(inode) == FUSE_ROOT_ID) {
if (!(fc->flags & FUSE_ALLOW_OTHER) &&
- current->fsuid != fc->uid &&
+ current->fsuid != fc->user_id &&
(!(fc->flags & FUSE_ALLOW_ROOT) ||
current->fsuid != 0))
return -EACCES;
@@ -450,7 +450,7 @@ static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd)
{
struct fuse_conn *fc = get_fuse_conn(inode);
- if (!(fc->flags & FUSE_ALLOW_OTHER) && current->fsuid != fc->uid &&
+ if (!(fc->flags & FUSE_ALLOW_OTHER) && current->fsuid != fc->user_id &&
(!(fc->flags & FUSE_ALLOW_ROOT) || current->fsuid != 0))
return -EACCES;
else if (fc->flags & FUSE_DEFAULT_PERMISSIONS) {
diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h
index 15c5d8b..bfbe864 100644
--- a/kernel/fuse_i.h
+++ b/kernel/fuse_i.h
@@ -253,7 +253,7 @@ struct fuse_conn {
struct file *file;
/** The user id for this mount */
- uid_t uid;
+ uid_t user_id;
/** The fuse mount flags for this mount */
unsigned flags;
diff --git a/kernel/inode.c b/kernel/inode.c
index 1fd4edb..d052f10 100644
--- a/kernel/inode.c
+++ b/kernel/inode.c
@@ -56,7 +56,7 @@ MODULE_PARM_DESC(mount_max, "Maximum number of FUSE mounts allowed, if -1 then u
struct fuse_mount_data {
int fd;
unsigned rootmode;
- unsigned uid;
+ unsigned user_id;
unsigned flags;
unsigned max_read;
};
@@ -270,7 +270,7 @@ static void fuse_put_super(struct super_block *sb)
spin_lock(&fuse_lock);
mount_count --;
fc->sb = NULL;
- fc->uid = 0;
+ fc->user_id = 0;
fc->flags = 0;
/* Flush all readers on this fs */
wake_up_all(&fc->waitq);
@@ -319,7 +319,7 @@ static int fuse_statfs(struct super_block *sb, struct kstatfs *buf)
enum {
OPT_FD,
OPT_ROOTMODE,
- OPT_UID,
+ OPT_USER_ID,
OPT_DEFAULT_PERMISSIONS,
OPT_ALLOW_OTHER,
OPT_ALLOW_ROOT,
@@ -335,7 +335,7 @@ enum {
static match_table_t tokens = {
{OPT_FD, "fd=%u"},
{OPT_ROOTMODE, "rootmode=%o"},
- {OPT_UID, "uid=%u"},
+ {OPT_USER_ID, "user_id=%u"},
{OPT_DEFAULT_PERMISSIONS, "default_permissions"},
{OPT_ALLOW_OTHER, "allow_other"},
{OPT_ALLOW_ROOT, "allow_root"},
@@ -376,10 +376,10 @@ static int parse_fuse_opt(char *opt, struct fuse_mount_data *d)
d->rootmode = value;
break;
- case OPT_UID:
+ case OPT_USER_ID:
if (match_int(&args[0], &value))
return 0;
- d->uid = value;
+ d->user_id = value;
break;
case OPT_DEFAULT_PERMISSIONS:
@@ -427,7 +427,7 @@ static int fuse_show_options(struct seq_file *m, struct vfsmount *mnt)
{
struct fuse_conn *fc = get_fuse_conn_super(mnt->mnt_sb);
- seq_printf(m, ",uid=%u", fc->uid);
+ seq_printf(m, ",user_id=%u", fc->user_id);
if (fc->flags & FUSE_DEFAULT_PERMISSIONS)
seq_puts(m, ",default_permissions");
if (fc->flags & FUSE_ALLOW_OTHER)
@@ -476,7 +476,7 @@ static struct fuse_conn *new_conn(void)
fc->sb = NULL;
fc->file = NULL;
fc->flags = 0;
- fc->uid = 0;
+ fc->user_id = 0;
init_waitqueue_head(&fc->waitq);
INIT_LIST_HEAD(&fc->pending);
INIT_LIST_HEAD(&fc->processing);
@@ -646,7 +646,7 @@ static int fuse_read_super(struct super_block *sb, void *data, int silent)
return -EINVAL;
fc->flags = d.flags;
- fc->uid = d.uid;
+ fc->user_id = d.user_id;
fc->max_read = d.max_read;
#ifdef KERNEL_2_6
if (fc->max_read / PAGE_CACHE_SIZE < fc->bdi.ra_pages)
diff --git a/lib/helper.c b/lib/helper.c
index 25a60aa..cdf9ab2 100644
--- a/lib/helper.c
+++ b/lib/helper.c
@@ -36,6 +36,7 @@ static void usage(const char *progname)
"Mount options:\n"
" default_permissions enable permission checking\n"
" allow_other allow access to other users\n"
+ " allow_root allow access to root\n"
" kernel_cache cache files in kernel\n"
" large_read issue large read requests (2.4 only)\n"
" direct_io use direct I/O\n"
diff --git a/util/fusermount.c b/util/fusermount.c
index 0686d7a..0ab5d4c 100644
--- a/util/fusermount.c
+++ b/util/fusermount.c
@@ -460,7 +460,7 @@ static int do_mount(const char *mnt, const char *type, mode_t rootmode,
fsname[len - fsname_str_len] = '\0';
} else if (!begins_with(s, "fd=") &&
!begins_with(s, "rootmode=") &&
- !begins_with(s, "uid=")) {
+ !begins_with(s, "user_id=")) {
int on;
int flag;
int skip_option = 0;
@@ -501,7 +501,7 @@ static int do_mount(const char *mnt, const char *type, mode_t rootmode,
free(optbuf);
return -1;
}
- sprintf(d, "fd=%i,rootmode=%o,uid=%i", fd, rootmode, getuid());
+ sprintf(d, "fd=%i,rootmode=%o,user_id=%i", fd, rootmode, getuid());
if (fsname == NULL) {
fsname = strdup(dev);
if (!fsname) {