Skip to content
Frank Filz edited this page Apr 21, 2023 · 7 revisions

Table of Contents

Latest Head

Currently the head for Ganesha V4 is V4.4.1 in the V4_stable branch.

Additional Areas of Fixes in V4.4.1

  • Use FSAL_O_ANY for commit operations to avoid opening the global fd if not already open
  • Return correct error code for setattr for FSAL_CEPH in one error path

Additional Features in V4.4

V4.4 consists solely of the following feature:

  • add Prometheus and Grafana monitoring stack

New Features in V4.3

  • add include directory option in config, the config can now specify directory and wildcards to simplify inclusion - useful for including all exports that are in individual config files
  • add -I command line option to provide g_nodeid on the command line
  • add ServerOwner to configuration

Additional Areas of Fixes in V4.3

  • pull up libntirpc v4.3
    • destroy XPRT when fd already exists
  • fix EXPORT_DEFAULTS to work as expected
  • make sure all EXPORTS are mounted in pseudo fs if they are NFSv4 exports no matter the order the exports are listed in the configuration
  • fix issue with fsal_filesystem multiple claims that was breaking nested exports and nested filesystems
  • fix crash with replayed requests
  • fix race with rpc callback
  • replace dec_nlm_state_ref with dec_state_t_ref to allow compilation without NLM
  • fix readdir memory leak
  • fix ganesha_mgr show clients
  • define __NR_name_to_handle_at and __NR_open_by_handle_at for Linux aarch64

Additional Areas of Fixes in V4.2

  • pull up libntirpc v4.2
    • revert sx_fbtbc fix
    • use __THROW
  • remove recursion from some XDR code
  • check FSAL path to avoid termination because of error in EXPORT config
  • fix refcount of cid_client_record
  • ganesha_mgr fix

New Features in V4.1

Normally we do not include new features in stable update releases, however, one feature has been included that is low risk and disabled by default.

  • POSIX ACL support for FSAL_VFS (conversion to NFSv4 ACL as necessary and exposure via NFSv3 POSIX ACL side band protocol).

Additional Areas of Fixes in V4.1

  • Pick up ntirpc 4.1 with some minor fixes and a Coverity fix
  • Address almost all the issues raised by Coverity, some significant
  • Add SPDX License tags for all (well most) files and clear up some licenses for individual files
  • Update to latest Checkpatch and fixup new (and old) warnings and errors
  • Fixup reference counting of lock/open state
  • Clean up some typos and function documentation in comments
  • Avoid opening global FD for write when setting attributes, this helps with the ability to write an executable file via NFSv4 and then be able to execute the file locally.
  • Add a config to limit the number of entries returned in readdir
  • A number of build fixups
  • Various scripting fixes, ganesha_ctx, startup script, etc.
  • Allow listening on TCP only without IPv6 configured
  • Fix regression in POSIX ACL mapping code
  • Numerous fixes for attribute handling including avoiding unnecessary refresh
  • Fix a race in MDCACHE LRU
  • FSAL_GPFS updates
  • Configuration tweaks and fixes including properly handling use of legacy CACHE_INODE block or new MDCACHE block.
  • Some FSAL_PROXY_V3 fixes
  • Retry connection to rpc.statd

Features in V4.0

  • POSIX ACL support for FSAL_CEPH
  • Enhancements to Export Update (DBUS) and Reload (SIGHUP)
    • protocol update (add/remove v3/v4 to export)
    • Pseudo Path can be changed when reloading exports
    • Refresh file system table (allows adding exports for new file systems)
  • FSAL_PROXY_V3
  • NFSACL POSIX ACL side-band protocol for NFSv3
  • Add xattr to FSAL_CEPH
  • Add xattr to FSAL_RGW
  • Match xattr support up with RFC 8276
  • FSAL_CEPH enhancement to release inodes quicker
  • Option to increase aggressiveness of MDCACHE releasing entries
  • Can actually disable RQUOTA and NFSv3 when building
  • Improvements to building on MacOS and other compilers
  • FSAL_KVSFS
  • Support BTRFS subvolumes as if they are separate file systems

Configuration Changes in V4.0

  • Export as noted above
  • Minimum SVC worker threads is configurable
  • Option to allow UDP for MOUNT only
  • Add configurable RecoveryRoot, RecoveryDir, RecoveryOldDir
  • Maximum number of clientids configurable

Logging and Information Changes in V4.0

  • Log POSIX file system type
  • dbus query of mdcache utilization
  • dbus stats formatting changes to improve clarity
  • reduction log level for some noisy log messages
  • 4.1 and 4.2 operation stats
  • Additional debug and info logging for exports
  • No longer look to environment for log levels (too many ways to change log levels...)
  • No longer manipulate log level with SIGUSR1 and SIGUSR2 (too many ways to change log levels...)
  • Default_Log_Level is now useful
  • Removal of a component (including ALL) from LOG { COMPONENTS {}} will properly revert on SIGHUP (this MAY revert changes done with dbus - don't mix dbus and SIGHUP...)
  • Logging documentation improved
  • Export config documentation improved
  • Option to display log timestamps in UTC
  • Info logging of socket binding

Areas of Fixes in V4.0

  • Stats
  • Handle sizes and issues, particularly for FSAL_CEPH
  • Memory leaks
  • Error returns
  • Segfaults
  • MDCACHE (readdir, export root LRU management)
  • SELinux
  • Skip various non-exportable POSIX file system types
  • build and packaging fixes
  • total audit of export and other resource usage in op context and assure that op_ctx is set everywhere
  • state_lock usage fixups
  • Always provide wcc attributes for NFSv3
  • NFSv4.1 close/lock race fix and other lock fixes
  • Correct handling of errors during export config processing
  • Fix up EPERM vs EACCESS confusion
  • Block MOUNT if client won't have access to export
  • Integer size corrections in log messages
  • NFSv3 READDIR response size fixes (allows more entries AND fixes CVE-2018-17159)
  • Another CVE-2018-17159 fix is to cap NFS v4.0 max response size
  • Various creds fixes in FSAL_CEPH
  • Fix EXCLUSIVE create
  • Fix issues of caller_name in NLM, proper handling of IPv4/IPv6 and when to use caller name vs. IP address
  • improved handling of duplicates of in progress requests
Clone this wiki locally