From 3c7d41bd13e48abe622ff0eec97ab716d74484a2 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Sun, 9 Jan 2005 20:05:27 +0000 Subject: [PATCH] fix --- ChangeLog | 9 +++++++++ kernel/dir.c | 4 ++-- kernel/fuse_i.h | 2 +- kernel/inode.c | 18 +++++++++--------- lib/helper.c | 1 + util/fusermount.c | 4 ++-- 6 files changed, 24 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 747a1a9..24ce02d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-01-09 Miklos Szeredi + + * 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 * Released 2.2-pre1 @@ -117,6 +122,10 @@ * Add binary compatibility to 2.1 version of library with symbol versioning +2004-12-03 Miklos Szeredi + + * Released 2.1 + 2004-12-01 Miklos Szeredi * 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) { -- 2.30.2