Add GPFS to default build, more work on GPFS and delegations.
.gitignore: Add *.diff *.patch core.*

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Remove the fso_pnfs_mds_supported flag and all it's uses

There are already plenty of function vectors in place that
indicate if pNFS will be supported by an FSAL. With any old fsal
and the default implementation for pNFS vectors it will always
do the proper "I don't have any" behavior. So we do not need any
more checks.

nfs4_op_layoutget:
	If ->ops->fs_maximum_segments() returns 0 it means no pnfs

nfs4_op_getdeviceinfo:
	If ops->fs_da_addr_size() returns zero it means no pnfs

nfs4_op_getdevicelist:
	Default processing already does the correct "do nothing"
	thing. So we do not need to duplicate.

nfs4_op_layoutreturn:
	will never be called without pnfs so nothing to do.

So fso_pnfs_mds_supported enum is removed, so is the
nfs4_pnfs_supported(), and so is the return of fso_pnfs_mds_supported
from CEPH fsal

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
pnfs_panfs: PanFS pNFS files and Initial lib

These are just the pnfs files (compiling).
This pnfs layout implementation is a subclass of VFS functionality so locate
the source within the VFS fsal.

Included the Makefile.am.

Missing the regular edits at:
	src/configure.ac
	src/FSAL/FSAL/VFS/Makefile.am
Will come in a separate patch

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Wire up fetching the fds needed for layouts in FSAL_VFS/pnfs_panfs/mds.c

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Integrate Panfs layout methods to VFS

The panfs layout methods are located in FSAL/FSAL_VFS/pnfs_panfs.
It is enabled for build by the option:

  --enable-panfs-pnfs     enable use of PanFS layout extension for VFS

One piece that is missing is a 'create_export' runtime test to
verify that the running kernel supports the necessary ioctl.

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
pnfs_panfs: conditionally enable pnfs_panfs at export creation time

Add a "pnfs_panfs" FS_specific option to enable/disable panfs
export per export-point.

This is so code can be always enabled, so not to bit rot

The FS_specific = ""; string was already parsed by Ganesha core
and is passed as the "const char *fs_options" param to ->create_export().

I defined a new fs_specific_has() function that parse a comma separated
list of key=value or just key, and returns if key was found, and optionally
it's value.
	(Example: FS_specific = "foo=baz,enable_A";)
This function is currently static to FSAL_VFS but could be made public if
needed elsewhere.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Merge remote-tracking branch 'boaz/panfs' into merge_next
Merge remote-tracking branch 'linuxbox2/next' into merge_next
Fix strict compile warnings in GPFS fsal

I commented these rather than delete.  This fsal is still
in flux and this leaves the container_of usage for now.  Once it
settles, these commented regions can be swept away.

Signed-off-by: Jim Lieb <jlieb@panasas.com>
Remove --enable-panfs-pnfs it is always on

We have a mechanism in place which enables pnfs-panfs from config-file
and if not specified explicitly in config-file per export, it will
be off and will never be used.

so the --enable-panfs-pnfs at configure time is pointless, remove
it.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Merge remote-tracking branch 'boaz/panfs' into merge_next