blob: 84ecab2a62a0ff2c5e0ab78d46a64249e978e4f6 [file] [log] [blame]
0.99.39 - Mon 21 Jul 2008
- Initial version submitted to sourceforge
0.99.40 - Mon 28 Jul 2008
- Fixed several memory issues in NFSv4 implementation
- Fixed several memory issues in FSAL_PROXY
- Fixed a badly placed Mem_Free in support/nfs_state_id.c (function nfs4_State_Del)
- Added Handle Mapping feature in FSAL_PROXY which makes it possible to export
back in NFSv2 and NFSv3 from a proxyfied server accessed via NFSv4
0.99.41 - Mon 18 Aug 2008
- Fixed nfs4_op_access bug due to bad interpretation of the RFC for
- Added extended features in BuddyMalloc module to enable extended
memory leak tracking (run the ./configure script with the following
options : "--enable-debug-memleaks --disable-block-prealloc")
- Fixed a bug in FSAL_PROXY that made every user have root permissions
in a few situations
- Bug fixed: bad offset management in FSAL_read/FSAL_write for
FSAL_PROXY. This made the datacache behaves weirdly.
- Use All-0 stateid for r/w operations made for maintaining the data
cache coherent with the "proxyfied" server with FSAL_PROXY. Due to
this the parameter NFSv4_Proxy::Open_by_FH_Working_Dir is no more
required, making the configuration of nfs-ganesha as a proxy much
- FSAL_PROXY now supports RPCSEC_GSS authentication
0.99.42 - Mon 29 Sep 2008
- Added xattr support in NFSv4. For object "foo" a ghost
directory name "" is used to access extended attributes
- Added xattr ghost directory and ghost objects for NFSv3. These "extended
attributes" are read-only for the moment. These two new features may
be disable if "--disable-xattr-directory" is used at "./configure" time
- Enhancement in FSAL_GetXattrs function (file FSAL/FSAL_*/fsal_xattrs.c) for
making integration to xattr.d easier
0.99.43 - Fri 10 Oct 2008
- Fixed RPCSEC_GSS support. It is now possible to mount with krb5
authentication. Security tuple krb5, krb5i and krb5p are supported
- Add RPCSEC_GSS specifc feature for NFSv4
- Add RPCSEC_GSS specifc feature for NFSv3
- Configuration file supports "nodesets" syntax( the set
"node1,node3,node4,node5,node6" can be summarized as
"node[1,3,4-6]). This feature is very useful if your client is a
- New RPM packaging.
- The libganeshaNFS that provide NFS exports for FUSE ready product is
now available as both static and shared libraries.
0.99.44 - Mon 20 Oct 2008
- NFS4_OP_OPEN default behaviour is now to ask the client to confirm
the open using NFS5_OP_OPEN_CONFIRM. The default behaviour was
formerly the opposite.
- A bug in NFS4_OP_OPEN : same open_owner could have multiple states
on the same file in certain cases
- Many bug fixed in NFS4_OP_LOCK
- libganeshaNFS (produced when FSAL_FUSELIKE is chosen) can now be
managed by pkgconfig (a ".pc" file is added to the install target)
- Improved compatibility for old FUSE filesystems that implement getdir
instead of readdir.
- FUSE-like binding now support filesystems with no inode numbers.
- TIRPC can be use as alternate RPC layer. In later releases, this
feature will be used to support IPv6 with NFS-GANESHA.
- Added a 'init' scripts to be place in /etc/init.d
- Added stuff to specfile so that it installs the .vim files
0.99.45 - Wed 5 Nov 2008
- Add IPv6 support via TIRPC support
- Add features to configuration file parsing for IPv6 address
- Bug fix in handle mapping module for FSAL_PROXY
- Bug Fix: Bad verifier management in FSAL_PROXY's cleintid
- Bug fix: bad management of uid=0 is uidgidmap cache when using
RPCSEC_GSS authentication.
- Bug fix: several bug fixed in .xattr.d management for NFSv3
0.99.46 - Wed 18 Nov 2008
- Bug fix: possible deadlock may occur in worker thread when using tcp
- 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.
0.99.47 - Thu 4 Dec 2008
- Running the Spec benchmark on nfs-ganesha showed a bug in attributes
asked at creation time in NFSPROC3_CREATE, this has been fixed
- Fix non-compliancy (thanks again to Spec NFS) in NFSPROC3_SYMLINK (attributes provided as
arguments were never used).
- Code cleanup: removed structure related to deprecated way of
performing datacache's garbagge collection.
- Major feature added : skeleton and "basements" added for MFSL, a
new module that goes between md cache and FSAL
- Removed direct Cache_Inode_Async, md writeback will be provided in a
future module MFSL_ASYNC in MFSL directory
0.99.48 - Mon 15 Dec 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
- FSAL_SNMP has been ported to MacOS X (Darwin 9.5.0)
- FSAL_POSIX has been ported to MacOS X (Darwin 9.5.0)
0.99.49 - Fri 9 Jan 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
0.99.50 - Fri 23 Jan 2009
- Code has been validated on PPC/Linux architecture
- Fixed a that prevent from compiling with FSAL_FUSE and
gssrpc activated
- Added a 'debian' directory in order to produce debian packages
- FSAL_POSIX has been ported to OpenSolaris (alpha)
- FSAL_FUSE has been ported to OpenSolaris (beta)
- FSAL_PROXY has been ported to OpenSolaris (alpha)
- FSAL_SNMP has been ported to OpenSolaris (alpha)
- Bug fix: client's address was badly printed by the worker when nfs_export_check_access denied access
- Bug fix: syntax error in posix.ganesha.nfsd.conf configuration file example
0.99.51 - Fri 20 Mar 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 feature: very early alpha version of asynchronous metadata management is available via MFSL_ASYNC
This is to be activated by using --with-mfsl=ASYNC at configure time.
0.99.52 - Wed 8 Apr 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
0.99.53 - Wed 20 May 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
0.99.54 - Mon 22 Jun 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.
0.99.55 -Tue 30 Jun 2009
- Stupid bug fix in nfs4_op_open.c (allocating a zero length
- 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).
0.99.56 - Thu 9 Jul 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 was fully reviewd
0.99.57 - Thu 30 Jul 2009
- Add NFSv3 commit/write logic
- newpynfs helped locating bug in nfs4_op_commit (bad types and write
verifier not set)
- Add NFSv4 commit/write logic
- Brand new management of the NFSv4 open_owner
- Bug fix in clientid generation (very bad hash function)
- File nfs4_op_lock.c was fully rewritten to fix bugs
- open_owner's seqid is to be incremented even if OPEN fails
- lock overlapping check was reviewed
- no seqid checking when making read/write
0.99.58 - Mon 14 Sep 2009
- Use SOMAXCON in listen
- XDR modules now support NFSv4.1 protocol, the rest is to be
- Added nfs41_op_exchange_id, nfs41_op_create_session,
nfs41_op_sequence, nfs41_op_lock, nfs41_op_locku, nfs41_op_lockt
- Added early support for nfs41_op_create_session,
nfs41_op_exchange_id, nfs41_op_destroy_session
- command like 'mount -t nfs4 -o minorversion=1 ..' is now possible
but basic connectathon is not fully ok
0.99.59 - Wed 28 Oct 2009
- Implementation of SEQUENCE's DRC
- Add new "NFSv4.1 specific errors" management in OP_SEQUENCE
- Bug Fix: test SEQ9c showed that the request replayed from the
session's DRC always had status NFS4_OK
- Bug Fix : Management of NFS4ERR_RETRY_UNCACHED_REP and non cached sequence
- Bug Fix : correct use of NFS4ERR_TOO_MANY_OPS
- Bug Fix : initial seqid value is 1 in NFSv4.1
- Bug Fix : stateid's sequence increment was badly manage in case the
file was opened without being created at the same time.
- Minor change in rpcxid dupreq management
- Fix bad default parameters in config_samples/proxy.ganesha.nfsd.conf
- Add config file parameter NFSv4::DomainName (formerly domain was
alway "localdomain" which was a big lack of flexibility)
- Add macro %tmp_install_dir to spec file to avoid using dirty
- Add optional use of nfsidmap library
0.99.60 - Mon 30 Nov 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
- 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
0.99.61 - Fri 22 Jan 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)
0.99.62 - Fri 5 Mar 2010
- Security fix : badly managed caller_gid in nfs_exports.c
- Fixed a typo in
- RPM packaging : fixed bad dependences for db engine to be used with
FSAL_POSIX (postgresql was always referenced, even when compiled with
- Debian Packaging : fixed same dep problems as above with rpm files
- Bug Fix : in idmapper.c, functions utf82uid and utf82gid were badly
managing parameters passed to name2uid/name2gid when compiled with the
support of libnfsidmap
- pNFS implementation : now support attribute FATTR4_FS_LAYOUT_TYPE
- Fixed a bug in a that prevent target 'check' to compile
- RPM packaging : when compiling rpm files, only those related to the
FSAL chose at ./configure time are build
- fixed two typos and one potential memleaks (thanks to IBM guys how
located this in the code)
0.99.63 - Thu 25 Mar 2010
- A patch from Sean Dague ( fixes a memleak in FSAL_POSIX
- A big patch provided by Aneesh Kumar ( implements
the NLMv4 protocol (NFS lock managemment for NFSv3)
- Two small patches from Frank Filz were applied
- A "indent" target has been add to the src/ . The code was fully
re-indented with this target (that uses the "indent" utility).
- C-format style template for emacs provided by Sean Dague (
- Bug fix (Frank Filz) : readdir had an extraneous empty request with eod=TRUE
- Option "-nce" added to 'make indent'
- Bug fix : It was impossible to mount an exported entry's sub directory
0.99.64 - Thu 29 Apr 2010
- pNFS implementation for LAYOUT4_FILE starts with this version
- Function to initiates connection/NFsv4.1 sessions with the DS are done
- RPM Packaging : add chkconfig --add in %post
- Export Access Type "MDONLY" was not managed when using NFSv4
- Add safety check to cache_inode_remove/cache_inode_create and cache_inode_link
to prevent from non allowed access.
- Statistics for NFSv4.0 and NFSv4.1 operations have been added
- Bug Fix: default value for FSINFO3::dtpref was 0. Value 16384 is now used.
- Bug Fix: OPEN4 returns NFS4ERR_ROFS when used from the pseudofs
- Early (unstable) implementation of pNFS provided. Will continue and be stabilized in later releases.
- Project is now released under LGPLv3
0.99.65 - Tue 8 Jun 2010
- New FSAL_XFS designed for natively exporting XFS filesystems
- Integration of a patch from Aneesh Kumar that implements Async NLM and NSM support
- A patch from Frank Filz related to POSIX behavior when opening file
- Bug Fix : missing AM_FLAGS prevented from compiling with pNFS and
POSIX based FSAL using MySQL.
- add '--enable-ds' in configure to configure nfs-ganesha as a NFSv4.1 server usable as a pNFS Data Server
- FSAL_LUSTRE : add lockdesc support
- Bug Fix: nfs4_op_access was not managing secondary groups properly. It now relyes on the FSAL for this.
- Default value for FSAL_MODE_SUID and FSAL_MODE_SGID have changed.
- Add log trace when a operation is refused due to a setuid/setgid bit violation
- Bug Fix : in NFSv4, file were created with mode = 0000 . This was a trouble with certain FSAL
- Bug fix: Double close in log_functions.c
- checksum were removed from NFS file handles (more space for storing FSAL handles)
- (Patch from Frank Filz) : new and optionnal core parameter Bind_Addr
0.99.66 - Fri 25 Jun 2010
- FSAL_XFS now has lock support
- Brand new FSAL_GPFS added (patch from IBM) to natively support GPFS
- FSAL_POSIX and FSAL_XFS now have quota support (via rquota v1/v2
protocol and the use of the quotactl function)
- Typos fixed in doxygen.conf files
- FSAL_TEMPLATE updated (had new functions for quota and lock management)
- pNFS/LAYOUT_FILES works with multiple Data Server
1.0.1 - Fri 17 Sep 2010
- New FSAL model: FSAL modules can now be compile as shared object and
can be loaded at runtime
- New FSAL to support ZFS filesystem
- Add the capability to build a "FSAL-less" daemon that loads FSAL
shared object by using the dlopen function.
- FSAL_PROXY: the embedded client now can allocate a tcp socket on a
privileged port to contact the "proxyfied" server
- FSAL shared objects are provided as precompiled rpms
- Log layer now uses syslog as a possible log stream
- Add new call FSAL_getextattrs to get info such a generation number
or creation time
- New Log management from IBM
- Several potential buffer overflow in fscanf fixed
1.0.2 - Mon 18 Oct 2010
- New TCP connection management to avoid DOS-like attack
- Tag _NO_BLOCK_PREALLOC was removed
- New debian packaging
- Bug Fix : OP4_REMOVE did not operate if the destination was an existing file
- Bug Fix : FATTR4_ACL is now an unsupported attributes (it is in fact)
- Bug Fix : OP4_GETATTR on unsupported attributes should ignore them instead
- Bug Fix : locks_held counter was badly managed in OP4_LOCKU
- Bug Fix : OP4_DESTROY_SESSION returned bad session when session was successfully destroyed.
- Bug Fix : FSAL_XFS:fsal_create always made files owned by root.
- Code Cleaning : all Log* functions's format were reviewed and fixed
- Memory manager improvement : stuff_alloc macros and BuddyMalloc are
now closely tied.
- Bug Fix : erroneous EACCESS in FSAL_XFS and FSAL_LUSTRE when
creating file as a regulat user
- New feature : FSAL_ZFS provides access to ZFS snapshot directory
.zfs based on ZFS's COW feature.
1.0.3 - Tue 21 Dec 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
1.0.4 - Tue 25 Jan 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
1.0.5 - Wed 6 Apr 2011
- Using function daemon() to start the daemon in a cleaner way
- Using gethostbyaddr_r to avoid contention when resolving address in nfs_ip_name.c
- pNFS/file support has been added for LUSTRE
- pNFS related sources were reorganized with a design closer to what is done with FSAL/MFSL
- "stable_how" flag management has been remade in deep, including a
new FSAL_sync call to every FSAL
- FSAL_PROXY: the FSAL is no able to deal correctly when the remote server restarts
- Data Cache : a set of flushers threads has been added to the daemon, making it possible to
run the flush operations internally and no more as an external command.
- Bug Fix: FSAL error was not converted into a Cache_inode error, and thus was
dropped, causing client to infinite retry
- Add a new tool to find all the instances of LogXXX
- New LogInfo and LogWarn log level
1.1.0 - Wed 7 Apr 2011
- Bug Fix: Bad memset in FSAL_HPSS::HPSSFSAL_lookup. Result was a segfault at init.
- Code reorganization : subdirectory RPCAL has been added
- Bug fixe : bad 'fd2handle' options in FSAL_XFS::FSAL_rename
- Log: new log levels LogFatal, LogCleanup added
- TIRPC now supports the RPCSEC_GSS feature
- pNFS : API for implementing pNFS specific feature has been fully refurbished.
- FSAL_VFS: new FSAL using "open_by_handle" feature added in the kernel higher than 2.6.39.
This FSAL makes it possible to export any filesystem managed by the VFS.
- NFSv4: the product is now compiled with NFSv4.1 support by default
- Log module: now using __FUNCTION__ macro to get the function's name
- Bug Fix: the cache_inode_commit function badly managed the Data Cache.
- Multiple FSAL support: it is now possible to 'dlopen' several fsal shared objects.
Attention: there are changes to be done in the configuration file
- Bug Fix: issue occured in 'Tbl' pass of cthon04 test for FSAL_XFS and FSAL_VFS because
of a badly managed opened fd. This is now fixed.
- NFSv4 ACLs support
- GPFS ACLs support (to be used with NFSv4 ACL support)
1.1.1 - Fri 11 Nov 2011
- Bug Fix: padded size for FSAL-less daemon were too short and not aligned on 64 bits
- Bug Fix: Badly formed fsal_op_context_t in FSAL_ZFS (issue when using as shared object)
- Bug Fix: bad modes/ACLs management in several FSALs (produced EPERM errors)
- Bug Fix: badly managed access_type in nfs3_Access
1.2.0 - Mon 12 Dec 2011
- Bug Fix: Call cache_inode_close after deleting share state
- Bug Fix: Bad management of PID_FILE is several init.d scripts
- Added support for ERR_FSAL_DELAY in upper layer
- FSAL code has been reorganized a lot
- New SAL (State Abstraction Layer) to manage locks (NFSv4/NLM) and share reservations
- Symbolic Links are managed via a pool to save memory in Cache_Inode
- Early 9P support
1.3.0 - Fri 23 Dec 2011
- Lustre FSAL: exporting several Lustre filesystem with the same server instance
- A bug was found (during Bake-A-thon) and fix in OP4_READDIRPLUS (leading to missing
directory's entries)
- Directory content cached is now managed as a tree. Formerly used
dir_chain were removed.
- Lock support for FSAL_LUSTRE
- FSAL_LUSTRE/FSAL_XFS/FSAL_FUSELIKE/FSAL_ZFS: regression in readdir detected and fixed
- export list now supports IP ranges using the CIDR format
1.4.0 - Thu 15 Mar 2012
- Bug Fix: Memory leak fixed in RPC's DRC
- Bug Fix: Bad computation of rbt_value in RPC's DRC's hashtable
- New FSAL_CEPH (dedicated to the ceph filesystem)
- pNFS code refurbished with CEPH specific code and layout file support
- All RPCs are now based on TIRPC
- Bug Fix: in nfs_Write, for clean handle of umask, the server should
allow the owner of a file to write to it, even if the file is read-only
(has mode r---r--r-- for example)
- Bug Fix: bad memory padding in fsal_handle_t and fsal_cookie_t
1.5.0 - Mon 16 Jul 2012
- TIRPC library was significantly refurbished with bi-directional RPC
support (required for NFSv4.1 backchannel support).
- Multiple RPC dispatch is now supported
- Cache inode has been reworked on its handling of directory entries
- Cache inode readdir logic is now based on callbacks to take advantage
of AVL tree work
- State Management has been unified and improved. Locking is consistent
across both NFSv3 and NFSv4.x
- Client id management support has been added
- 9p.2000L support has been added. Dev is currently under alpha version
- Improved file handle support. Handles's versions and variable length handles
are better supported.
- Memory allocation has been refactored. The configure step can detect the memory
allocators available for the build and select the best allocator (jemalloc preferred
if available) with a fallback to the standard C library malloc/free.
The buddy allocator has been completely removed.
- Improved Kerberos support. Autoconf now probes it correctly.
Compatibility with Microsoft AD Kerberos is improved.
- Numerous bits of experimental and partially implemented feature code
have been removed, significantly reducing the code line count and eliminating
unused build time configuration options. These include:
- FSAL_SNMP is now officially deprecated
2.0.0 - Fri 6 Dec 2013
- FSALs (filesystem backends) are now loadable shared objects. The
server can support multiple backends at runtime. Most of the 1.5.0
FSALs have been rewritten to support this new API.
- NFSv4.1 pNFS is supported. Most of the FSALs for clustered
filesystems also support pNFS. The server can be both an MDS and DS.
- DBus is now the administration tool. The SNMP MIB and stats thread are
deprecated. Reference implementations of DBus client(s) for all of
the DBus interfaces are supplied. These clients use the PyQt4 class
libraries and Python 2.7. There are both command line scripts and
a Qt based GUI admin tool.
- All the significant bugfixes from the 1.5.x branch have been
forward ported or re-implemented in the new codebase.
- The server passes all of the cthonv4 and pynfs 4.0 tests. All of
the significant (non-delegation) pynfs 4.1 tests also pass. This is
significant protocol correctness improvement over the previous version.
- Most subsystems/modules have had refactor/rewrite work to improve
stability, scalability, and correctness. Memory and system resource
usage has also been improved.
- NFSv2 support has been deprecated. NFSv3 still supports the older
version of the MNT protocol for compatibility with some clients.
- The build process has been converted to Cmake and autotools has been
- The codebase has been reformatted to conform to Linux kernel coding
style. Changes are checked and validated with the kernel's script. The script and our configuration file for it
are supplied in the source.
2.1.0 - Thurs 26 Jun 2014
- 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
- 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.
2.2.0 - Tue 21 Apr 2015
- Ganesha supports granting delegations
- There have been numerous config changes
- Ganesha now includes systemd scripts
- Improved packaging for RPM and Debian
- Major stability improvements
- non-QT based python tools
- Support for Ganesha to be a pNFS DS only, no MDS
- SECINFO in preferred order
- LTTng support
- NFS v4.2 support
- Major improvements in 9p support
- Code cleanup (checkpatch and Coverity)
- ntirpc improvements
- FSAL_GLUSTER updated with pNFS and ACL support and more
2.3.0 - Tue 27 Oct 2015
- Numerous bug fixes - this release is fundamentally a stability
- Update Checkpatch
- FSAL_GLUSTER ACL support using POSIX ACLs underneath
- FSAL_GLUSTER Upcall Interface
- FSAL_GLUSTER Performance Improvements (including pNFS performance)
- Send SECINFO_NO_NAME in preferred order.
- Build and Packaging Improvements
- In Memory NFS v4 ACLs for FSAL_VFS for experimentation/testing
- libntirpc Performance Improvements
- Allow Multiple DSes
- Cache Inode Tuning
- Licensing Cleanup
- Config improvements in FSAL_GLUSTER and FSAL_GPFS (including ability
to disable ACL support in config)
- Build properly on 32 bit and Big Endian platforms
- FSAL_GPFS fix regression for short handles to work with VMWare clients
- FSAL_GPFS fix regression for short handles to work with some NFS v3
clients that don't conform to RFC and only allow 56 byte handles