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
10 months, 1 week
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
11 months
[M] Change in ...nfs-ganesha[next]: CEPH: Fix up cmount_path
by Frank Filz (GerritHub)
Frank Filz has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1171360?usp=email )
Change subject: CEPH: Fix up cmount_path
......................................................................
CEPH: Fix up cmount_path
OOPS - cmount_path is NOT mandatory
If it isn't specified, then handle like the old days.
Support an export without cmount_path (so the cmount will be at fullpath)
with exports of a sub-directory of that, specifying that path as
cmount_path. The result, as long as all other parameters are the same, will
be sharing of the cephfs client.
Change-Id: Iefc3043eca5a4445931bc9c95b916f198d50510d
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
---
M src/FSAL/FSAL_CEPH/internal.c
M src/FSAL/FSAL_CEPH/main.c
2 files changed, 70 insertions(+), 18 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/60/1171360/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1171360?usp=email
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: Iefc3043eca5a4445931bc9c95b916f198d50510d
Gerrit-Change-Number: 1171360
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx(a)mindspring.com>
Gerrit-MessageType: newchange
1 year, 2 months
[S] Change in ...nfs-ganesha[next]: Size inactive DRCs to avoid high memory usage
by Name of user not set (GerritHub)
xh140312(a)outlook.com has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1171181?usp=email )
Change subject: Size inactive DRCs to avoid high memory usage
......................................................................
Size inactive DRCs to avoid high memory usage
DRC is per client IP, port pair. We won't free the drc as soon
as the tcp connection gets closed, instead will put it in a recycle
queue for 10 mins(time expired check happen in drc_free_expired).
However, currently we don't have any parameter control the size of
the recycle queue for inactive DRC.
In this change, hiwat parameter is added and set for len of recycle
queue to prevent unexpected high memory usage.
Change-Id: I63fc3670d2d2b316c83cce1e172242c78ce66c75
Signed-off-by: Xueqian Hu <xueqian.hu(a)nutanix.com>
---
M src/RPCAL/nfs_dupreq.c
M src/include/gsh_config.h
M src/support/nfs_read_conf.c
3 files changed, 20 insertions(+), 4 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/81/1171181/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1171181?usp=email
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: I63fc3670d2d2b316c83cce1e172242c78ce66c75
Gerrit-Change-Number: 1171181
Gerrit-PatchSet: 1
Gerrit-Owner: xh140312(a)outlook.com
Gerrit-MessageType: newchange
1 year, 2 months
[S] Change in ...nfs-ganesha[next]: FSAL: Fix some issues with resolving POSIX filesystems
by Martin Schwenke (GerritHub)
Martin Schwenke has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1171108?usp=email )
Change subject: FSAL: Fix some issues with resolving POSIX filesystems
......................................................................
FSAL: Fix some issues with resolving POSIX filesystems
Commit 6e18be9236b952fd1dbba80b4ef6819e3f2f9a2d accidentally
introduced a 1 second delay per export.
If stat() returns 0 then the initial loop iteration continues, causing
at least one call to nanosleep(). Instead, the loop should break on
success.
Why 1 second? Arguments to CONF_ITEM_UI32() should look like:
CONF_ITEM_UI32(_name_, _min_, _max_, _def_, _struct_, _mem_)
That is the 3rd argument should be the maximum and the 4th should be
the default. These currently appear to be in the wrong order, since
the default is not within the range. This is actually lucky because
with a timeout of 100ms we probably wouldn't have noticed the first
problem. ;-)
Signed-off-by: Martin Schwenke <mschwenke(a)ddn.com>
Change-Id: If5e0ca60485a2e5f13d03fa5e2a3050ef6697eab
---
M src/FSAL/localfs.c
M src/support/nfs_read_conf.c
2 files changed, 10 insertions(+), 8 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/08/1171108/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1171108?usp=email
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: If5e0ca60485a2e5f13d03fa5e2a3050ef6697eab
Gerrit-Change-Number: 1171108
Gerrit-PatchSet: 1
Gerrit-Owner: Martin Schwenke <martin(a)meltin.net>
Gerrit-MessageType: newchange
1 year, 2 months
Announce Push of V5.6
by Frank Filz
Branch next
Tag:V5.6
Merge Highlights
* CEPH: Disable nonblocking-io - the cephfs filesystem just isn't ready for
it yet.
* CEPH: Add capability to share ceph client between exports
* MDCACHE: try_release should set up op_context
* Add documentation for quoted strings in config.
* CMAKE: Fix use of USE_CB_SIMULATOR and USE_DBUS
* PSEUDOFS: Add some debug
* GLUSTER: in glusterfs_copy_my_fd insert_fd_lru belongs in the is_dup path
* mdcache_lru_pkginit now properly initializes Cache_FDs from mdcache_param.
* Fixed a couple issues raised by UBSAN.
* Fixed a couple issues with json
* nfs_proto_tools: Change the dynamicinfo field to be concrete
* CRASH:Memory access violation in posix_acl_2_fsal_acl
* main: periodically poke malloc()/free() to release memory
* getquota to support 64bit quota using bsize for scaling
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
Contents:
65e868552 Frank S. Filz V5.6
bd07142ad Michael Diederich getquota to support 64bit quota using bsize for
scaling
d59e65c0a Kaleb S. KEITHLEY main: periodically poke malloc()/free() to
release memory
fae6499dc Arnab Tah CRASH:Memory access violation in posix_acl_2_fsal_acl
d5f4e5e96 Assaf Yaari nfs_proto_tools: Change the dynamicinfo field to be
concrete
bcd1ee81d Trupti Shete Incorrect values for ganesha_stats json option
aa91f96a6 Trupti Shete Failed to get output of option ganesha_stats json
f975b38e6 David Rieber UBSAN reports misaligned access to sockaddr_t.
6c8d8269d David Rieber Fix bit shifting issue reported by UBSAN.
3e1346c49 David Rieber mdcache_lru_pkginit now properly initializes
Cache_FDs from mdcache_param.
dcf0387ee Yevhenii Huzii GLUSTER: in glusterfs_copy_my_fd insert_fd_lru
belongs in the is_dup path
110c7094d Frank S. Filz CEPH: Add capability to share ceph client between
exports
c96246cb3 Frank S. Filz MDCACHE: try_release should set up op_context
bb43dbb2a Frank S. Filz PSEUDOFS: Add some debug
7134bb27a Frank S. Filz Add documentation for quoted strings in config.
4cbf7d603 Frank S. Filz CEPH: Disable ceph nonblocking-io for now - it
doesn't work well
2f39cf184 Frank S. Filz CMAKE: Fix use of USE_CB_SIMULATOR and USE_DBUS
1 year, 2 months
[S] Change in ...nfs-ganesha[next]: ACL: In nfsv4, avoid converting mask into fsal_acl entry
by Arnab Tah (GerritHub)
Arnab Tah has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1170970?usp=email )
Change subject: ACL: In nfsv4, avoid converting mask into fsal_acl entry
......................................................................
ACL: In nfsv4, avoid converting mask into fsal_acl entry
For nfsv4, we drop the mask ACE from the NFS ACL. The code section
for skipping ACL_MASK was removed by the commit
11d0261ff9d15079a9d3f7d8c9ff39342d4dd01b
Added it back, as we need it for v4. Also, added extra argument to
posix_acl_2_fsal_acl() to distinguish v3 callers from others.
With current code we end up with a bogus output in nfsv4 ACL, that
represent a POSIX mask ACE.
$ nfs4_getfacl file1
D::OWNER@:r
A::OWNER@:waxtTcCy
D::GROUP@:x
A::GROUP@:tcy
A::GROUP@:xtcy
A::EVERYONE@:xtcy
$
With fix.
$ nfs4_getfacl file1
D::OWNER@:r
A::OWNER@:waxtTcCy
D::GROUP@:x
A::GROUP@:tcy
A::EVERYONE@:xtcy
$
For nfsv3 ACL, the mask ACE will still be generated.
Change-Id: I6c055aa7f71d88ff795af6d1eda849030fd274c0
Signed-off-by: Arnab Tah <atah(a)ddn.com>
---
M src/FSAL/FSAL_CEPH/internal.c
M src/FSAL/FSAL_GLUSTER/gluster_internal.c
M src/FSAL/FSAL_VFS/vfs/attrs.c
M src/FSAL/posix_acls.c
M src/Protocols/NFS/nfs_proto_tools.c
M src/include/posix_acls.h
6 files changed, 18 insertions(+), 10 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/70/1170970/1
--
To view, visit https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/1170970?usp=email
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: I6c055aa7f71d88ff795af6d1eda849030fd274c0
Gerrit-Change-Number: 1170970
Gerrit-PatchSet: 1
Gerrit-Owner: Arnab Tah <atah(a)ddn.com>
Gerrit-MessageType: newchange
1 year, 2 months