From: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH 14/15] cifs: add "multiuser" mount option
Date: Mon, 20 Sep 2010 16:01:43 -0700 [thread overview]
Message-ID: <1285023704-2159-15-git-send-email-jlayton@redhat.com> (raw)
In-Reply-To: <1285023704-2159-1-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
This allows someone to declare a mount as a multiuser mount.
Multiuser mounts also imply "noperm" since we want to allow the server
to handle permission checking. It also (for now) requires Kerberos
authentication. Eventually, we could expand this to other authtypes, but
that requires a scheme to allow per-user credential stashing in some
form.
Signed-off-by: Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
fs/cifs/connect.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 3e2b069..c980003 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -101,6 +101,7 @@ struct smb_vol {
bool nostrictsync:1; /* do not force expensive SMBflush on every sync */
bool fsc:1; /* enable fscache */
bool mfsymlinks:1; /* use Minshall+French Symlinks */
+ bool multiuser:1;
unsigned int rsize;
unsigned int wsize;
bool sockopt_tcp_nodelay:1;
@@ -1349,6 +1350,8 @@ cifs_parse_mount_options(char *options, const char *devname,
vol->fsc = true;
} else if (strnicmp(data, "mfsymlinks", 10) == 0) {
vol->mfsymlinks = true;
+ } else if (strnicmp(data, "multiuser", 8) == 0) {
+ vol->multiuser = true;
} else
printk(KERN_WARNING "CIFS: Unknown mount option %s\n",
data);
@@ -1380,6 +1383,13 @@ cifs_parse_mount_options(char *options, const char *devname,
return 1;
}
}
+
+ if (vol->multiuser && !(vol->secFlg & CIFSSEC_MAY_KRB5)) {
+ cERROR(1, "Multiuser mounts currently require krb5 "
+ "authentication!");
+ return 1;
+ }
+
if (vol->UNCip == NULL)
vol->UNCip = &vol->UNC[2];
@@ -2585,6 +2595,9 @@ static void setup_cifs_sb(struct smb_vol *pvolume_info,
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DYNPERM;
if (pvolume_info->fsc)
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_FSCACHE;
+ if (pvolume_info->multiuser)
+ cifs_sb->mnt_cifs_flags |= (CIFS_MOUNT_MULTIUSER |
+ CIFS_MOUNT_NO_PERM);
if (pvolume_info->direct_io) {
cFYI(1, "mounting share using direct i/o");
cifs_sb->mnt_cifs_flags |= CIFS_MOUNT_DIRECT_IO;
--
1.7.2.3
next prev parent reply other threads:[~2010-09-20 23:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-20 23:01 [PATCH 00/15] cifs: multiuser mount overhaul (try #4) Jeff Layton
2010-09-20 23:01 ` [PATCH 03/15] cifs: fix handling of signing with writepages Jeff Layton
2010-09-20 23:01 ` [PATCH 06/15] cifs: add cifs_sb_master_tcon and convert some callers to use it Jeff Layton
2010-09-20 23:01 ` [PATCH 11/15] cifs: fix cifs_show_options to show "username=" or "multiuser" Jeff Layton
2010-09-23 6:12 ` Steve French
2010-10-05 22:00 ` Steve French
[not found] ` <1285023704-2159-1-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-20 23:01 ` [PATCH 01/15] cifs: add tcon field to cifsFileInfo struct Jeff Layton
2010-09-20 23:01 ` [PATCH 02/15] cifs: make various routines use the cifsFileInfo->tcon pointer Jeff Layton
2010-09-20 23:01 ` [PATCH 04/15] cifs: add function to get a tcon from cifs_sb Jeff Layton
2010-09-20 23:01 ` [PATCH 05/15] cifs: temporarily rename cifs_sb->tcon to ptcon to catch stragglers Jeff Layton
2010-09-20 23:01 ` [PATCH 07/15] cifs: have cifs_new_fileinfo take a tcon arg Jeff Layton
2010-09-20 23:01 ` [PATCH 08/15] cifs: add refcounted and timestamped container for holding tcons Jeff Layton
2010-09-20 23:01 ` [PATCH 09/15] cifs: have cifsFileInfo hold a reference to a tlink rather than tcon pointer Jeff Layton
[not found] ` <1285023704-2159-10-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-23 6:08 ` Steve French
[not found] ` <AANLkTi=n=_R_WF8NizLo+zfcBEmzcQpBWWj=_GNEmua1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-23 12:36 ` Jeff Layton
[not found] ` <20100923053623.09bd6f33-4QP7MXygkU+dMjc06nkz3ljfA9RmPOcC@public.gmane.org>
2010-09-23 12:43 ` Jeff Layton
2010-09-20 23:01 ` [PATCH 10/15] cifs: have find_readable/writable_file filter by fsuid Jeff Layton
2010-09-23 6:11 ` Steve French
2010-09-20 23:01 ` [PATCH 12/15] cifs: add routines to build sessions and tcons on the fly Jeff Layton
2010-09-20 23:01 ` [PATCH 13/15] cifs: on multiuser mount, set ownership to current_fsuid/current_fsgid Jeff Layton
[not found] ` <1285023704-2159-14-git-send-email-jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-09-23 6:19 ` Steve French
2010-09-23 12:38 ` Jeff Layton
2010-09-20 23:01 ` Jeff Layton [this message]
2010-09-20 23:01 ` [PATCH 15/15] cifs: implement recurring workqueue job to prune old tcons Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1285023704-2159-15-git-send-email-jlayton@redhat.com \
--to=jlayton-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).