From: Jeff Layton <jlayton@redhat.com>
To: linux-cifs-client@lists.samba.org, linux-fsdevel@vger.kernel.org
Cc: smfrench@gmail.com
Subject: [PATCH 00/11] cifs: implement multisession mounts (try #2)
Date: Tue, 20 Apr 2010 16:07:08 -0400 [thread overview]
Message-ID: <1271794039-22787-1-git-send-email-jlayton@redhat.com> (raw)
This is a second pass at implementing multisession mounts for CIFS. The
main change since the last one is that I've broken out a series of
preliminary patches into a separate set and posted them separately. This
set is based on those changes:
http://lists.samba.org/archive/linux-cifs-client/2010-April/005830.html
Thus, this set is a bit smaller than the last one. Hopefully that will
make it easier to review.
This patchset is intended to allow CIFS to behave as a truly multiuser
filesystem. The idea here is to have the kernel transparently spawn a
new session with the server whenever one is needed. Obviously, we can't
prompt for a password from the kernel, so for now this is limited to
using krb5 authentication. We could extend this to other authtypes, but
we'll need a way to stash username and password or NTLM hashes in the
kernel keyring.
To use this, you'll need to have root mount the server using sec=krb5 or
krb5i. Then, any user who wants to access the mount will need a valid
krb5 ticket. If they don't have one, then they'll probably get back an
-ENOKEY error on the syscall.
The patchset is pretty usable now, but there are still a number of
to-do items:
- add a way to prune idle sessions and tcons: not too hard to do,
just need to settle on a mechanism to scan for these on a recurring
basis and close them out
- allow the establishment of an anonymous session and allow users
without creds to use that instead of being denied access. This
requires some cleanup to make NTLMSSP work correctly. We may also
need mount options to control that behavior, etc.
- fix the error return so that -ENOKEY and similar errors don't bubble
up on syscalls that don't expect it
...and probably plenty of other stuff. The near term goal is to get the
preliminary patchset in place. Once that's done, I'll start feeding
these to Steve for inclusion. I'm posting these to try and get early
feedback and in the hopes that people who need this functionality will
be willing to help test it out.
Jeff Layton (11):
cifs: add function to get a tcon from cifs_sb
cifs: add tcon field to cifsFileInfo struct
cifs: make various routines use the cifsFileInfo->tcon pointer
cifs: have find_readable/writable_file filter by fsuid
cifs: fix cifs_show_options to show "username=" or "multises"
cifs: have cifs_new_fileinfo take a tcon arg
cifs: allow for cifs_sb_tcon() to return an error
cifs: fix handling of signing with writepages
cifs: add routines to build sessions and tcons on the fly
cifs: on multises mount, set ownership to current_fsuid/current_fsgid
cifs: add "multises" mount option
fs/cifs/cifs_dfs_ref.c | 10 ++-
fs/cifs/cifs_fs_sb.h | 10 ++-
fs/cifs/cifsacl.c | 36 ++++++--
fs/cifs/cifsfs.c | 85 ++++++++-----------
fs/cifs/cifsglob.h | 1 +
fs/cifs/cifsproto.h | 9 ++-
fs/cifs/connect.c | 215 ++++++++++++++++++++++++++++++++++++++++++++++--
fs/cifs/dir.c | 71 ++++++++++------
fs/cifs/file.c | 154 +++++++++++++++++++---------------
fs/cifs/inode.c | 168 ++++++++++++++++++++++++++++---------
fs/cifs/ioctl.c | 19 +----
fs/cifs/link.c | 19 ++++-
fs/cifs/misc.c | 2 +-
fs/cifs/readdir.c | 30 ++++----
fs/cifs/xattr.c | 29 ++++++-
15 files changed, 605 insertions(+), 253 deletions(-)
next reply other threads:[~2010-04-20 20:07 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 20:07 Jeff Layton [this message]
2010-04-20 20:07 ` [PATCH 01/11] cifs: add function to get a tcon from cifs_sb Jeff Layton
2010-04-20 20:07 ` [PATCH 02/11] cifs: add tcon field to cifsFileInfo struct Jeff Layton
2010-04-20 20:07 ` [PATCH 03/11] cifs: make various routines use the cifsFileInfo->tcon pointer Jeff Layton
2010-04-20 20:07 ` [PATCH 04/11] cifs: have find_readable/writable_file filter by fsuid Jeff Layton
2010-04-20 20:07 ` [PATCH 05/11] cifs: fix cifs_show_options to show "username=" or "multises" Jeff Layton
2010-04-20 20:07 ` [PATCH 06/11] cifs: have cifs_new_fileinfo take a tcon arg Jeff Layton
2010-04-20 20:07 ` [PATCH 07/11] cifs: allow for cifs_sb_tcon() to return an error Jeff Layton
2010-04-20 20:07 ` [PATCH 08/11] cifs: fix handling of signing with writepages Jeff Layton
2010-04-20 20:07 ` [PATCH 09/11] cifs: add routines to build sessions and tcons on the fly Jeff Layton
2010-04-20 20:07 ` [PATCH 10/11] cifs: on multises mount, set ownership to current_fsuid/current_fsgid Jeff Layton
2010-04-20 20:07 ` [PATCH 11/11] cifs: add "multises" mount option Jeff Layton
2010-04-21 2:42 ` [PATCH 00/11] cifs: implement multisession mounts (try #2) Steve French
2010-04-21 14:16 ` Stef Bon
2010-04-21 18:13 ` [linux-cifs-client] " Jeff Layton
2010-04-22 14:56 ` Stef Bon
2010-04-22 15:39 ` Jamie Lokier
2010-04-22 16:57 ` Steve French
2010-04-24 2:30 ` [linux-cifs-client] " Jamie Lokier
2010-04-22 19:25 ` Jeff Layton
2010-04-22 19:55 ` Steve French
2010-04-24 2:26 ` [linux-cifs-client] " Jamie Lokier
2010-04-22 17:51 ` Jeff Layton
2010-04-22 19:55 ` Stef Bon
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=1271794039-22787-1-git-send-email-jlayton@redhat.com \
--to=jlayton@redhat.com \
--cc=linux-cifs-client@lists.samba.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=smfrench@gmail.com \
/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).