NFS-Ganesha Changelog

What's new in NFS-Ganesha 2.1.0

Jan 14, 2015
  • Exports are now dynamic. They can be added or removed via DBus commands. The manage_exports python script has been updated to support the feature.
  • The Pseudo filesystem has been re-written as a FSAL. This enables dynamic exports. Submounted filesystems also work base on this change.
  • The configuration file processing has been rewritten to improve error checking and logging. All parameters are consistently checked for range. The validation of the whole configuration blocks are also checked.
  • GIDs can now be managed to use external authentication sources. This fixes the protocol limitation of AUTH_SYS which restricted the number of alternate gids to 16.
  • RPM packaging has been restructured and updated. The DBus tools are now packaged.

New in NFS-Ganesha 2.0.0 (Dec 12, 2013)

  • NFSv4.1 support has been greatly improved and now fully supports pNFS I/O operations. This feature makes the power and capacity of clustered and distributed file systems available to clients.
  • NLM state and lock management is unified with NFSv4 state and lock management.
  • Plan 9 (9P) support is much improved. This is the 9P.2000L level protocol.
  • File system backends are now loadable modules. This means that any number of backends and exports via those backends can be configured.
  • There has been extensive work done to the core of the server. Multi-threaded scaleability and memory usage is much improved. The protocol correctness and export access controls are much better.
  • System administration is now managed via a DBus server interface. This replaces the SNMP and statistics facilities of earlier versions.
  • NFSv2 support has been dropped. Version 2 of the protocol has long outlived its usefulness and cannot support the handle sizes required for modern distributed filesystems. Support for the older unmount operations have been retained for backward compatibility with some clients.
  • The SNMP management MIB has been removed. It is replaced by the DBus management interface. SNMP support could be provided by an SNMP to DBus proxy.
  • Some of the older FSAL implementations have been dropped due to the lack of community interest. These include the FUSE and POSIX FSALs.

New in NFS-Ganesha 1.0.4 (Jan 26, 2011)

  • init.d scripts are now closer to LSB requirements
  • Bug fix: race condition when inserting the same new entry several time and concurrently in metadata cache
  • Bug fix : it was impossible to set "/" as an export's entry's pseudopath
  • Bug fix : badly pack fsal_handle in FSAL_PROXY could create 2 entries in cache_inode for a single file.
  • Bug fix : memory violation in FSAL_PROXY for fattr4's type based on nfs4time

New in NFS-Ganesha 1.0.3 (Dec 21, 2010)

  • A regression in FSAL_PROXY was fixed (size of NFSv4 handles)
  • HashTable support hash functions that compute hashval and rbtval in one pass
  • Cache_inode uses a "dual value compute function" in its hashtable
  • Reverse clientid mapper uses a "dual value compute function" in its hashtable
  • pNFS/LAYOUT4_NFSV4_1_FILES : several bug fixed (see git log)
  • DupReq indexation has been reviewed: now (src_ipaddr,port,xid,additional cksum) tuple is used as key
  • workers's selection has been reviewed to reduce CPU comsumption in the case a very large number of workers is used.
  • security fixed : when 'root' is mapped as nobody, its 'altgroups' is cleared
  • Configuration can now reduce the version of NFS advertsised to rpcbind (to avoid NFSv2 for example).
  • XML output has been added to non-regression tests for easier integration in HudsonCI
  • A few changes in NLM implementation
  • FSAL_HPSS has been ported to HPSSv7.3.2
  • Better management of NFSv4.x attribute FATTR4_CHANGE

New in NFS-Ganesha 1.0.2 (Oct 19, 2010)

  • This version includes several fixes for bugs found during the last Fall Bake-A-Thon.
  • The FSAL_ZFS now supports access to ZFS snapshots (the ".zfs" directory for those who are familiar with ZFS).
  • Memory management has been reviewed in depth.

New in NFS-Ganesha 0.99.63 (Mar 26, 2010)

  • This release integrates the support of NLMv4 protocol (lock management for NFSv3) and several bug fixes. pNFS implementation will be done in next release (with LAYOUT4_FILES support).

New in NFS-Ganesha 0.99.62 (Mar 5, 2010)

  • This release includes many bug fixes but no major feature upgrade (this will come with the next version with new pNFS stuff in it). The way the packages is managed has changed too

New in NFS-Ganesha 0.99.61 (Jan 21, 2010)

  • A patch from Eric Sesterhenn about memleaks has been integrated.
  • Bug Fix : now check value of csa_flags for OP4_CREATE_SESSION
  • Bug Fix : OP4_LOOKUPP should return NFS4ERR_SYMLINK instead of NFS4ERR_NOTDIR when cfh is related to a symbolic link.
  • Bug Fix : error NFS4ERR_NOT_ONLY_OP managed for OP4_EXCHANGE_ID
  • Bug Fix : OP4_LOOKUPP should return NFS4ERR_NOENT when called from the rootfh
  • Bug Fix : management of NFS4ERR_NOT_ONLY_OP introduced a bug when compiling without NFSv4.1 support. This is now fixed.
  • Changed bad #define in Log/log_functions.c (former situation could lead to possible buffer overflow)
  • A patch by Erik Levinson about the use of libnfsidmap with gssrpc has been integrated
  • Bug Fix : it was impossible to compile with both support for gssrpc and support for NFSv4.1 (mismatch in nfsv41.h and xdr_nfsv41.c)

New in NFS-Ganesha 0.99.60 (Nov 30, 2009)

  • The uid/gid mapping functions did a bad use of their related idmapper_cache functions (the cache was not used in several cases)
  • Bug Fix : with kernel newer than 2.6.29, Connectathon's test6 failed on NFSv4 and NFSv4.1. This is now fixed : eod is returned only when the array of requested entries is empty (no more entry to be read in the directory).
  • Lock supports goes successfully through BULL's locktest when used on top of NFSv4.1 (problems remains with NFSv4.0)
  • Bug Fix: NFSv4 rsize/wsize had always value 1024 that killed performances.
  • Bug Fix : in nfsv4, the same open_owner opening a previously opened fileid did not get the same stateid.
  • Bug Fix : most of the time, files opened/created via NFSv4 were never closed

New in NFS-Ganesha 0.99.59 (Oct 28, 2009)

  • SEQUENCE's DRC was implemented.
  • Several bugs were fixed in the NFSv4.1 area.
  • Optional use of the nfsidmap library was added.

New in NFS-Ganesha 0.99.56 (Jul 9, 2009)

  • Change 2 log messages in MFSL_ASYNC
  • Removed a debug messages in fusexmp_fh
  • Bug fix in RW_Lock (may lead to deadlock when used in parralel with several clients
  • Prevent FSAL_PROXY to use udp as a transport layer, the "NFSv4_Proxy::NFS_Proto" field from the configuration file as been removed as well
  • MFSL_ASYNC: now, only root can chmod or chgrp on a file/dir/symlink
  • MFSL_ASYNC: the way mfsl_async_symlink is work was fully reviewd

New in NFS-Ganesha 0.99.55 (Jun 30, 2009)

  • Stupid bug fix in nfs4_op_open.c (allocating a zero length buffer...)
  • Bug fix in OP_LOCKU4 implementation : no stateid was returned
  • cache_inode_setattr was modified so that cache_inode_setattr can set the size of a file (by calling FSAL_setattr). This is required for a correct implementation of OP_OPEN4
  • Lots of problems were met when implementing NFSv4 state mechanism and work is still in progress. To provide users with usable NFSv4 exports, a "rather stateless" model has been implemented. More complex implementation of NFSv4 state modelscan be activated by using "--enable-nfs4-stateid" at ./configure time. In this last case, the targeted client is 2.6.29-4 (Fedora11).

New in NFS-Ganesha 0.99.54 (Jun 22, 2009)

  • Bug Fixed in NFSV4 lock management : NFS4ERR_OPENMODE was not returned in case a WRITE lock was requested on a read-only file
  • Bug fixed in NFSv4 lock management : previously know lockowner where badly managed.
  • Bug fixed in NFSv4 lock management : NFS4ERR_OLD_STATEID was returned instead of NFS4ERR_BAD_STATEID in severals cases
  • Update nfs4_op_open's behaviour related to NFS4ERR_SHARE_DENIED
  • Update nfs4_op_write and nfs4_op_read behavior regardings locks and share reservations.
  • OP4_LOCK/OP4_LOCKU bad behavior fixed
  • add a missing relation between lock-stateids and related open-stateids for managing seqid at state transition
  • better management of OPEN4 with EXCLIVE4 repeated with same verifier
  • Return NFS4ERR_LOCKS_HELD when closing a file with held locks
  • all-one stateid is correctly managed in OP4_WRITE and OP4_READ
  • Minor bug fixed in nfs4_op_open_confirm (errors when bad arguments are used)
  • bad seqid management in nfs4_op_close
  • Fix bug in the use of ACCES4resok::supported flag
  • MFSL_ASYNC now has startup routines to clean preallocated stuff left by older instance of the server
  • Bug Fix in OP_OPEN4 : if the file already existed as an OPEN_CREATE operation was made with the UNCHECKED mode, the parent directory remain as the cfh as the operation returned NFS4_OK, leading to lots of mess about the file.

New in NFS-Ganesha 0.99.53 (May 20, 2009)

  • Bug Fix in the non-regression test suite (badly managed configuration file)
  • Bug Fix: in MFSL_ASYNC, an entry is not looked up by cache_inode layer if its parent is asynchronous, this will prevent from an encountered incoherency (this issue was discovered with cthon's basic test3)
  • Bug Fix: in MFSL_ASYNC, numlinks was badly managed in MFSL_unlink, files with numlinks >1 were deleted by MFSL_unlink
  • Bug Fix: in MFSL_ASYNC, symbolic links can't be proceeded asynchronously. Mechanism were added to bypass the asynchronous management for this specific case
  • MFSL_ASYNC: MFSL_create and MFSL_mkdir now use correctly the credentials provided by the caller
  • FSAL_POSIX uses pread/pwrite instead of fseek+fwrite/fseek+fread
  • NFSv4 implementation now supports NFSv4 referrals

New in NFS-Ganesha 0.99.52 (Apr 8, 2009)

  • Bug Fix: possible race condition in cache_inode_readdir (badly placed rw_lock_downgrade) that could lead in having cache_inode_readdir_populate called twice at the same time.
  • MFSL_ASYNC: now, preallocated entries are owned by each
  • Bug Fix: bad MFSL_Context management in ganeshell
  • Bug Fix: deleted entry can no more be lookuped and accessed before their real deletion.
  • Lustre v2 FSAL Beta
  • Fixed bug in RW_lock_downgrade function
  • Fixed weak locking in cache_inode_remove
  • I/O optimization and fixes
  • Improved fd cache management
  • Tweak fixes in logs
  • A lot of debug messages now only appear for DEBUG and FULL_DEBUG log levels

New in NFS-Ganesha 0.99.51 (Mar 23, 2009)

  • MySQL can be used instead of PGSQL in FSAL_POSIX. It becomes the default database for this FSAL.
  • Bug Fix: Massive and parralel mount requests (e.g. : all nodes of a compute cluster starting at the same time after a maintenance) could lead to errors on client. This "denial of service" like trouble has been fixed.
  • Bug Fix: bad computation in FH checksum when compiled on x86_64 architecture
  • MFSL_ASYNC: setattr has been made asynchronous
  • MFSL_ASYNC: link has been made asynchronous
  • MFSL_ASYNC: unlink has been made asynchronous
  • MFSL_ASYNC: rename has been made asynchronous
  • MFSL_ASYNC: truncate has been made asynchronous
  • MFSL_ASYNC: mkdir has been made asynchronous
  • MFSL_ASYNC: create has been made asynchronous

New in NFS-Ganesha 0.99.50 (Jan 26, 2009)

  • The code was ported to other platforms, revealing several bugs that were subsequently fixed. nfs-ganesha should now be usable under OpenSolaris in an experimental capacity.
  • Debian packaging was also added.

New in NFS-Ganesha 0.99.49 (Jan 9, 2009)

  • FSAL_PROXY has been ported to FreeBSD 7.0
  • FSAL_FUSE has been ported to FreeBSD 7.0 (FUSE ready product can now export in NFS via NFS-GANESHA)
  • FSAL_POSIX has been ported to FreeBSD 7.0
  • FSAL_SNMP has been ported to FreeBSD 7.0
  • Code has been ported and validated to ia64 architecture for all FSALs

New in NFS-Ganesha 0.99.48 (Dec 23, 2008)

  • Renamed yyparse and yylex functions so that GANESHA/FUSE would no more interfer with FUSE modules that uses lex/yacc parsing
  • FSAL_PROXY was ported to MacOS X (Darwin 9.5.0)
  • FSAL_FUSE was ported to MacOS X (Darwin 9.5.0). This allow user space libs with fuse binding to be used from MacOS through NFS-GANESHA
  • FSAL_SNMP has been ported to MacOS X (Darwin 9.5.0)
  • FSAL_POSIX has been ported to MacOS X (Darwin 9.5.0)

New in NFS-Ganesha 0.99.47 (Dec 4, 2008)

  • The code was cleaned up in the datacache.
  • NFS protocol compliance bugs were found with SpecSFS bench and fixed.
  • The optional module, MFSL (Middle File System Layer), was added.
  • This will allow new features like metadata writeback in the future.

New in NFS-Ganesha 0.99.46 (Nov 18, 2008)

  • Bug fix: possible deadlock may occur in worker thread when using tcp clients
  • Minor feature: MD cache now uses home made RW_Lock (the same that Hashtable module already uses). Call rw_lock_downgrade was added to RW_Lock module
  • DataCache GC is done by an external call to the ganesha service started in "syncers" of "flushers" mode.

New in NFS-Ganesha 0.99.44 (Oct 20, 2008)

  • This releases includes TIRPC integration (for later IPv6 support integration). Many bugs where fixed in NFSv4 state model. A few files were adding for easier administration and management (init.d scripts, .pc files).

New in NFS-Ganesha 0.99.43 (Oct 10, 2008)

  • RPCSEC_GSS support was fixed. It is now possible to mount with krb5 authentication. An RPCSEC_GSS specifc feature was added for NFSv4 and NFSv3.
  • The configuration file supports the "nodesets" syntax cluster.
  • The RPM packaging was renewed.
  • The libganeshaNFS, which provides NFS exports for FUSE-ready products, is now available as both static and shared libraries.

New in NFS-Ganesha 0.99.42 (Oct 2, 2008)

  • Release 0.99.42 adds the feature of xattr ghost directory (for NFSv3 and NFSv4) that makes it possible to read FSAL's extended attributes via the mount point. Xattr are read-only for the moment.