Change in ...nfs-ganesha[next]: Allow EXPORT pseudo path to be changed during export update
by Frank Filz (GerritHub)
Frank Filz has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/490334 )
Change subject: Allow EXPORT pseudo path to be changed during export update
......................................................................
Allow EXPORT pseudo path to be changed during export update
This also fully allows adding or removing NFSv4 support from an export
since we can now handle the PseudoFS swizzing that occurs.
Note that an explicit PseudoFS export may be removed or added, though
you can not change it from export_id 0 because we currently don't allow
changing the export_id.
Note that this patch doesn't handle DBUS add or remove export though
that is an option to improve. I may add them to this patch (it wouldn't
be that hard) but I want to get this reviewed as is right now.
There are implications to a client of changing the PseudoFS. I have
tested moving an export in the PseudoFS with a client mounted. The
client will be able to continue accessing the export, though it may
see an ESTALE error if it navigates out of the export. The current
working directory will go bad and the pwd comment will fail indicating
a disconnected mount. I have also seen referencing .. from the root of
the export wrapping around back to the root (I believe this is how
disconnected mounts are set up).
FSAL_PSEUDO lookups and create handles (PUTFH or any use of an NFSv3
handle where the inode isn't cached) which fail during an export update
are instead turned into ERR_FSAL_DELAY which turns into NFS4ERR_DELAY or
NFS3ERR_JUKEBOX to force the client to retry under the completed update.
Change-Id: I507dc17a651936936de82303ff1291677ce136be
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
---
M src/FSAL/FSAL_PSEUDO/handle.c
M src/MainNFSD/libganesha_nfsd.ver
M src/Protocols/NFS/nfs4_pseudo.c
M src/include/export_mgr.h
M src/include/nfs_proto_functions.h
M src/support/export_mgr.c
M src/support/exports.c
7 files changed, 560 insertions(+), 203 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/34/490334/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/490334
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I507dc17a651936936de82303ff1291677ce136be
Gerrit-Change-Number: 490334
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx(a)mindspring.com>
Gerrit-MessageType: newchange
7 months, 3 weeks
Help needed on FD
by Alok Sinha
FD created at below path does not have correct link in /proc/self/fd.
With vfs_readlink_by_handle , I can get a relative path but cannot get the
absolute path of the FD.
I need a suggestion for one of the below to get around a production bug:
- How to get the full path of the FD?
- How to get the parent vfs_fsal_obj_handle?
- Anyway to bypass this flow by changing any config file?
#0 vfs_create_handle (exp_hdl=0x55801aca22c0, hdl_desc=0x7f93889b1600,
handle=0x7f93889b13f8, attrs_out=0x7f93889b1430)
at /home/alok/pub/splfs-cache-2.8.3/src/FSAL/FSAL_VFS/handle.c:2020
#1 0x00007f94a1f0e13b in mdcache_locate_host (fh_desc=0x7f93889b1600,
export=0x55801aca1f20, entry=0x7f93889b1578, attrs_out=0x0)
at
/home/alok/pub/splfs-cache-2.8.3/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c:1109
#2 0x00007f94a1f02455 in mdcache_create_handle (exp_hdl=0x55801aca1f20,
fh_desc=0x7f93889b1600, handle=0x7f93889b15d8, attrs_out=0x0)
at
/home/alok/pub/splfs-cache-2.8.3/src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_handle.c:1613
#3 0x00007f94a1ec5ead in nfs4_mds_putfh (data=0x7f93201119e0)
at
/home/alok/pub/splfs-cache-2.8.3/src/Protocols/NFS/nfs4_op_putfh.c:211
#4 0x00007f94a1ec60d3 in nfs4_op_putfh (op=0x7f93201186d0,
data=0x7f93201119e0, resp=0x7f932010ab20)
at
/home/alok/pub/splfs-cache-2.8.3/src/Protocols/NFS/nfs4_op_putfh.c:281
#5 0x00007f94a1ea96ae in process_one_op (data=0x7f93201119e0,
status=0x7f93889b1b48)
at
/home/alok/pub/splfs-cache-2.8.3/src/Protocols/NFS/nfs4_Compound.c:920
#6 0x00007f94a1eaa8c5 in nfs4_Compound (arg=0x7f9320138d78,
req=0x7f93201385a0, res=0x7f9320106840)
at
/home/alok/pub/splfs-cache-2.8.3/src/Protocols/NFS/nfs4_Compound.c:1329
#7 0x00007f94a1de8567 in nfs_rpc_process_request (reqdata=0x7f93201385a0)
---Type <return> to continue, or q <return> to quit---
at
/home/alok/pub/splfs-cache-2.8.3/src/MainNFSD/nfs_worker_thread.c:1484
#8 0x00007f94a1de8854 in nfs_rpc_valid_NFS (req=0x7f93201385a0)
at
/home/alok/pub/splfs-cache-2.8.3/src/MainNFSD/nfs_worker_thread.c:1591
#9 0x00007f94a13b6faf in svc_vc_decode (req=0x7f93201385a0)
at /home/alok/pub/splfs-cache-2.8.3/src/libntirpc/src/svc_vc.c:829
#10 0x00007f94a13b3225 in svc_request (xprt=0x7f9320000ce0,
xdrs=0x7f9320066260)
at /home/alok/pub/splfs-cache-2.8.3/src/libntirpc/src/svc_rqst.c:793
#11 0x00007f94a13b6ec0 in svc_vc_recv (xprt=0x7f9320000ce0)
at /home/alok/pub/splfs-cache-2.8.3/src/libntirpc/src/svc_vc.c:802
#12 0x00007f94a13b31a5 in svc_rqst_xprt_task (wpe=0x7f9320000f00)
at /home/alok/pub/splfs-cache-2.8.3/src/libntirpc/src/svc_rqst.c:774
#13 0x00007f94a13bcab0 in work_pool_thread (arg=0x7f9218003340)
at /home/alok/pub/splfs-cache-2.8.3/src/libntirpc/src/work_pool.c:184
#14 0x00007f94a1badea5 in start_thread () from /lib64/libpthread.so.0
#15 0x00007f94a16ce9fd in clone () from /lib64/libc.so.6
--
Alok Sinha
www.spillbox.io
https://youtu.be/U-YupjLQ9bU
8 months, 2 weeks
[S] Change in ...nfs-ganesha[next]: FSAL_PROXY_V3: Support POSIX attributes instead of ATTRS_NFS3
by Assaf Yaari (GerritHub)
Assaf Yaari has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545455 )
Change subject: FSAL_PROXY_V3: Support POSIX attributes instead of ATTRS_NFS3
......................................................................
FSAL_PROXY_V3: Support POSIX attributes instead of ATTRS_NFS3
The only difference is the addition of ATTR_CHANGE which is mandatory in
the NFSv4.1 spec.
Without it, NFS clients missed directory modifications.
Signed-off-by: Assaf Yaari <assafy(a)google.com>
Change-Id: I0e9bc42aac7fa2506d7d3ae616a3897d80da3606
---
M src/FSAL/FSAL_PROXY_V3/main.c
M src/FSAL/FSAL_PROXY_V3/proxyv3_fsal_methods.h
M src/FSAL/FSAL_PROXY_V3/utils.c
3 files changed, 30 insertions(+), 10 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/55/545455/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545455
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I0e9bc42aac7fa2506d7d3ae616a3897d80da3606
Gerrit-Change-Number: 545455
Gerrit-PatchSet: 1
Gerrit-Owner: Assaf Yaari <assafy(a)google.com>
Gerrit-MessageType: newchange
1 year, 11 months
Announce Push of V4.0.11
by Frank Filz
Branch next
Tag:V4.0.11
Merge Highlights
* Numerous fixes of Coverity issues
* Enable Protocols config in EXPORT_DEFAULTS to work as expected
* ganesha: Build with Modern C
* Check whether request is a real replay to warn kernel's bug
* NLM: nlm send async ipv4 handling.
* Fix crash at inc/dec_state_t_ref by getting open_state from hashtable
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
Contents:
adbb6ec2d Frank S. Filz V4.0.11
8effd5703 liyinshu Fix crash at inc/dec_state_t_ref by getting open_state
from hashtable
6c1fb888f Gaurav Gangalwar NLM: nlm send async ipv4 handling.
c5cf8ca1a liyinshu Check whether request is a real replay to warn kernel's
bug
708ffe297 Kaleb S. KEITHLEY ganesha: Build with Modern C
dedb81de0 Paul Moyer fixed coverity issue 356423 - improved handling of
pidfile
d192cd604 Paul Moyer fixed coverity issue 313020 - i_acl should be e_acl
instead
eeaa567a7 Frank S. Filz Enable Protocols config in EXPORT_DEFAULTS to work
as expected
b9a0be0b4 Frank S. Filz RGW: fix memory leak of stream and streambuf on
error
db3a91861 Frank S. Filz RGW: Be safe with allocations when parsing rados URL
0ff2d9259 Frank S. Filz RGW: Disable xattrs
51ef99e5c Frank S. Filz RGW: construct_handle only returns 0, consistently
ignore return
685f7f9ec Frank S. Filz proxyv3_mknode: cleanly return ERR_FSAL_INVAL if
nodetype is invalid
d8f97cb79 Frank S. Filz get_nfsmon_export_io: remove dead code
8e4a167e5 Frank S. Filz Logging: fix a type issue with server epoch
1e4d3032c Frank S. Filz mdcache_populate_dir_chunk: state.prev_chunk can't
be NULL
5ed3c7dbd Frank S. Filz config_parsing: remove extraneous parameters from
config_proc_error call
3b507127a Frank S. Filz encode_posix_acl make count signed so error
detection works
b87dd87df Frank S. Filz state_lock: Check return code of HashTable_Del
355acb2fb Frank S. Filz WARNING - BROKEN CODE FOR EVENT_TAKE_NODEID - Make
this a bit more obvious
369176ebe Frank S. Filz recovery_fs: Properly account for size of node
sub-string
0b9e96a88 Frank S. Filz nfs_dupreq: release t->mtx if we bail out for
in-progress dupe req.
fe4c85ead Frank S. Filz NFSv3: Fix unitialized status
2399a8211 Frank S. Filz FSAL: Display ACE needs to use IS_FSAL_ACE_GROUP_ID
if not IS_FSAL_ACE_SPECIAL_ID
d27445911 Frank S. Filz VFS: u32 is a pair of uint32_t need to display with
PRIx32
59a4e2f36 Frank S. Filz VFS: fix use of return of vfs_fsal_open and remove
dead code
28e98a7b1 Frank S. Filz VFS: fix error path in vfs_get_root_fd that can leak
fd
18fcbd279 Frank S. Filz FSAL: pds->fsal should not be NULL
1e3ae15f1 Frank S. Filz server_stats - clean up casting to double and
division
4e2321b9d Frank S. Filz NFS3: Cleanup handing of immediate return of
NFS_REQ_OK
fddeec928 Frank S. Filz EXPORTS: Initialize NULL to old_fullpath and
old_pseudopath
1 year, 11 months
Support for xattrs, where client is macOS (darwin and ventura) .... and Ganesha runs on same machine
by David Rieber
In my system setup I have the NFS client and NFS server (Ganesha) running on the same machine, running macOS (darwin and soon ventura).
Most things are working, but xattrs do not work. Does anybody has pointers on how to get this to work?
I am aware of RFC8276 "File System Extended Attributes in NFSv4" and it looks like Ganesha has added support for RFC8276 (right?).
But even after mounting the NFS filesystem with "namedattr" it looks like this does not work: "xattr -l README" returns empty output.
1 year, 11 months
[M] Change in ...nfs-ganesha[next]: ganesha: Build with Modern C
by Kaleb KEITHLEY (GerritHub)
Kaleb KEITHLEY has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545319 )
Change subject: ganesha: Build with Modern C
......................................................................
ganesha: Build with Modern C
GCC and Clang communities are hinting that in versions 14 and 16
respectively they will deprecate or disable legacy C89 features,
e.g. K&R1 style function definitions, among others.
In parallel, Fedora is going to start enforcing C99 as the minimum,
expected to land in F40. (I.e. around Spring 2024 IIRC.)
Currently Fedora is recommending that use of -Werror=implicit-int,
-Werror=implicit-function-declaration, -Werror=int-conversion,
-Werror=strict-prototypes, and -Werror=old-style-definition a set
of options to build with in the mean time to clean up code.
Change-Id: I94e1c6d1442524d4e9e594605b20479fb3d5fd62
Signed-off-by: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
---
M src/Protocols/NFS/nfs3_readdir.c
M src/Protocols/NFS/nfs3_readdirplus.c
M src/Protocols/NFS/nfs_proto_tools.c
M src/Protocols/XDR/xdr_mount.c
4 files changed, 52 insertions(+), 54 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/19/545319/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545319
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I94e1c6d1442524d4e9e594605b20479fb3d5fd62
Gerrit-Change-Number: 545319
Gerrit-PatchSet: 1
Gerrit-Owner: Kaleb KEITHLEY <kaleb(a)redhat.com>
Gerrit-MessageType: newchange
1 year, 11 months
[L] Change in ...nfs-ganesha[next]: Enable Protocols config in EXPORT_DEFAULTS to work as expected
by Frank Filz (GerritHub)
Frank Filz has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545233 )
Change subject: Enable Protocols config in EXPORT_DEFAULTS to work as expected
......................................................................
Enable Protocols config in EXPORT_DEFAULTS to work as expected
An EXPORT need not have a Protocols config, in which case the value from
EXPORT_DEFAULTS will be used and if that isn't present, then the value
from NFS_CORE_PARAM will be used.
Also fixup some checking of exports.
Now that an export can be exported NFSv4 by default, we make it NOT an
error to not have a pseudo path, instead we fix up the export to not be
NFSv4.
To make everything work, the Protocols in EXPORT needs to default to
nothing. With this, if Protocols is not specified in CLIENT, EXPORT, or
EXPORT_DEFAULTS, it will defer to the next layer up, ultimately to the
NFS_CORE_PARAM Protocols, which defaults to NFSv3, NFSv4.
Change-Id: If932a602b5dacd266ac2813f84936a97f8ba0f7e
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
---
M src/Protocols/NFS/nfs4_pseudo.c
M src/config_samples/config.txt
M src/doc/man/ganesha-export-config.rst
M src/include/export_mgr.h
M src/support/exports.c
5 files changed, 262 insertions(+), 48 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/33/545233/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545233
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: If932a602b5dacd266ac2813f84936a97f8ba0f7e
Gerrit-Change-Number: 545233
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx(a)mindspring.com>
Gerrit-MessageType: newchange
1 year, 11 months
[M] Change in ...nfs-ganesha[next]: NFS: Add a config to limit the number of entries returned in readdir
by Frank Filz (GerritHub)
Frank Filz has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545070 )
Change subject: NFS: Add a config to limit the number of entries returned in readdir
......................................................................
NFS: Add a config to limit the number of entries returned in readdir
Also, fix up the maximum size of the response. Don't have the special
value 0 any more and make the maximum 1 MB (which is close to what the
Linux NFSv4 client asks for).
Change-Id: I5e0c6a93003212efb0ec9ed9c9f62d5b90394bf3
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
---
M src/Protocols/NFS/nfs3_readdir.c
M src/Protocols/NFS/nfs3_readdirplus.c
M src/Protocols/NFS/nfs4_op_readdir.c
M src/config_samples/config.txt
M src/doc/man/ganesha-core-config.rst
M src/include/gsh_config.h
M src/support/nfs_read_conf.c
7 files changed, 101 insertions(+), 21 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/70/545070/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/545070
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I5e0c6a93003212efb0ec9ed9c9f62d5b90394bf3
Gerrit-Change-Number: 545070
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx(a)mindspring.com>
Gerrit-MessageType: newchange
1 year, 11 months