linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/14] Overlayfs NFS export support
@ 2017-10-17 16:44 Amir Goldstein
  2017-10-17 16:44 ` [PATCH 01/14] ovl: hash all overlay inodes for NFS export Amir Goldstein
                   ` (15 more replies)
  0 siblings, 16 replies; 22+ messages in thread
From: Amir Goldstein @ 2017-10-17 16:44 UTC (permalink / raw)
  To: Miklos Szeredi
  Cc: Jeff Layton, J . Bruce Fields, linux-unionfs, linux-fsdevel

Miklos,

This series implements NFS export support [3] and is based on
two prep patch sets [1][2] posted earlier to overlayfs list.
NFS export is enabled for overlayfs mount with the 'verify_dir'
and 'index=all' mount options.

The current implementation will copy up and index directories when
directory file handles are encoded. Those extra copy ups could be
avoided in the future.

The current implementation does NOT support encoding connectable
non-dir file handles for all overlay path types, so overlayfs should
not be exported with the 'subtree_check' option.
I hope this is not a show stopper for merging NFS export support?

You'll notice that the series start by implementing naiive support
for pure upper files export and later on, replaces the implementation
of some of the operations. This may seem strange, but I found it
convenient to progress slowly between testable mile stones and I find
the series easier to review this way. Let me know if you want me to
change the way that this series is organized to get rid of code that
is later removed.

To unit test overlayfs file handles, I enhanced xfstest open_by_handle
test utility to encode/decode directories and check several other cases
that were not covered by the original xfstest test. On my xfstests NFS
export branch [4], there are two generic tests and one overlayfs specific
test on the 'exportfs' group.

I also ran the NFSTest nfstest_posix group on an exported overlayfs
mount, but that test only creates pure upper files in overlay upper dir,
so it is not much of a stress to the implementation.

Amir.

[1] https://github.com/amir73il/linux/commits/ovl-verify-dir
[2] https://github.com/amir73il/linux/commits/ovl-index-all
[3] https://github.com/amir73il/linux/commits/ovl-nfs-export
[4] https://github.com/amir73il/xfstests/commits/ovl-nfs-export

Amir Goldstein (14):
  ovl: hash all overlay inodes for NFS export
  ovl: grab i_count reference of lower inode
  ovl: use d_splice_alias() in place of d_add() in lookup
  ovl: copy up of disconnected dentries
  ovl: encode/decode pure-upper non-connectable file handles
  ovl: encode pure-upper connectable file handles
  ovl: decode pure-upper connectable file handles
  ovl: encode/decode struct ovl_fh format file handles
  ovl: encode non-pure-upper non-connectable file handles
  ovl: obtain a non-pure-upper disconnected dentry
  ovl: decode non-pure-upper non-connectable file handles
  ovl: reconnect non-pure-upper dir file handles
  ovl: wire up NFS export support
  ovl: document NFS export

 Documentation/filesystems/overlayfs.txt |  61 +++++
 fs/overlayfs/Makefile                   |   3 +-
 fs/overlayfs/copy_up.c                  |  74 ++++--
 fs/overlayfs/export.c                   | 433 ++++++++++++++++++++++++++++++++
 fs/overlayfs/inode.c                    |  23 +-
 fs/overlayfs/namei.c                    |  96 ++++---
 fs/overlayfs/overlayfs.h                |  32 ++-
 fs/overlayfs/super.c                    |  25 ++
 fs/overlayfs/util.c                     |  13 +-
 9 files changed, 678 insertions(+), 82 deletions(-)
 create mode 100644 fs/overlayfs/export.c

-- 
2.7.4

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2017-11-09 21:55 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-17 16:44 [PATCH 00/14] Overlayfs NFS export support Amir Goldstein
2017-10-17 16:44 ` [PATCH 01/14] ovl: hash all overlay inodes for NFS export Amir Goldstein
2017-10-17 16:44 ` [PATCH 02/14] ovl: grab i_count reference of lower inode Amir Goldstein
2017-10-17 16:44 ` [PATCH 03/14] ovl: use d_splice_alias() in place of d_add() in lookup Amir Goldstein
2017-10-17 16:44 ` [PATCH 04/14] ovl: copy up of disconnected dentries Amir Goldstein
2017-10-17 16:44 ` [PATCH 05/14] ovl: encode/decode pure-upper non-connectable file handles Amir Goldstein
2017-10-17 16:44 ` [PATCH 06/14] ovl: encode pure-upper connectable " Amir Goldstein
2017-10-18 18:35   ` Amir Goldstein
2017-10-17 16:44 ` [PATCH 07/14] ovl: decode " Amir Goldstein
2017-10-17 16:44 ` [PATCH 08/14] ovl: encode/decode struct ovl_fh format " Amir Goldstein
2017-10-18 18:31   ` Amir Goldstein
2017-10-17 16:44 ` [PATCH 09/14] ovl: encode non-pure-upper non-connectable " Amir Goldstein
2017-10-17 16:44 ` [PATCH 10/14] ovl: obtain a non-pure-upper disconnected dentry Amir Goldstein
2017-10-17 16:44 ` [PATCH 11/14] ovl: decode non-pure-upper non-connectable file handles Amir Goldstein
2017-10-17 16:44 ` [PATCH 12/14] ovl: reconnect non-pure-upper dir " Amir Goldstein
2017-10-17 16:44 ` [PATCH 13/14] ovl: wire up NFS export support Amir Goldstein
2017-10-17 16:44 ` [PATCH 14/14] ovl: document NFS export Amir Goldstein
2017-10-18 18:43 ` [PATCH 00/14] Overlayfs NFS export support Amir Goldstein
2017-11-09 19:02 ` J . Bruce Fields
2017-11-09 19:20   ` Jeff Layton
2017-11-09 19:59   ` Amir Goldstein
2017-11-09 21:55     ` J . Bruce Fields

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).