Skip to content

prep for flex file layout server

Weston Andros Adamson linux-nfs 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest16 patches 5 repliesIn review
  2. v117 patches 13 repliesSuperseded

Changes in v2 from the cover letter

- moved "4.1 client: reclaim_complete after create_session" to "dataserver: reclaim_complete after create_session" as the implicit reclaim complete is needed in DS path, but not in all server tests.

- dropped "4.1 server: service RECLAIM_COMPLETE operations" as it's unneeded.

- formatted these patches with -M flag so we can see moved files

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16dataserver: reclaim_complete after create_sessionnfs4.1/dataserver.py+1 -00 replies
2/16dataserver: only catch connection errornfs4.1/dataserver.py+2 -10 replies
3/164.1 server: avoid traceback in DS disconnect()nfs4.1/dataserver.py+1 -10 replies
4/16move .x files to subdir 'xdrdef'nfs4.1/block.py nfs4.1/client41tests/environment.py nfs4.1/config.py +39 more+141 -1390 replies
5/164.1 client: remove unused importsnfs4.1/nfs4client.py+1 -30 replies
6/164.1 server: add -v flag & silence random outputnfs4.1/dataserver.py nfs4.1/fs.py nfs4.1/nfs4client.py +2 more+30 -500 replies
7/164.1 server: add -s option to print summary of opsnfs4.1/dataserver.py nfs4.1/nfs4client.py nfs4.1/nfs4server.py +1 more+66 -110 replies
8/16dataserver: make generic interface to opsnfs4.1/dataserver.py nfs4.1/fs.py+38 -270 replies
9/16dataserver: don't import * from nfs4 specific modsnfs4.1/dataserver.py+30 -300 replies
10/164.1 server: move nfs4_ops.py to nfs_ops.pynfs4.1/dataserver.py nfs4.1/fs.py nfs4.1/nfs4_ops.py +4 more+124 -900 replies
11/16add mntv3, portmapv2 and nfsv3 .x filesnfs4.1/xdrdef/mnt3.x nfs4.1/xdrdef/nfs3.x nfs4.1/xdrdef/portmap.x+937 -00 replies
12/16dataserver: separate generic and 4.1 codenfs4.1/dataserver.py+57 -450 replies
13/164.1 server: add support for NFSv3 data serversnfs4.1/dataserver.py nfs4.1/nfs3client.py+280 -00 replies
14/164.1 server: get rid of old op_getdeviceinfonfs4.1/nfs4server.py+0 -210 replies
15/16rpc: on socket error, close and mark pipe inactiverpc/rpc.py+23 -30 replies
16/16nfs3clnt: reconnect when sending on inactive pipenfs4.1/nfs3client.py+25 -200 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH pynfs v2 00/16] prep for flex file layout server

Changes in v2:

- moved "4.1 client: reclaim_complete after create_session" to "dataserver: reclaim_complete after create_session" as the implicit reclaim complete is needed in DS path, but not in all server tests.

- dropped "4.1 server: service RECLAIM_COMPLETE operations" as it's unneeded.

- formatted these patches with -M flag so we can see moved files

.. and I pushed the changes to my ff_prep branch.

Thanks!
-dros

These patches are in preparation for the pynfs implementation of a flex file layout server.

I already have patches for a working flex file server, but I figure those should wait until the spec is complete ;)

I pushed these patches to my linux-nfs.org tree on branch 'ff_prep':

git://git.linux-nfs.org/projects/dros/pynfs.git

The prep includes:

- patches that enable pynfs mds using real v4.1 DSes (on the backend, not usable from clients as there is no stateid sharing between mds and ds)

- fix several bugs in pnfs path

- move .x files to subdir 'xdrdef' - the nfs4.1 directory was getting crowded and we're going to add several more .x files along with all of the autogenerated files. Note this change touches server tests too.

- clean up the nfs4server's output - no longer print out EVERY part of EVERY operation which was very efficient at hiding tracebacks and made pynfs even slower. Old functionality is now switched on with -v flag. Also added an in-between mode "-s" that prints a summary of whats going on.

- support for NFSv3 backend communication - this is not actually used yet, but can be tested with file layout by always returning NFS4ERR_LAYOUTUNAVAILABLE in layoutget and using DataServer3 class instead of DataServer41

Weston Andros Adamson (16):
dataserver: reclaim_complete after create_session
dataserver: only catch connection error 4.1 server: avoid traceback in DS disconnect() move .x files to subdir 'xdrdef'
4.1 client: remove unused imports
4.1 server: add -v flag & silence random output 4.1 server: add -s option to print summary of ops
dataserver: make generic interface to ops
dataserver: don't import * from nfs4 specific mods 4.1 server: move nfs4_ops.py to nfs_ops.py add mntv3, portmapv2 and nfsv3 .x files
dataserver: separate generic and 4.1 code 4.1 server: add support for NFSv3 data servers 4.1 server: get rid of old op_getdeviceinfo
rpc: on socket error, close and mark pipe inactive
nfs3clnt: reconnect when sending on inactive pipe

 nfs4.1/block.py                             |   8 +-
 nfs4.1/client41tests/environment.py         |   4 +-
 nfs4.1/config.py                            |   8 +-
 nfs4.1/dataserver.py                        | 308 ++++++++---
 nfs4.1/fs.py                                |  38 +-
 nfs4.1/nfs3client.py                        | 185 +++++++
 nfs4.1/nfs4_ops.py                          |  61 ---
 nfs4.1/nfs4client.py                        |  47 +-
 nfs4.1/nfs4commoncode.py                    |  10 +-
 nfs4.1/nfs4lib.py                           |  62 ++-
 nfs4.1/nfs4server.py                        | 163 +++---
 nfs4.1/nfs4state.py                         |  15 +-
 nfs4.1/nfs_ops.py                           |  89 +++
 nfs4.1/server41tests/environment.py         |   4 +-
 nfs4.1/server41tests/st_block.py            |   4 +-
 nfs4.1/server41tests/st_compound.py         |   4 +-
 nfs4.1/server41tests/st_create_session.py   |   4 +-
 nfs4.1/server41tests/st_current_stateid.py  |   8 +-
 nfs4.1/server41tests/st_debug.py            |   4 +-
 nfs4.1/server41tests/st_delegation.py       |   4 +-
 nfs4.1/server41tests/st_destroy_clientid.py |   2 +-
 nfs4.1/server41tests/st_destroy_session.py  |   4 +-
 nfs4.1/server41tests/st_exchange_id.py      |   4 +-
 nfs4.1/server41tests/st_getdevicelist.py    |   4 +-
 nfs4.1/server41tests/st_lookup.py           |   2 +-
 nfs4.1/server41tests/st_lookupp.py          |   2 +-
 nfs4.1/server41tests/st_open.py             |   8 +-
 nfs4.1/server41tests/st_putfh.py            |   2 +-
 nfs4.1/server41tests/st_reboot.py           |   4 +-
 nfs4.1/server41tests/st_reclaim_complete.py |   2 +-
 nfs4.1/server41tests/st_rename.py           |   4 +-
 nfs4.1/server41tests/st_secinfo.py          |   4 +-
 nfs4.1/server41tests/st_secinfo_no_name.py  |   4 +-
 nfs4.1/server41tests/st_sequence.py         |   4 +-
 nfs4.1/server41tests/st_trunking.py         |   4 +-
 nfs4.1/server41tests/st_verify.py           |   2 +-
 nfs4.1/server_exports.py                    |   7 +-
 nfs4.1/setup.py                             |  33 +-
 nfs4.1/testclient.py                        |   2 +-
 nfs4.1/testserver.py                        |   2 +-
 nfs4.1/xdrdef/__init__.py                   |   0
 nfs4.1/xdrdef/mnt3.x                        |  68 +++
 nfs4.1/xdrdef/nfs3.x                        | 818 ++++++++++++++++++++++++++++
 nfs4.1/{ => xdrdef}/nfs4.x                  |   0
 nfs4.1/{ => xdrdef}/nfs4.x.diff             |   0
 nfs4.1/{ => xdrdef}/pnfs_block.x            |   0
 nfs4.1/xdrdef/portmap.x                     |  51 ++
 nfs4.1/{ => xdrdef}/sctrl.x                 |   0
 rpc/rpc.py                                  |  26 +-
 49 files changed, 1704 insertions(+), 389 deletions(-)
 create mode 100644 nfs4.1/nfs3client.py
 delete mode 100644 nfs4.1/nfs4_ops.py
 create mode 100644 nfs4.1/nfs_ops.py
 create mode 100644 nfs4.1/xdrdef/__init__.py
 create mode 100644 nfs4.1/xdrdef/mnt3.x
 create mode 100644 nfs4.1/xdrdef/nfs3.x
 rename nfs4.1/{ => xdrdef}/nfs4.x (100%)
 rename nfs4.1/{ => xdrdef}/nfs4.x.diff (100%)
 rename nfs4.1/{ => xdrdef}/pnfs_block.x (100%)
 create mode 100644 nfs4.1/xdrdef/portmap.x
 rename nfs4.1/{ => xdrdef}/sctrl.x (100%)
Signature · 1 line
1.8.5.2 (Apple Git-48)