[PATCH 00/14] Overlayfs NFS export support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux