V2.2-dev-18.1

Missed the V2.2-dev-18 update to CMakeLists.txt so skipping to V2.2-dev-18.1

Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
handle empty and missing configuration file.

 + without immediately dying
 * correctly clear config_file_t to NULL
 * reduce minor parse errors from Crit to Warn
 * fix several incorrect err_types
 * gracefully return after missing sub-nodes and trees
 * for LOG block, allow empty as well as harmless!

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Acked-by: Jim Lieb <lieb@sea-troll.net>
Consolidate FSAL initiation into fsal_manager

In order to have a DS {} block with a FSAL {} block in it,
reshuffle some of the FSAL functions that were in various
files into include/fsal.h and FSAL/fsal_manager.c, as
fsal_load_init() is the only caller of load_fsal() there.

Merge name length testing into fsal_load_init().

Rename struct fsal_args to match struct subfsal_args.
Reorder struct subfsal_args to match struct fsal_args.

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Acked-by: Jim Lieb <lieb@sea-troll.net>
Strict hierarchy of sal_data.h and sal_functions.h

* sal_functions.h is now only called from .c
* Move forward declarations above #includes in sal_data.h,
  to improve circular dependency processing

+ Replace/merge state_status_t with g_u_s_t

- Remove unused nfs_exports.h from sal_functions.h
- Remove nfs_proto_functions.h from sal_data.h,
  fixing circular dependency!
- Do not include 9p.h for one typedef in sal_data.h,
  fixing circular dependency!

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Refactor cache_inode.h forward declarations

* Move some forward declarations above #includes,
  and resolve forward declarations near end of file,
  to improve circular dependency processing
+ Move entry_export_map after typedef struct cache_entry_t
  to avoid redundant forward declaration

+ Replace/merge cache_inode_status_t with g_u_s_t

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Move most definitions from fsal.h to fsal_types.h

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Move externs and functions from fsal_types.h to fsal.h

+ also functions from fsal_api.h
+ plus stray pnfs_fsal[FSAL_ID_COUNT] array from fsal_pnfs.h
  that should be extern!

Update a few includes matching these changes.
+ inexplicably missing include <pthread> in common_utils.h
+ missing include common_utils.h in FSAL/commonlib.c
+ wrong fsal_types.h should be ganesha_types.h (or ganesha_rpc.h)
  in gsh_config.h

Signed-off-by: William Allen Simpson <bill@cohortfs.com>
Restructure hierarchy of nfs_* with fsal_* and sal_* headers.

* nfs_core.h is primarily called directly from .c
- definitions formerly dependent on nfs_proto_functions.h
  and nfs_exports.h moved up the hierarchy to sal_data.h,
  fixing circular dependency!
* nfs_exports.h is now only called from .c
- Compound data structs moved up the hierarchy to sal_data.h
* nfs_proto_functions.h is now only called from .c
- Typedefs and structs moved up the hierarchy to sal_data.h
* Remove sal_data.h from fsal_up.h, and move local use
  definitions to fsal_up_top.c, fixing circular dependency!

Coordinated changes with previous reorganizing of fsal.h, etc.

Repaired various instances of headers without proper includes;
these merely have worked by serendipitous order in .c files.

mount.h is autogenerated, and requires several headers to compile;
rather than scattered through the code (found some mistakes),
consolidated into nfs23.h via sal_data.h (as files are updated).

Updated numerous .c files missing the correct includes.

Signed-off-by: William Allen Simpson <bill@cohortfs.com>