From: Fred Isaman <iisaman@netapp.com>
To: Benny Halevy <bhalevy@panasas.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH 06/12] RFC: nfs: set layout driver
Date: Mon, 20 Sep 2010 11:17:47 -0400 [thread overview]
Message-ID: <AANLkTin3mabp5XBy8ivYisDaBSskXw9bK9A_-JQT8ozo@mail.gmail.com> (raw)
In-Reply-To: <4C976E81.9040001@panasas.com>
On Mon, Sep 20, 2010 at 10:24 AM, Benny Halevy <bhalevy@panasas.com> wrote:
> On 2010-09-20 16:06, Fred Isaman wrote:
>> On Mon, Sep 20, 2010 at 6:42 AM, Benny Halevy <bhalevy@panasas.com> wrote:
>>> On 2010-09-18 05:17, Fred Isaman wrote:
>>>> From: The pNFS Team <linux-nfs@vger.kernel.org>
>>>>
>>>> Put in the infrastructure that uses information returned from the
>>>> server at mount to select a layout driver module.
>>>>
>>>> In this patch, a stub is used that always returns "no driver found".
>>>>
>>>> Signed-off-by: TBD - melding/reorganization of several patches
>>>> ---
>>>> fs/nfs/Makefile | 1 +
>>>> fs/nfs/client.c | 4 ++
>>>> fs/nfs/pnfs.c | 78 +++++++++++++++++++++++++++++++++++++++++++++
>>>> fs/nfs/pnfs.h | 56 ++++++++++++++++++++++++++++++++
>>>> include/linux/nfs_fs.h | 1 +
>>>> include/linux/nfs_fs_sb.h | 1 +
>>>> 6 files changed, 141 insertions(+), 0 deletions(-)
>>>> create mode 100644 fs/nfs/pnfs.c
>>>> create mode 100644 fs/nfs/pnfs.h
>>>>
>>>> diff --git a/fs/nfs/Makefile b/fs/nfs/Makefile
>>>> index da7fda6..bb9e773 100644
>>>> --- a/fs/nfs/Makefile
>>>> +++ b/fs/nfs/Makefile
>>>> @@ -15,5 +15,6 @@ nfs-$(CONFIG_NFS_V4) += nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \
>>>> delegation.o idmap.o \
>>>> callback.o callback_xdr.o callback_proc.o \
>>>> nfs4namespace.o
>>>> +nfs-$(CONFIG_NFS_V4_1) += pnfs.o
>>>> nfs-$(CONFIG_SYSCTL) += sysctl.o
>>>> nfs-$(CONFIG_NFS_FSCACHE) += fscache.o fscache-index.o
>>>> diff --git a/fs/nfs/client.c b/fs/nfs/client.c
>>>> index 4e7df2a..eed1212 100644
>>>> --- a/fs/nfs/client.c
>>>> +++ b/fs/nfs/client.c
>>>> @@ -48,6 +48,7 @@
>>>> #include "iostat.h"
>>>> #include "internal.h"
>>>> #include "fscache.h"
>>>> +#include "pnfs.h"
>>>>
>>>> #define NFSDBG_FACILITY NFSDBG_CLIENT
>>>>
>>>> @@ -898,6 +899,8 @@ static void nfs_server_set_fsinfo(struct nfs_server *server, struct nfs_fsinfo *
>>>> if (server->wsize > NFS_MAX_FILE_IO_SIZE)
>>>> server->wsize = NFS_MAX_FILE_IO_SIZE;
>>>> server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
>>>> + set_pnfs_layoutdriver(server, fsinfo->layouttype);
>>>> +
>>>
>>> Originally (9170cf5 pnfs_submit: set and unset pnfs layoutdriver modules),
>>> nfs4_init_pnfs called set_pnfs_layoutdriver under the following conditions:
>>>
>>> if (nfs4_has_session(clp) &&
>>> (clp->cl_exchange_flags & EXCHGID4_FLAG_USE_PNFS_MDS))
>>> set_pnfs_layoutdriver(server, fsinfo->layouttype);
>>>
>>> So in the DS only case we don't want to set server->pnfs_curr_ld.
>>> did you test your code with a standalone DS to make there are no
>>> ill side effects in this case?
>>>
>>
>> This is called from the mount code. It is never called for a DS
>> (unless the DS is also a MDS, in which case it will be called in the
>> MDS role).
>
> So at least let's add a BUG_ON and a comment since we're relying on
> side effects of code implemented elsewhere.
>
OK.
> Benny
>
> P.S. I wonder what happens if you try to explicitly mount a DS
> (which is not an MDS).
>
>
Note there are two possibilities here, DS only, or DS and normal NFS
server (but not a MDS).
In the second case, the mount should work, and it does. In the first,
the client should abort when it sees the EXCHID flags (which it
doesn't...this needs to be fixed) or when the server sends
NFS4ERR_NOTSUPP to the PUTROOTFH, which it MUST do.
Fred
next prev parent reply other threads:[~2010-09-20 15:17 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-18 3:17 [PATCH 00/12] RFC: pnfs: LAYOUTGET/DEVINFO submission, v2 Fred Isaman
2010-09-18 3:17 ` [PATCH 01/12] NFSD: remove duplicate NFS4_STATEID_SIZE Fred Isaman
2010-09-18 3:17 ` [PATCH 02/12] SUNRPC: define xdr_decode_opaque_fixed Fred Isaman
2010-09-18 3:17 ` [PATCH 03/12] RFC: pnfsd, pnfs: protocol level pnfs constants Fred Isaman
2010-09-18 3:17 ` [PATCH 04/12] RFC: nfs: change stateid to be a union Fred Isaman
2010-09-18 3:17 ` [PATCH 05/12] RFC: nfs: ask for layouttypes during fsinfo call Fred Isaman
2010-09-20 10:29 ` Benny Halevy
2010-09-20 13:46 ` Fred Isaman
2010-09-18 3:17 ` [PATCH 06/12] RFC: nfs: set layout driver Fred Isaman
2010-09-20 10:42 ` Benny Halevy
2010-09-20 14:06 ` Fred Isaman
2010-09-20 14:21 ` Benny Halevy
2010-09-20 15:24 ` Fred Isaman
2010-09-20 14:24 ` Benny Halevy
2010-09-20 15:17 ` Fred Isaman [this message]
2010-09-20 13:14 ` Benny Halevy
2010-09-20 14:07 ` Fred Isaman
2010-09-18 3:17 ` [PATCH 07/12] RFC: pnfs: full mount/umount infrastructure Fred Isaman
2010-09-20 14:24 ` Benny Halevy
2010-09-20 16:21 ` Fred Isaman
2010-09-20 17:43 ` Benny Halevy
2010-09-18 3:17 ` [PATCH 08/12] RFC: pnfs: filelayout: introduce minimal file layout driver Fred Isaman
2010-09-18 3:17 ` [PATCH 09/12] RFC: nfs: create and destroy inode's layout cache Fred Isaman
2010-09-18 3:17 ` [PATCH 10/12] RFC: nfs: client needs to maintain list of inodes with active layouts Fred Isaman
2010-09-18 3:17 ` [PATCH 11/12] RFC: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure Fred Isaman
2010-09-19 19:07 ` Boaz Harrosh
2010-09-20 14:56 ` Fred Isaman
2010-09-20 16:20 ` Boaz Harrosh
2010-09-20 18:40 ` Benny Halevy
2010-09-20 19:10 ` Fred Isaman
2010-09-18 3:17 ` [PATCH 12/12] RFC: pnfs: filelayout: add driver's " Fred Isaman
-- strict thread matches above, loose matches on Subject: below --
2010-09-22 22:04 [PATCH 00/12] RFC: pnfs: LAYOUTGRT/DEVINFO submission, v3 Fred Isaman
2010-09-22 22:05 ` [PATCH 06/12] RFC: nfs: set layout driver Fred Isaman
2010-10-10 15:22 [PATCH 00/12] RFC: pnfs: LAYOUTGET/DEVINFO submission, try 4 Fred Isaman
2010-10-10 15:22 ` [PATCH 06/12] RFC: nfs: set layout driver Fred Isaman
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=AANLkTin3mabp5XBy8ivYisDaBSskXw9bK9A_-JQT8ozo@mail.gmail.com \
--to=iisaman@netapp.com \
--cc=bhalevy@panasas.com \
--cc=linux-nfs@vger.kernel.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).