From: "J. Bruce Fields" <bfields@redhat.com>
To: Benny Halevy <bhalevy@primarydata.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH RFC v0 06/49] pnfsd: define pnfs_export_operations
Date: Fri, 27 Sep 2013 10:39:29 -0400 [thread overview]
Message-ID: <20130927143929.GC9946@pad.fieldses.org> (raw)
In-Reply-To: <1380220815-12955-1-git-send-email-bhalevy@primarydata.com>
On Thu, Sep 26, 2013 at 02:40:15PM -0400, Benny Halevy wrote:
> From: Benny Halevy <bhalevy@panasas.com>
>
> struct pnfs_export_operations defines the VFS level API for pNFS,
> not including callbacks. A pnfs-exportable filesystem sets
> a pointer to its pnfs export vector in its struct super_block.s_pnfs_op.
>
> The file system provides the per-superblock layout_type method that
> determines if it supports pnfs for the filesystem identified by
> the superblock, and if so, with which layout type (only one per-sb is
> supported).
>
> Device ops:
> get_device_iter is used to fill-in the device list for GETDEVICELIST
> and get_device_info is used to encode the device info for GETDEVICEINFO.
>
> Layout ops:
> layout_get, layout_commit, and layout_return implement the file system- and
> layout type- specific parts of their respective protocol operations: LAYOUTGET,
> LAYOUTCOMMIT, and LAYOUTRETURN.
>
> The following methods are mandatory to be implemented:
> layout_type, get_device_info, and layout_get.
>
> Note: define pnfs export operations in a stub form in this patch.
> Actual operations are defined along with their usage.
Patches touching the superblock or the new pnfs export operations should
probably all be cc'd to linux-fsdevel.
--b.
>
> [pnfsd: provide default no-op operations]
> Signed-off-by: Benny Halevy <bhalevy@panasas.com>
> [pnfsd: compile fixes for pnfsd branch]
> Signed-off-by: Fred Isaman <iisaman@citi.umich.edu>
> [gfs2: set pnfs_dlm_export_ops only for CONFIG_PNFSD]
> [pnfsd: handle s_pnfs_op==NULL]
> Signed-off-by: Benny Halevy <bhalevy@panasas.com>
> Signed-off-by: Benny Halevy <bhalevy@primarydata.com>
> ---
> fs/nfsd/export.c | 2 +-
> include/linux/fs.h | 2 ++
> include/linux/nfsd/nfsd4_pnfs.h | 14 ++++++++++++++
> 3 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index 5f38ea3..f26b0b9 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -16,7 +16,7 @@
> #include <linux/module.h>
> #include <linux/exportfs.h>
> #include <linux/sunrpc/svc_xprt.h>
> -
> +#include <linux/nfsd/nfsd4_pnfs.h>
> #include <net/ipv6.h>
>
> #include "nfsd.h"
> diff --git a/include/linux/fs.h b/include/linux/fs.h
> index 3f40547..d9186a4 100644
> --- a/include/linux/fs.h
> +++ b/include/linux/fs.h
> @@ -34,6 +34,7 @@
> #include <uapi/linux/fs.h>
>
> struct export_operations;
> +struct pnfs_export_operations;
> struct hd_geometry;
> struct iovec;
> struct nameidata;
> @@ -1251,6 +1252,7 @@ struct super_block {
> const struct dquot_operations *dq_op;
> const struct quotactl_ops *s_qcop;
> const struct export_operations *s_export_op;
> + const struct pnfs_export_operations *s_pnfs_op;
> unsigned long s_flags;
> unsigned long s_magic;
> struct dentry *s_root;
> diff --git a/include/linux/nfsd/nfsd4_pnfs.h b/include/linux/nfsd/nfsd4_pnfs.h
> index 9e7d95e..ff6613e 100644
> --- a/include/linux/nfsd/nfsd4_pnfs.h
> +++ b/include/linux/nfsd/nfsd4_pnfs.h
> @@ -34,4 +34,18 @@
> #ifndef _LINUX_NFSD_NFSD4_PNFS_H
> #define _LINUX_NFSD_NFSD4_PNFS_H
>
> +/*
> + * pNFS export operations vector.
> + *
> + * The filesystem must implement the following methods:
> + * layout_type
> + * get_device_info
> + * layout_get
> + *
> + * All other methods are optional and can be set to NULL if not implemented.
> + */
> +struct pnfs_export_operations {
> + /* stub */
> +};
> +
> #endif /* _LINUX_NFSD_NFSD4_PNFS_H */
> --
> 1.8.3.1
>
next prev parent reply other threads:[~2013-09-27 14:39 UTC|newest]
Thread overview: 139+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-26 18:36 [PATCH RFC v0 0/49] pnfsd-dlm Benny Halevy
2013-09-26 18:39 ` [PATCH RFC v0 01/49] pnfsd: Define CONFIG_PNFSD Benny Halevy
2013-09-26 18:39 ` [PATCH RFC v0 02/49] pnfsd: define NFSDDBG_PNFS Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 03/49] pnfsd: return pnfs flags on exchange_id Benny Halevy
2013-09-26 21:55 ` J. Bruce Fields
2013-09-27 1:09 ` Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 04/49] pnfsd: don't set up back channel on create_session for ds Benny Halevy
2013-09-26 22:01 ` J. Bruce Fields
2013-09-27 1:20 ` Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 05/49] pnfsd: introduce pnfsd header files Benny Halevy
2013-09-29 11:43 ` Christoph Hellwig
2013-09-29 12:12 ` Benny Halevy
2013-09-29 12:13 ` Christoph Hellwig
2013-09-29 12:20 ` Benny Halevy
2013-09-29 12:21 ` Christoph Hellwig
2013-09-29 12:35 ` Christoph Hellwig
2013-09-30 15:23 ` Benny Halevy
2013-10-01 13:19 ` Christoph Hellwig
2013-10-01 1:05 ` Boaz Harrosh
2013-10-01 13:33 ` Christoph Hellwig
2013-10-02 11:35 ` Benny Halevy
2013-10-02 16:06 ` Christoph Hellwig
2013-10-01 20:30 ` J. Bruce Fields
2013-10-02 11:36 ` Benny Halevy
2013-10-02 16:07 ` Christoph Hellwig
2013-10-03 6:02 ` Benny Halevy
2013-10-03 9:55 ` Christoph Hellwig
2013-10-03 12:29 ` Benny Halevy
2013-10-03 12:37 ` Christoph Hellwig
2013-10-03 13:12 ` Ric Wheeler
2013-10-03 13:17 ` Christoph Hellwig
2013-10-03 13:18 ` Ric Wheeler
2013-10-03 14:19 ` Benny Halevy
2013-10-03 14:21 ` Christoph Hellwig
2013-10-03 14:24 ` Ric Wheeler
2013-10-03 14:38 ` Benny Halevy
2013-10-01 1:41 ` Boaz Harrosh
2013-10-01 19:43 ` J. Bruce Fields
2013-09-26 18:40 ` [PATCH RFC v0 06/49] pnfsd: define pnfs_export_operations Benny Halevy
2013-09-27 14:39 ` J. Bruce Fields [this message]
2013-09-29 10:53 ` Benny Halevy
2013-09-29 12:14 ` Christoph Hellwig
2013-09-26 18:40 ` [PATCH RFC v0 07/49] pnfsd: add pnfs export option Benny Halevy
2013-09-27 14:36 ` J. Bruce Fields
2013-09-29 10:51 ` Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 08/49] pnfsd: layout verify Benny Halevy
2013-09-27 14:44 ` J. Bruce Fields
2013-09-29 11:16 ` Benny Halevy
2013-10-01 20:38 ` J. Bruce Fields
2013-10-02 11:42 ` Benny Halevy
2013-10-01 22:12 ` J. Bruce Fields
2013-09-26 18:40 ` [PATCH RFC v0 09/49] pnfsd: initial stub Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 10/49] pnfsd: use sbid hash table to map super_blocks to devid major identifiers Benny Halevy
2013-10-01 22:14 ` J. Bruce Fields
2013-10-02 14:32 ` Benny Halevy
2013-10-02 15:24 ` J. Bruce Fields
2013-10-11 19:56 ` Christoph Hellwig
2013-10-13 6:11 ` Benny Halevy
2013-10-13 11:08 ` Christoph Hellwig
2013-10-13 12:44 ` Benny Halevy
2013-10-14 14:15 ` Christoph Hellwig
2013-09-26 18:40 ` [PATCH RFC v0 11/49] NFSD: introduce exp_xdr.h Benny Halevy
2013-09-29 12:15 ` Christoph Hellwig
2013-09-30 15:25 ` Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 12/49] pnfsd: get device list/info Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 13/49] pnfsd: filelayout: " Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 14/49] pnfsd: provide helper for xdr encoding of deviceid Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 15/49] pnfsd: add helper functions for identifying DS filehandles Benny Halevy
2013-09-26 18:40 ` [PATCH RFC v0 16/49] pnfsd: accept all ds stateids Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 17/49] DEBUG: nfsd: more client_lock asserts Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 18/49] pnfsd: nfs4_assert_state_locked Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 19/49] pnfsd: layout get Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 20/49] pnfsd: filelayout: layout encoding Benny Halevy
2013-09-29 12:16 ` Christoph Hellwig
2013-10-01 1:15 ` Boaz Harrosh
2013-10-01 13:34 ` Christoph Hellwig
2013-10-01 6:04 ` Benny Halevy
2013-10-02 14:27 ` Benny Halevy
2013-10-02 16:09 ` Christoph Hellwig
2013-09-26 18:41 ` [PATCH RFC v0 21/49] nfsd: no need to unhash_stid before free Benny Halevy
2013-10-11 19:37 ` Christoph Hellwig
2013-10-13 6:23 ` Benny Halevy
2013-10-13 19:28 ` J. Bruce Fields
2013-09-26 18:41 ` [PATCH RFC v0 22/49] nfsd: cleanup free_stid Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 23/49] pnfsd: layout state allocation Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 24/49] pnfsd: process the layout stateid Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 25/49] pnfsd: layout state per client tracking Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 26/49] pnfsd: layout state per file tracking Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 27/49] pnfsd: hash layouts on layout state Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 28/49] pnfsd: support layout segment merging Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 29/49] pnfsd: support layout_type attribute Benny Halevy
2013-09-29 12:17 ` Christoph Hellwig
2013-10-01 1:21 ` Boaz Harrosh
2013-10-01 8:32 ` Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 30/49] pnfsd: make pnfs server return layout_blksize when the client asks for it Benny Halevy
2013-09-26 18:41 ` [PATCH RFC v0 31/49] pnfsd: add support for per-file layout_types attribute Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 32/49] pnfsd: per block device dlm data server list cache Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 33/49] pnfsd: Add IP address validation to nfsd4_set_pnfs_dlm_device() Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 34/49] pnfsd: new nfsd filesystem file: pnfs_dlm_device Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 35/49] pnfsd: nfsd4_pnfs_dlm_getdeviter Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 36/49] pnfsd: nfsd4_pnfs_dlm_getdevinfo Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 37/49] pnfsd: make /proc/fs/nfsd/pnfs_dlm_device report dlm device list Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 38/49] pnfsd: nfsd4_pnfs_dlm_layoutget Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 39/49] pnfsd: DLM file layout only support read iomode layouts Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 40/49] pnfsd: add dlm file layout layout-type Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 41/49] pnfsd: dlm pnfs_export_operations Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 42/49] pnfsd: gfs2: use generic file layout pnfs operations vector Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 43/49] pnfsd: release state lock around iput in put_nfs4_file Benny Halevy
2013-09-29 12:19 ` Christoph Hellwig
2013-10-01 13:31 ` Benny Halevy
2013-10-01 13:37 ` Christoph Hellwig
2013-10-02 14:17 ` Benny Halevy
2013-10-02 15:26 ` J. Bruce Fields
2013-10-11 19:47 ` Christoph Hellwig
2013-10-13 6:26 ` Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 44/49] posix_acl: resolve compile dependency in posix_acl.h Benny Halevy
2013-09-29 12:19 ` Christoph Hellwig
2013-10-02 14:17 ` Benny Halevy
2013-10-02 14:36 ` [PATCH] " Benny Halevy
2013-10-09 22:41 ` Andrew Morton
2013-10-10 8:49 ` Benny Halevy
2013-09-26 18:42 ` [PATCH RFC v0 45/49] nfs: resolve compile dependency in nfs_xdr.h Benny Halevy
2013-09-29 12:19 ` Christoph Hellwig
2013-10-02 14:19 ` Benny Halevy
2013-09-26 18:43 ` [PATCH RFC v0 46/49] pnfsd: layout return generic implementation Benny Halevy
2013-09-26 18:43 ` [PATCH RFC v0 47/49] pnfsd: pnfs_expire_client Benny Halevy
2013-09-26 18:43 ` [PATCH RFC v0 48/49] pnfsd: return on close Benny Halevy
2013-09-26 18:43 ` [PATCH RFC v0 49/49] pnfsd: dlm set return_on_close to true Benny Halevy
2013-09-26 19:44 ` [PATCH RFC v0 0/49] pnfsd-dlm J. Bruce Fields
2013-09-26 20:06 ` Benny Halevy
2013-09-27 13:31 ` Boaz Harrosh
2013-09-27 13:34 ` Benny Halevy
2013-09-27 16:37 ` Boaz Harrosh
2013-09-27 20:19 ` Benny Halevy
2013-10-01 0:23 ` Boaz Harrosh
2013-10-01 0:29 ` Boaz Harrosh
2013-10-02 6:02 ` Benny Halevy
2013-09-29 11:42 ` Christoph Hellwig
2013-09-29 11:54 ` Benny Halevy
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=20130927143929.GC9946@pad.fieldses.org \
--to=bfields@redhat.com \
--cc=bhalevy@primarydata.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).