All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Haynes <loghyr@primarydata.com>
To: "J. Bruce Fields" <bfields@redhat.com>
Cc: Linux NFS Mailing list <linux-nfs@vger.kernel.org>
Subject: [PATCH pynfs 06/12] Add xdr for Flex Files Layout Type
Date: Sat, 26 Nov 2016 22:26:35 -0800	[thread overview]
Message-ID: <1480228001-64821-7-git-send-email-loghyr@primarydata.com> (raw)
In-Reply-To: <1480228001-64821-1-git-send-email-loghyr@primarydata.com>

Note that unlike the block layout, we don't
create a new file as there are too many
dependencies on existing types.

Signed-off-by: Tom Haynes <loghyr@primarydata.com>
---
 nfs4.1/xdrdef/nfs4.x | 97 ++++++++++++++++++++++++++++++++++++++++++++++++=
+++-
 1 file changed, 96 insertions(+), 1 deletion(-)

diff --git a/nfs4.1/xdrdef/nfs4.x b/nfs4.1/xdrdef/nfs4.x
index 16870f7..c2c9361 100644
--- a/nfs4.1/xdrdef/nfs4.x
+++ b/nfs4.1/xdrdef/nfs4.x
@@ -572,7 +572,8 @@ struct stateid4 {
 enum layouttype4 {
         LAYOUT4_NFSV4_1_FILES   =3D 0x1,
         LAYOUT4_OSD2_OBJECTS    =3D 0x2,
-        LAYOUT4_BLOCK_VOLUME    =3D 0x3
+        LAYOUT4_BLOCK_VOLUME    =3D 0x3,
+        LAYOUT4_FLEX_FILES      =3D 0x4
 };
=20
 struct layout_content4 {
@@ -3040,6 +3041,100 @@ default:
         void;
 };
=20
+struct ff_device_versions4 {
+        uint32_t        ffdv_version;
+        uint32_t        ffdv_minorversion;
+        uint32_t        ffdv_rsize;
+        uint32_t        ffdv_wsize;
+        bool            ffdv_tightly_coupled;
+};
+
+struct ff_device_addr4 {
+        multipath_list4     ffda_netaddrs;
+        ff_device_versions4 ffda_versions<>;
+};
+
+const FF_FLAGS_NO_LAYOUTCOMMIT   =3D 0x00000001;
+const FF_FLAGS_NO_IO_THRU_MDS    =3D 0x00000002;
+const FF_FLAGS_NO_READ_IO        =3D 0x00000004;
+typedef uint32_t            ff_flags4;
+
+struct ff_data_server4 {
+    deviceid4               ffds_deviceid;
+    uint32_t                ffds_efficiency;
+    stateid4                ffds_stateid;
+    nfs_fh4                 ffds_fh_vers<>;
+    fattr4_owner            ffds_user;
+    fattr4_owner_group      ffds_group;
+};
+
+struct ff_mirror4 {
+    ff_data_server4         ffm_data_servers<>;
+};
+
+struct ff_layout4 {
+    length4                 ffl_stripe_unit;
+    ff_mirror4              ffl_mirrors<>;
+    ff_flags4               ffl_flags;
+    uint32_t                ffl_stats_collect_hint;
+};
+
+struct ff_ioerr4 {
+        offset4        ffie_offset;
+        length4        ffie_length;
+        stateid4       ffie_stateid;
+        device_error4  ffie_errors<>;
+};
+
+struct ff_io_latency4 {
+        uint64_t       ffil_ops_requested;
+        uint64_t       ffil_bytes_requested;
+        uint64_t       ffil_ops_completed;
+        uint64_t       ffil_bytes_completed;
+        uint64_t       ffil_bytes_not_delivered;
+        nfstime4       ffil_total_busy_time;
+        nfstime4       ffil_aggregate_completion_time;
+};
+
+struct ff_layoutupdate4 {
+        netaddr4       ffl_addr;
+        nfs_fh4        ffl_fhandle;
+        ff_io_latency4 ffl_read;
+        ff_io_latency4 ffl_write;
+        nfstime4       ffl_duration;
+        bool           ffl_local;
+};
+
+struct ff_iostats4 {
+        offset4           ffis_offset;
+        length4           ffis_length;
+        stateid4          ffis_stateid;
+        io_info4          ffis_read;
+        io_info4          ffis_write;
+        deviceid4         ffis_deviceid;
+        ff_layoutupdate4  ffis_layoutupdate;
+};
+
+struct ff_layoutreturn4 {
+        ff_ioerr4     fflr_ioerr_report<>;
+        ff_iostats4   fflr_iostats_report<>;
+};
+
+union ff_mirrors_hint switch (bool ffmc_valid) {
+    case TRUE:
+        uint32_t    ffmc_mirrors;
+    case FALSE:
+        void;
+};
+
+struct ff_layouthint4 {
+    ff_mirrors_hint fflh_mirrors_hint;
+};
+
+enum ff_cb_recall_any_mask {
+    FF_RCA4_TYPE_MASK_READ =3D -2,
+    FF_RCA4_TYPE_MASK_RW   =3D -1
+};
=20
 /*
  * Operation arrays (the rest)
--=20
2.3.6


  parent reply	other threads:[~2016-11-27  6:27 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-27  6:26 [PATCH pynfs 00/12] Flex File support Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 01/12] According to RFC7863, this is not an array Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 02/12] Close the files opened in the OPEN tests Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 03/12] Some more file closes to cleanup state on the server Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 04/12] Get rid of the client records as well as the session records Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 05/12] Really, really close those open temp files to remove state on the server Tom Haynes
2016-11-27  6:26 ` Tom Haynes [this message]
2016-11-27  6:26 ` [PATCH pynfs 07/12] Simple tests of the flex file layout type Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 08/12] Add a check to see if NFS4ERR_OLD_STATEID is issued on concurrent layoutgets Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 09/12] Check that the flex file access uid/gid are correct for the different iomodes Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 10/12] FFLS1: Simulate LAYOUTSTATS for 20 small file creations Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 11/12] Factor out checking seqid for flex file layouts Tom Haynes
2016-11-27  6:26 ` [PATCH pynfs 12/12] Add layoutstats tests for flex files Tom Haynes
2016-11-28 17:22   ` J. Bruce Fields
2016-11-28 17:52     ` Tom Haynes
2016-11-28 16:33 ` [PATCH pynfs 00/12] Flex File support J. Bruce Fields
2016-11-28 16:53   ` Tom Haynes
2016-11-28 21:47   ` J. Bruce Fields
2016-11-28 23:38     ` Tom Haynes
2016-11-29  1:55       ` J. Bruce Fields
2016-11-29 23:44   ` Frank Filz
2016-11-30 14:24     ` J. Bruce Fields
2016-11-30 16:56       ` Frank Filz

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=1480228001-64821-7-git-send-email-loghyr@primarydata.com \
    --to=loghyr@primarydata.com \
    --cc=bfields@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.