There are 2 open security issues in trixie.
There are 2 open security issues in bookworm.
commit df9907ed8a6e80efa657832ec2ff819e105be434
Merge: 8214eea 806f69f
Author: Christoph Martin <chrism@debian.org>
Date: Tue Oct 27 11:13:45 2026 +0000
Merge branch 'v15.2' into 'master'
15.2-3 release
See merge request debian/nfs-ganesha!10
commit 806f69fb66eb7746158236127d323083d5750df5
Author: Christoph Martin <martin@uni-mainz.de>
Date: Mon Oct 26 23:20:55 2026 +0100
d/control: Make python3-nfs-ganesha depend on procps for pidof (Closes: #1136534)
commit ee8dc49c9acbbc3fcf3e42742e6a7334aafc21fe
Merge: 2c2dc11 8214eea
Author: Christoph Martin <martin@uni-mainz.de>
Date: Mon Oct 26 23:18:41 2026 +0100
Merge branch 'master' into v15.2
commit 8214eea36da50ebe59aca366c1013fa84c589d61
Merge: 6e1be58 874f20c
Author: Christoph Martin <chrism@debian.org>
Date: Mon Oct 26 22:12:55 2026 +0000
Merge branch 'pidof-deps-procps' into 'master'
d/control: Make python3-nfs-ganesha depend on procps for pidof (Closes: #1136534)
See merge request debian/nfs-ganesha!9
commit 874f20c40ed2972432c479373b07b9017346a856
Author: Gioele Barabucci <gioele@debian.org>
Date: Sat Oct 24 00:37:56 2026 +0200
d/control: Make python3-nfs-ganesha depend on procps for pidof
`ganesha-top` requires `pidof` to detect the presence of the Ganesha
server.
Thus the `python3-nfs-ganesha` package must depend on `procps`.
Closes: #1136534
commit 2c2dc11154e7a677819b19b056f7e00312603966
Merge: f3e2f65 21c634b
Author: Christoph Martin <martin@uni-mainz.de>
Date: Tue Oct 20 18:28:47 2026 +0200
Merge branch 'master' into v15.2
commit 21c634b75428249e2cb21c6177438c89b6b11f90
Merge: 50715e4 3f9aec6
Author: Christoph Martin <chrism@debian.org>
Date: Tue Oct 20 07:53:10 2026 +0000
Merge branch 'v15.2' into 'master'
close #1150928
See merge request debian/nfs-ganesha!7
commit f3e2f65760b5df3183a7c75c58e1d4ac9e22bd3f
Merge: 07abf97 50715e4
Author: Christoph Martin <martin@uni-mainz.de>
Date: Tue Oct 20 09:26:02 2026 +0200
Merge branch 'master' into v15.2
commit 07abf977c24afe873cbcb0cbefe4960744ebd1c9
Author: Christoph Martin <martin@uni-mainz.de>
Date: Tue Oct 20 08:07:22 2026 +0200
builds against libntirpc 15.2 (closes: #1150928)
commit d4b56b4ac8e389256c4fd3f147e7ea47ebfdc8bc
Author: Christoph Martin <martin@uni-mainz.de>
Date: Mon Oct 19 19:56:03 2026 +0200
new builddeps
commit 9c8f85c79414836ca69c7560347c132a22bcbf4a
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 17:18:21 2026 +0200
fix install of gpfs-epoch
commit 9195d80674cecbd869957c6adea48c0bd7c87354
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 16:04:55 2026 +0200
* add new builddeps
* enable TLS
commit 0329147c243ba5b9f548787da69bd4cb0bb5d1de
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 16:02:38 2026 +0200
remove submodule libntirpc
commit 95921224eb8264559d27210e1936da25bdcce515
Merge: 1e7ade8 fb94ea6
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 16:00:08 2026 +0200
Merge commit 'fb94ea6fdfbca73675d2e8386bdecd40305350a0' as 'src/libkmip'
commit fb94ea6fdfbca73675d2e8386bdecd40305350a0
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 16:00:08 2026 +0200
Squashed 'src/libkmip/' content from commit 4f553ecaf
git-subtree-dir: src/libkmip
git-subtree-split: 4f553ecaf8e57cc3019222b8551d17888f0a1e66
commit 1e7ade80cd15a37367d602c3d12e1c8a517ca8dd
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 15:53:43 2026 +0200
remove submodule libkmip
commit 381fdf9afa229d46634705a048b5b93d17b66168
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 15:54:11 2026 +0200
enable TLS
commit 026178f9b871a89a701e0de28ac92bc37383e3f4
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 15:23:27 2026 +0200
fix source/format 1.0
commit 4c08c8a11d9033f8d17c97174ff37e472a56e5ab
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 11:48:00 2026 +0200
add builddep on libssl-dev
commit a99d559ed784bd751e5051262bb810357c05d8ee
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 01:34:25 2026 +0200
New upstream release.
commit 7eb0d6b57e5ad4ca1ab00f07052cdd8678bf0c65
Merge: 66151aa b2d60cb
Author: Christoph Martin <martin@uni-mainz.de>
Date: Sat Oct 17 01:30:11 2026 +0200
Merge tag 'V15.2' into v15.2
V15.2
NOTE: This merge includes an ntirpc pullup, please update your submodule.
Merge Highlights
* Add configurable access check policies for READDIR and LOOKUP
* Reorder operations in fsal_test_access to eliminate redundant getattrs calls.
* QoS: fix NULL qos_block deref in qos_perexport_insert
* Allow FSAL module to populate getdeviceinfo notifications
* Fix NULL ev_p Crash During Blocked Lock Grant
* ntirpc pullup to V15.2
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit b2d60cb3da9910a8c5c30420c133ae41a57716dd
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Fri Aug 21 14:34:05 2026 -0700
V15.2
Change-Id: If3e774d68a40578005bc48e037b0fb9e28ab0e30
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit 67c3843ee3644b4c137bee0f1b47c3584928be7b
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Fri Aug 21 14:32:34 2026 -0700
ntirpc pullup to V15.2
Change-Id: I807f75e781d05838bcdef280f8791e385b37246c
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit 11feeb2abb08e5cbe6f2adc0d46dc8c6a3ac81f3
Author: Rajesh Prasad <raprasad@redhat.com>
Date: Tue Aug 18 09:47:09 2026 -0400
Fix NULL ev_p Crash During Blocked Lock Grant
Bug: Ganesha crashes with a NULL dereference in `svc_rqst_expire_insert`
when granting a blocked NFSv4 lock to a client that disconnected before
the grant was attempted.
Event Sequence:
Client A - Acquires lock on file F
Client B - Requests same lock; placed in blocked-lock queue
(`STATE_BLOCKING`)
Client B - Disconnect — `svc_rqst_unreg()` clears `rec->ev_p = NULL
Client A - Issues `LOCKU` — lock released
Ganesha - Calls `grant_blocked_locks()` — Client B's entry is the
first candidate
Ganesha - `nfsv4_granted_callback()` → `nfs_rpc_cb_single()` →
`nfs_rpc_call()` → `CLNT_CALL_BACK()` →
`clnt_req_callback()` → `svc_rqst_expire_insert()`
CRASH - `sr_rec = cx->cx_rec->ev_p` is `NULL` →
`mutex_lock(sr_rec->)` → SIGSEGV
Fix:
While `cid_mutex` is held, a session cannot be removed from
`cb_session_list` (removal happens under `cid_mutex`), so the pointer
returned by `nfs41_Session_Get_Pointer` will equal `scur` in the normal
disconnect scenario. However, using `assert()` is wrong as a recovery tool:
- If session state is ever inconsistent (e.g. hash corruption), the server aborts.
- The correct action is to log the error and return `ENOTCONN` gracefully, giving `nfsv4_granted_callback()` the chance to return `STATE_ESTALE` and trigger lock entry cleanup.
Handle RPC failure case -
Covers the narrow race where the transport is destroyed after the
pre-check passes but before (or during) the RPC send. If RPC failed,
remove entry, try next.
Used `STATE_ESTALE` to cleans up correctly -
`try_to_grant_lock()` handles the return value of the callback:
```
STATE_LOCK_BLOCKED → restore sle_blocked, leave in list (will retry)
STATE_SUCCESS → return (lock granted, entry promoted)
anything else → fall through to remove_from_locklist()
```
`STATE_ESTALE` is "anything else", so the entry is removed.
`grant_blocked_locks()` uses `glist_for_each_safe`, so after the entry
is removed the loop automatically advances to the next blocked waiter.
Change-Id: I119d51ff60fb20022a1e38e3c1c510da8f45dcb2
Signed-off-by: Rajesh Prasad <raprasad@redhat.com>
commit 02c4823239a33840103dd59a8ddfb90732e901e8
Author: Haihua Yang <yanghh@gmail.com>
Date: Fri Jul 24 23:31:10 2026 +0000
Allow FSAL module to populate getdeviceinfo notifications
Change-Id: Ieeb85eabd35ac63e5d430885136f09f561ac8a51
Signed-off-by: Haihua Yang <yanghh@gmail.com>
commit aa69b37e25ee4d995b055e8604d102f1ad518696
Author: Suhas Athani <Suhas.Athani@ibm.com>
Date: Wed Aug 19 05:57:00 2026 -0400
QoS: fix NULL qos_block deref in qos_perexport_insert
qos_perexport_insert(export, NULL) is valid and means "use g_qos_config"
via lqos_block. The USE_MONITORING path still used qos_block->qos_type,
which SIGSEGV'd when EnableExportQosBwControl passed NULL.
Use lqos_block for the Per_Export metrics check.
Crash site: nfs_qos.c qos_perexport_insert(), qos_block == NULL.
Change-Id: I04a982e8c3b5142c9f0c99e2a8d645e6a6ee98d3
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
commit f6fcb89c5a2b44a84e4acd1faa5ef8e09d91e8f2
Author: Inna Batenkov <inneek@gmail.com>
Date: Mon Aug 17 16:38:29 2026 +0000
Reorder operations in fsal_test_access to eliminate redundant getattrs calls.
When access_type is 0 ("nothing requested"), fsal_test_access previously called
getattrs on the object handle before checking access_type. Moving the
access_type check to the beginning of fsal_test_access avoids executing an unnecessary getattrs RPC query when access_type == 0
Change-Id: I791a175e3a92f2fb449f856a9c3f7918258dffdd
Signed-off-by: Inna Batenkov <inneek@gmail.com>
commit 23700bfb16761e4e483d2f5d230e49e7fe8ce706
Author: Inna Batenkov <inneek@gmail.com>
Date: Wed Jul 1 14:31:10 2026 +0000
Add configurable access check policies for READDIR and LOOKUP
Change-Id: Iea7f2f9c7b94a2c5dffc6ca464741ce76a3c7c56
Signed-off-by: Inna Batenkov <inneek@gmail.com>
commit f35046ff99c3a2faa77fda959396bf43e41dfe71
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Fri Aug 14 15:15:52 2026 -0700
V15.1
Change-Id: Id7d3b6c67e829c32ab24b069d18e0511e11feeff
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit 3a0dcc3938d8b540e7f4a7522bd19f1d48ec247f
Author: Sheng Li <50203418+LiShengG@users.noreply.github.com>
Date: Wed Jul 8 10:37:26 2026 +0800
FSAL/CEPH: Release invalidated dentry inode
When a file created through nfs-ganesha (CephFS backend) is unlinked by
another CephFS client, the MDS reports nlink == 0 and libcephfs delivers
a dentry invalidate callback carrying the dentry's inode.
dentry_invalidate_cb only invalidated the parent directory's dirent
cache, leaving the MDCACHE entry for the unlinked file in place with its
libcephfs Inode reference. The MDS could not purge the stray inode, and
the file's storage space stayed allocated until ganesha restarted.
Nothing else releases that reference on an idle system: ino_release_cb
is only produced by trim_caps(), and MDCACHE LRU reaping only happens
above Entries_HWMark.
Also issue the try_release up-call for the dentry inode, which libcephfs
supplies only when it is removing the dentry from its own cache.
try_release drops the cached handle only when the object is otherwise
unused, so an inode still held open by an NFS client is left alone.
The up_ops lookup is done under cmount_lock and both up-calls share a
single read-side critical section.
Change-Id: I68d7847a87b363c7b4332ed853bfd23fd7963879
Signed-off-by: Sheng Li <50203418+LiShengG@users.noreply.github.com>
commit 84093c1898050a2c69d784244bf20e385af98968
Author: Nishant Puri <npuri@redhat.com>
Date: Thu Aug 13 06:14:31 2026 -0400
memstats: fix comp-tag mismatches, and bpftrace audit
Fix READDIR vio_base free tag (IO_BUFFER) and utf8string XDR_FREE via
free_utf8string() so PROTOCOL allocs are not freed as LIBNTIRPC.
Improve audit file: delete per-pointer BPF keys on free, larger hash maps,
and silence bpftrace delete() warnings.
Change-Id: I2eba1ca8ec9c91872d1836c926ad493d7932eb9c
Signed-off-by: Nishant Puri <npuri@redhat.com>
commit 28a7f28a7d6dfec90b3092074cbaa6889b49b796
Author: VidyaThumukunta <vidya.thumukunta@ibm.com>
Date: Wed Aug 12 05:23:50 2026 -0400
Grpc: Extend ShowExports response with protocol summary
Enhance the ShowExports gRPC API to include per-export protocol
activity, total operation count, and last update timestamp.
Also added 9P-specific gRPC APIs with _USE_9P to align with the
build configuration when 9P support is disabled.
Change-Id: I3a71a46bcc6c98ae07e1f4d8b49d0d1a20f0bf47
Signed-off-by: VidyaThumukunta <vidya.thumukunta@ibm.com>
commit dcb5934eaa379d55f388b682d76d1e3e4ebbd7e3
Author: VidyaThumukunta <vidya.thumukunta@ibm.com>
Date: Thu Aug 13 05:33:30 2026 -0400
Github issue #1128 - Reuse common synchronization for UpdateExport
Move the export synchronization helpers to common code and
reuse them from both the DBus and gRPC UpdateExport paths.
Invoke the common synchronization logic after successful
UpdateExport operations to keep the PseudoFS consistent
following dynamic export updates.
Change-Id: I47b3376c4da4ce9ebcf16667393dd5bea8a73d14
Signed-off-by: VidyaThumukunta <vidya.thumukunta@ibm.com>
commit 2a8abe7eafcba0cad6f9be35b3608b3168d1d27d
Author: Suhas Athani <Suhas.Athani@ibm.com>
Date: Thu Aug 13 06:49:05 2026 -0400
Fix Coverity leak in ceph_register_nfs_service(Coverity: 651219)
Coverity CID 651219 flags a leak of the dlopen handle in
ceph_register_nfs_service() when dlsym() fails.
dlclose() the handle on that failure path. On success the mapping is
left open: register_service_to_ceph() starts a heartbeat thread whose
code and state live in libganesha_rados_urls.so.
Change-Id: I58053dc283e83cc30f5707fc62a9f9d31de8452f
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
commit bcd37c533d1d0dc003b1b3682fd4924da9c5fa0d
Author: Suhas Athani <Suhas.Athani@ibm.com>
Date: Wed Aug 12 03:36:20 2026 -0400
gRPC: Add gRPC FakeRecall API for CBSIM fake_recall
Introduce nfsService.FakeRecall/FakeRecall, taking client_id and
returning nfsProtoUtil.StatusResponse. The handler delegates to
a new C helper, grpc_cbsim_fake_recall(). The helper mirrors the
D-Bus CBSIM behavior: look up a confirmed client id, test the
callback channel, and submit a demonstration CB_RECALL.
Change-Id: Ibb35912e217a269f362c6421d4038bf6213f73c7
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
commit fafff0966bea23183895e6e181d27643175ec356
Author: Suhas Athani <Suhas.Athani@ibm.com>
Date: Tue Aug 11 02:46:07 2026 -0400
Fix gRPC build for two-arg gsh_free and C++ linkage of mem stats
- Pass `MEM_COMP_CONFIG` to `gsh_free` in `nfsServiceServer.cc`
(AddExport/UpdateExport), matching `export_mgr.c` and the updated
`gsh_free(p, comp)` API.
- Move `gsh_mem_stats_update_alloc` / `gsh_mem_stats_update_free`
declarations inside the `extern "C"` block in `abstract_mem.h` so
C++ callers link against the C symbols instead of mangled names.
Change-Id: Ic35d254957755caa5b2d10490857215fbdb7f2f1
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
commit 0353f0953417f466c79588e8df92273b9f262c6c
Author: Prabhu Murugesan <prabhu.murugesan1@ibm.com>
Date: Thu Aug 13 11:10:59 2026 -0700
Fix malformed legacy Python install bcond generation
Remove the unintended RPMBUILD_VERSION value from the
BCOND_LEGACY_PYTHON_INSTALL CMake variable.
Including RPMBUILD_VERSION caused CMake to generate a list, resulting
in the RPM version being prepended to the generated spec file, e.g.:
4.19.1.1;%bcond legacy_python_install ...
This causes rpmbuild to fail with "Unknown tag".
Change-Id: I722157cfd866282b76d789087971a79e144946b6
Signed-off-by: Prabhu Murugesan <prabhu.murugesan1@ibm.com>
commit 624586f78f5515b695ad4d320845d3a61896d0f6
Author: Prabhu Murugesan <prabhu.murugesan1@ibm.com>
Date: Tue Aug 11 05:51:38 2026 -0700
Use GPFS-specific logrotate config for Ganesha packages
Install the GPFS-specific gpfs_logrotate_ganesha configuration when
building Ganesha with GPFS support. For non-GPFS builds, continue to
install the standard logrotate_ganesha configuration
Change-Id: I6a79c1029451633e711061c059707508143adbd7
Signed-off-by: Prabhu Murugesan <prabhu.murugesan1@ibm.com>
commit cf95ecf49343adf2d9df3475ec4d86117b1956f3
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Fri Aug 7 16:24:38 2026 -0700
V15.0
Change-Id: I29acf48fde5dd3a41c1495fe6e6d816567b06db6
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit 21c88a58ada7993bf9fb2d38516ba11b28539bd6
Author: Sachin Punadikar <sachin.punadikar@ibm.com>
Date: Thu Aug 6 13:20:10 2026 -0400
Fix compilation error for USE_NFS3=OFF
Fix compilation error when build time flag USE_NFS3=OFF is used.
Change-Id: I17ff654507954f71084cc03d953abafb17d2cea7
Signed-off-by: Sachin Punadikar <sachin.punadikar@ibm.com>
commit aa9472e5270a3ccbc4f783980d36cb0850d93673
Author: VidyaThumukunta <vidya.thumukunta@ibm.com>
Date: Thu Aug 6 08:54:39 2026 -0400
Grpc: Add CacheMgr gRPC APIs
Implement gRPC equivalents for the CacheMgr DBus APIs by introducing
the CacheMgrService. Add support for the following methods:
- ShowIdMapperUsers
- ShowIdMapperGroups
- ShowNegativeUsers
- ShowNegativeGroups
- ShowNegativeUIDs
- ShowUid2Grp
Introduce helper APIs in the cache modules to populate gRPC-specific
data structures while keeping the existing DBus implementation
unchanged.
Change-Id: I76e2d983244a7a617012127f80bfc7ac69dc54a9
Signed-off-by: VidyaThumukunta <vidya.thumukunta@ibm.com>
commit adf2cc08b8c51c5fc455d33242930369c49a3e17
Author: Nishant Puri <npuri@redhat.com>
Date: Tue Jul 14 08:03:00 2026 -0400
memstats: add framework for runtime memory accounting
Introduce a memory statistics framework to track dynamic memory usage
across NFS-Ganesha components. The framework associates allocations and
frees with well-defined memory components, enabling runtime visibility into
allocation activity, current memory consumption, and leak analysis.
Organize memory accounting around well-defined allocation domains
spanning ACLs, client management, client IDs and sessions, configuration,
exports, FSAL, protocol processing, state management, recovery,
cache management, libntirpc, D-Bus and gRPC management interfaces,
QoS, I/O buffers and supporting infrastructure. Allocation sites
throughout these subsystems are updated to attribute memory usage to
the appropriate component while preserving existing allocation semantics.
Add DBus interfaces and corresponding ganeshactl support to display and
reset memory statistics at runtime, allowing administrators and
developers to inspect memory usage without restarting the server.
Also provide a bpftrace-based auditing tool to help validate component
classification and identify allocation sites while developing or
debugging memory attribution.
The collected statistics provide per-component allocation counts,
deallocation counts, allocated bytes, freed bytes, current memory usage
and peak memory usage, simplifying memory leak analysis and long-running
memory usage investigations
Change-Id: I8e1840e4a6a530eaae6e41d532d5f86768445ceb
Signed-off-by: Nishant Puri <npuri@redhat.com>
commit 8432f4ff4e6a38c4bdfc3403d9e1d21b7de3e68a
Author: Nishant Puri <npuri@redhat.com>
Date: Wed Aug 5 06:24:39 2026 -0400
log: ignore duplicate conditional logging list entries
Duplicate export IDs or clients in Log { Conditional { ... } } were
reported via config_proc_error() but set err_type->exists, causing
read_log_config() to fail and abort startup or reload.
After logging a duplicate, clear err_type->exists and return success from
the conditional logging adders so the first entry is kept and parsing
continues. Warnings remain in the config error buffer, so startup still
fails when ganesha.nfsd is invoked with -x.
Change-Id: Ib3915bdd8175ca1d5812c29bcdfa21c50799e740
Signed-off-by: Nishant Puri <npuri@redhat.com>
commit b895a1c8938024563dd2c52d911dfc10fa979008
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Tue Aug 4 13:35:02 2026 -0700
V14.1
Change-Id: I02cd9ad5e2ef702a52b232a4080648dc116723cc
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit b135397c59dd2ce5ac3bf7ff0d87d717f60a7223
Author: Naresh Chillarege <naresh.chillarege@ibm.com>
Date: Tue Aug 4 13:34:35 2026 -0400
Fixed rpm build issue without cluster qos enabled.
Change-Id: Ic33f98cc115f61df936668e69af8b77beff872ee
Signed-off-by: Naresh Chillarege <naresh.chillarege@ibm.com>
commit 208a1b582412448b74b4c92e723563aa4c50755b
Author: VidyaThumukunta <vidya.thumukunta@ibm.com>
Date: Wed Jul 29 14:48:05 2026 -0400
Grpc: Add export management APIs
Implement gRPC APIs for adding, updating, and removing exports.
The implementation reuses the existing export management
infrastructure and includes the required pseudo filesystem
synchronization after export changes.
Change-Id: I7ec4bc119c5d35e6f130d664bda9a060d259be1b
Signed-off-by: VidyaThumukunta <vidya.thumukunta@ibm.com>
commit 3f81c3eedecd89d9ed589bbf20b92ec06bf8d1b0
Author: VidyaThumukunta <vidya.thumukunta@ibm.com>
Date: Mon Jul 27 03:46:55 2026 -0400
Grpc: Add remaining export statistics APIs
Implement gRPC equivalent APIs for the remaining export statistics D-Bus methods:
- GetFULLV3Stats
- GetFULLV4Stats
- GetFastOPS
- GetNFSv41Layouts
- GetNFSv42Layouts
- Get9pIO
- Get9pOpStats
- EnableStats
- DisableStats
- ResetStats
- StatusStats
- GetAuthStats
- GetExportDetails
- ShowFDUsage
- ShowMDCache
The implementation preserves D-Bus behavior while introducing common
helper functions to reduce duplicated logic across protocol-specific
statistics handlers.
Change-Id: I428fa1321a33983e11876cc5d5cb9d1522dc12f3
Signed-off-by: VidyaThumukunta <vidya.thumukunta@ibm.com>
commit b7e25ed3f1b18b674e826943c3af8dc94a43d1ed
Author: Marcus Watts <mwatts@redhat.com>
Date: Fri Jul 3 00:18:03 2026 -0400
packaging : jumbo fixups for el9,10
= src/nfs-ganesha.spec-in.cmake =
buildrequires python3-setuptools
Install python3-setuptools on el 9, 10.
don't install bits not built
If using the system libntirpc, the file libntirpcmonitoring.so
will not be built and cannot be installed.
do not remove __pycache__
Removing __pycache__ at buld time won't work.
It will be built by an automatic rule at %install time which
happens after %build time.
Secondly, removing __pycache__ is Bad. What will happen then is:
the first time root runs across this python module, a .pyc file will
be made. Since that .pyc file isn't being managed, it will interfere
with later attempts to remove or update the package.
must install /Ganesha/ bits for el9,10
They get installed by cmake. And I believe at least some of the bits
are needed by some of the nfs ganesha utilities.
Set WITH_PYTHON3 to ensure cmake will use the right
python to put files where rpmbuild expects to find them.
This matters because ci-tests installs python 3.11 along
with python 3.9.
Correct usage of @BCOND_LIZARDFS@ and %{use_fsal_saunafs}.
Use @BCOND_LEGACY_PYTHON_INSTALL@ to get bcond_with/without or
bcond according to version of rpmbuild.
Use NTIRPC_COMMENT_IF_EQUAL to comment out duplciated libntirpc.so.
Package /Ganeha/* files for utils for fc34+ too.
"libacl-devel" is a core build requirement requirement, it's not
just for ceph | gluster.
In fc43+, python3-build is replaced by python3-build+virtualenv .
= src/CMakeLists.txt =
Update cmake minimum reuired to 3.10. Remove support for <2.6.
Also document which versions this was teted with.
Default LizardFS off.
Fix CMP0175 errors. Corrects add_custom_command usage.
Resurrect USE_LEGACY_PYTHON_INSTALL option, but automagic it
to when python version < 3.12. This can be used for fc37
which has python 3.11, but requires without legacy_pythoh_install.
Logic to set NTIRPC_COMMENT_IF_EQUAL_ELSE_PERCENT acording to whether
NTIRPC_VERSION_EMBED == NTIRPC_ABI_EMBED. This will
expand out to suppress duplicating libntirpc.so
if the versions are the same (which is currently always true).
Detect version of rpmbuild and emit %bcond_with / %bcond_without
for older rpmbuild that doesn't have %bcond. This matters
for fc34 and el9.
= src/scripts/gpfs-epoch/CMakeLists.txt =
install gpfs-epoch in el10
Ganesha wants to put gpfs-epoch, a python script, into
/usr/libexec/ganesha (or some logical variation thereof).
In el10, we have python 3.12, which removes support for antique install logic.
The replacement (python3 -m installer) lacks support for setting bindir
and always puts scripts into /usr/bin. Rather than fighting with
the python installer, this commit just installs the script directly.
= src/scripts/ganesha-top/CMakeLists.txt =
fix ganesha-top install on el10
This change works around antique python install logic
for ganesha-top.
"mkdir -p build/lib" invites the python installer to recursively search
for all .py files, which results in really weird behavior when it finds
build/lib. We don't need this, so get rid of it. The goal is that
the wheel that comes out of this should not have setup.py or build/lib,
or any variation thereof.
package_dir isn't needed here, so get rid of it.
Change-Id: I943ed9958bb1326acc21f3354f8d8ced297ded0a
Signed-off-by: Marcus Watts <mwatts@redhat.com>
commit 9fbcecdf7983aca265d1755cf2f5e588b7c06b9e
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Tue Aug 4 13:25:24 2026 -0700
Pullup ntirpc 14.1
This includes a patch that should have gpone into V14.0
Change-Id: Id4fd7a3ab2efb78b1b24dbf721c7071aa9662056
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit 4001eb75ce3101fa76d077678eade3ffbfe7a36c
Author: Frank S. Filz <ffilzlnx@mindspring.com>
Date: Fri Jul 31 15:24:09 2026 -0700
V14.0
Change-Id: I9d7fc3a9e7db968f5c25e0fdd75657aaf7b9356a
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
commit a6fe32815982278452d5f594a31cf7083ce04061
Author: Suhas Athani <Suhas.Athani@ibm.com>
Date: Mon Jul 27 05:41:08 2026 -0400
gRPC: Add gRPC ClientMgr APIs for Add/Remove/Show/Disconnect clients
- Add `cltmgrService.ClientMgr` mirroring D-Bus
`org.ganesha.nfsd.clientmgr`:
AddClient
RemoveClient
ShowClients
DisconnectNfsv41Client
- Wire C bridge helpers in `client_mgr.c` /
`server_stats.c` and register `ClientMgrService`
alongside the existing `ClientStats` service.
- Preserve D-Bus semantics: status in the response
body, ShowClients returns a client snapshot with
protocol/state counters, Disconnect tears down
NFSv4.1/4.2 session connections only.
Change-Id: If14cc33a8deab4685aa0f7e60f8f95aabb375d08
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
commit 470e4c0ab8e86890e92454023facbd1d18fa0248
Author: Suhas Athani <Suhas.Athani@ibm.com>
Date: Thu Jul 30 04:48:09 2026 -0400
Normalize IPv4 addresses in hash_sockaddr() to match IPv4-mapped IPv6 form
`hash_sockaddr()` produces different hashes for the same IPv4 address
depending on whether it's stored as `AF_INET` or IPv4-mapped IPv6
(`::ffff:a.b.c.d`). This breaks consistency in the client_mgr cache:
NFS inserts using the mapped form, but RemoveClient clears using the
plain IPv4 form, leaving a stale pointer after free.
Problem:
- `sockaddr_cmp()` treats both forms as equal (canonicalization on compare)
- `hash_sockaddr()` did not normalize them the same way on little-endian hosts
- RemoveClient cache invalidation misses, leaving freed entry accessible
- Subsequent remount hits stale cache → use-after-free or crash in `sockaddr_cmp()`
Solution:
1. Normalize `AF_INET` to IPv4-mapped IPv6 before hashing in `hash_sockaddr()`
so both forms produce the same hash.
2. Use the stored client address hash in `remove_gsh_client()` for cache
invalidation (defensive; now redundant but future-proof).
Change-Id: Ibf2d8a5fc1a81b3ef48551c895e7af2c4d173897
Signed-off-by: Suhas Athani <Suhas.Athani@ibm.com>
commit 756057556e118234c152e7d0039974ef3f5cf037
Author: Nishant Puri <npuri@redhat.com>
Date: Wed Jul 29 10:18:22 2026 -0400
SAL: hold NLM owner ref while share is on share lists
Commit-id: dc03cb3 removed the owner reference held through get_nlm_state().
That exposed a gap in the NLM4_SHARE path: when a share is first
linked onto ssc_share_list, no owner reference was taken, but
nlm4_Share() still drops its temporary owner ref at RPC end. The
owner can be freed while share state_t and share lists remain,
leading to use-after-free during FREE_ALL/SM_NOTIFY cleanup.
Take inc_state_owner_ref() when adding the first share to
ssc_share_list in state_nlm_share(), and dec_state_owner_ref() in
remove_nlm_share() when the share is fully removed.
Change-Id: I8829de9b1140852f207088e20c358a60dad75403
Signed-off-by: Nishant Puri <npuri@redhat.com>
commit 526574c296017e07567b1d2cdb925a20ff58abf1
Author: Ananya Gupta <ananyagupta4506@gmail.com>
Date: Mon Jul 27 21:50:39 2026 -0700
Enabling NFS over UDP for mount and rquota only by default in NFS-Ganesha
The default value of Enable_UDP is changed from all to mount, rquota
Change-Id: Icbb5a569c6a6abb97e7d30f03181e1b62a8c86ba
Signed-off-by: Ananya Gupta <ananyagupta4506@gmail.com>
commit 8bdb7b5538053ef4520daef880e59131bb06dc4d
Author: VidyaThumukunta <vidya.thumukunta@ibm.com>
Date: Wed Jun 24 08:59:19 2026 -0400
Grpc: Export Display, Show and ShowIdMapper management APIs
Implement gRPC equivalents for the existing DBus management APIs.
This change adds support for:
- ExportService
- DisplayExport
- ShowExports
- ShowIdMapperService
- ShowIdMapper
Change-Id: I872d55d7111880912fe8000afe58736e460d1a22
Signed-off-by: VidyaThumukunta <vidya.thumukunta@ibm.com>