Change in ffilz/nfs-ganesha[next]: exports: don't allow dbus remove to leave subexports disconnected in ...
by Jeff Layton (GerritHub)
Jeff Layton has uploaded this change for review. ( https://review.gerrithub.io/437376
Change subject: exports: don't allow dbus remove to leave subexports disconnected in pseudoroot
......................................................................
exports: don't allow dbus remove to leave subexports disconnected in pseudoroot
If someone requests an export be removed via dbus, refuse the request if
there are submounts.
Change-Id: Ia791087a38607bb945fd729a364b8989a0c23e35
Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
---
M src/support/export_mgr.c
1 file changed, 13 insertions(+), 4 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/76/437376/1
--
To view, visit https://review.gerrithub.io/437376
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia791087a38607bb945fd729a364b8989a0c23e35
Gerrit-Change-Number: 437376
Gerrit-PatchSet: 1
Gerrit-Owner: Jeff Layton <jlayton(a)redhat.com>
6 years
Change in ffilz/nfs-ganesha[next]: exports: prune off old exports after reloading config
by Jeff Layton (GerritHub)
Jeff Layton has uploaded this change for review. ( https://review.gerrithub.io/437359
Change subject: exports: prune off old exports after reloading config
......................................................................
exports: prune off old exports after reloading config
After rereading the exports in a new config, walk the list of them and
prune off any that have a config generation older than the one
representing the current config.
If pruning an export would leave another disconnected however, leave it
in place and LogCrit a message indicating that it couldn't be unmounted.
Change-Id: If5b5a11c7b45150ec34d7bc7b500c341f9126f79
Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
---
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
5 files changed, 81 insertions(+), 12 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/59/437359/1
--
To view, visit https://review.gerrithub.io/437359
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: If5b5a11c7b45150ec34d7bc7b500c341f9126f79
Gerrit-Change-Number: 437359
Gerrit-PatchSet: 1
Gerrit-Owner: Jeff Layton <jlayton(a)redhat.com>
6 years
Change in ffilz/nfs-ganesha[next]: exports: copy the config tree generation to the export when adding or...
by Jeff Layton (GerritHub)
Jeff Layton has uploaded this change for review. ( https://review.gerrithub.io/437358
Change subject: exports: copy the config tree generation to the export when adding or updating
......................................................................
exports: copy the config tree generation to the export when adding or updating
When we update or add an export, tag it with the serial number of the
config. That allows us to later look at the export and see whether it
was present in a given configuration.
Change-Id: I83f31aa78d182fcb7ddefa082df66349331f89b9
Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
---
M src/include/export_mgr.h
M src/support/exports.c
2 files changed, 8 insertions(+), 0 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/58/437358/1
--
To view, visit https://review.gerrithub.io/437358
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: I83f31aa78d182fcb7ddefa082df66349331f89b9
Gerrit-Change-Number: 437358
Gerrit-PatchSet: 1
Gerrit-Owner: Jeff Layton <jlayton(a)redhat.com>
6 years
Change in ffilz/nfs-ganesha[next]: exports: add generation counter to config_root and helpers to fetch it
by Jeff Layton (GerritHub)
Jeff Layton has uploaded this change for review. ( https://review.gerrithub.io/437357
Change subject: exports: add generation counter to config_root and helpers to fetch it
......................................................................
exports: add generation counter to config_root and helpers to fetch it
Currently, we have no way to track whether the latest config file loaded
still contains a previously-defined export.
To fix this, add a new global counter that tracks a serial number
representing a given configuration. When we get a reconfiguration event,
atomically increment the counter and stuff the resulting value into the
config_root.
Also, add helpers for fetching that value from the config.
Change-Id: Ic1de57a609f858812c2439bce0b6e188accd8cc4
Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
---
M src/config_parsing/analyse.h
M src/config_parsing/conf_lex.l
M src/config_parsing/config_parsing.c
M src/include/config_parsing.h
4 files changed, 30 insertions(+), 0 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/57/437357/1
--
To view, visit https://review.gerrithub.io/437357
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic1de57a609f858812c2439bce0b6e188accd8cc4
Gerrit-Change-Number: 437357
Gerrit-PatchSet: 1
Gerrit-Owner: Jeff Layton <jlayton(a)redhat.com>
6 years
Change in ffilz/nfs-ganesha[next]: exports: fix variable type in foreach_gsh_export
by Jeff Layton (GerritHub)
Jeff Layton has uploaded this change for review. ( https://review.gerrithub.io/437356
Change subject: exports: fix variable type in foreach_gsh_export
......................................................................
exports: fix variable type in foreach_gsh_export
Change-Id: I9e376dcf25dbfbde68ddd21e95f06c92a50bca58
Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
---
M src/support/export_mgr.c
1 file changed, 1 insertion(+), 1 deletion(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/56/437356/1
--
To view, visit https://review.gerrithub.io/437356
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: I9e376dcf25dbfbde68ddd21e95f06c92a50bca58
Gerrit-Change-Number: 437356
Gerrit-PatchSet: 1
Gerrit-Owner: Jeff Layton <jlayton(a)redhat.com>
6 years
Change in ffilz/nfs-ganesha[next]: CEPH: do a getattr after creating a dir and applying extra attributes
by Jeff Layton (GerritHub)
Jeff Layton has uploaded this change for review. ( https://review.gerrithub.io/437354
Change subject: CEPH: do a getattr after creating a dir and applying extra attributes
......................................................................
CEPH: do a getattr after creating a dir and applying extra attributes
Currently, we don't populate the attrs_out struct if we create a
directory and then need to do a follow-on setattr2 to apply extra attrs
to it.
Unfortunately, setattr2 (and the lower-level ceph setattrx call) doesn't
return attributes, so just issue a getattrs just after a successful
setattr2.
Reported-and-Tested-by: github user uyghfjhh
Change-Id: Ifb5786204337bed5cfb620eb16145ebf271fcc36
Signed-off-by: Jeff Layton <jlayton(a)redhat.com>
---
M src/FSAL/FSAL_CEPH/handle.c
1 file changed, 8 insertions(+), 0 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/54/437354/1
--
To view, visit https://review.gerrithub.io/437354
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifb5786204337bed5cfb620eb16145ebf271fcc36
Gerrit-Change-Number: 437354
Gerrit-PatchSet: 1
Gerrit-Owner: Jeff Layton <jlayton(a)redhat.com>
6 years
Change in ffilz/nfs-ganesha[next]: SAL: fix multiple state reference leaks
by Fatih Acar (GerritHub)
Fatih Acar has uploaded this change for review. ( https://review.gerrithub.io/437324
Change subject: SAL: fix multiple state reference leaks
......................................................................
SAL: fix multiple state reference leaks
Note that for TEST_STATEID, checking for NFS4_OK is not enough
as it may return NFS4ERR_REPLAY along with a referenced state.
Checking for a NULL state does the job.
Change-Id: Ic7d0dbc7f5db2f899b6f0a5d31b57b7fb6517938
Signed-off-by: Fatih Acar <fatih.acar(a)gandi.net>
---
M src/Protocols/NFS/nfs4_op_free_stateid.c
M src/Protocols/NFS/nfs4_op_layoutget.c
M src/Protocols/NFS/nfs4_op_test_stateid.c
3 files changed, 3 insertions(+), 2 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/24/437324/1
--
To view, visit https://review.gerrithub.io/437324
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic7d0dbc7f5db2f899b6f0a5d31b57b7fb6517938
Gerrit-Change-Number: 437324
Gerrit-PatchSet: 1
Gerrit-Owner: Fatih Acar <fatih(a)gandi.net>
6 years
Async work making progress
by Frank Filz
So after a bit of testing and debug, and realizing I sort of skipped some
work, I have posted a new set of patches.
The HEAD patch in the series is:
https://review.gerrithub.io/#/c/ffilz/nfs-ganesha/+/437191/
I have done some testing and there is work yet to be done.
FSAL_VFS passes pynfs (no real async)
FSAL_MEM without any async enabled reasonably passes pynfs (I know it can't
pass 100%)
FSAL_MEM with async such that the async actually completes before the
read2/write2 call returns passes
FSAL_MEM with actual async fails pynfs with:
File "/home/ffilz/ganesha/bf-pynfs/nfs4.0/lib/rpc/rpc.py", line 452, in
check_reply
raise RPCAcceptError(msg.areply)
rpc.rpc.RPCAcceptError: RPCError: MSG_ACCEPTED: GARBAGE_ARGS
RC = 1
This suggests to me that my assumptions and read of the RPC layer code is
wrong.
I'm open to any suggestions.
FSAL_MEM is configurable for async with the following:
MEM
{
Async_Threads = 10;
}
And here is my EXPORT that fails:
EXPORT
{
Export_Id = 701;
Path = /mem1;
Pseudo = /export/mem1;
FSAL
{
Name = MEM;
Async_Type = FIXED;
Async_Delay = 1000;
Async_Stall_Delay = 0;
}
Access_Type=RW;
Squash = Root;
SecType = sys;
Tag = mem1;
MaxRead = 9000000;
MaxWrite = 9000000;
Protocols=3,4,9p;
Anonymous_uid = -3;
Anonymous_gid = -3;
CLIENT
{
Access_Type=RW;
Squash=None;
Clients=simple1*,127.0.0.1,local*,192.168.0.119,192.168.0.111;
SecType = sys;
Anonymous_gid = -5;
}
}
If Async_Delay is set to 10 and Async_Stall_Delay is set to 1000, it passes
(this forces read2/write2 to delay 1000 usec before returning, while the
async thread is only going to delay 10 usec before processing).
Hmm, for testing I just realized I need to make a 2nd stall. I need to stall
in the protocol read/write functions, so after they have tested to see if
the call back has completed before they return (thus causing a real async
schedule), they then delay so they don't actually return out all the way
until the async process has a chance to run all the way to completion. I
will be adding a debug config option to control that.
In the meantime, if anyone with RPC understanding can look over the code and
help me understand what might have gone wrong, I would appreciate it.
Thanks
Frank
6 years
Change in ffilz/nfs-ganesha[next]: FSAL_MEM: Add test option to make actual async I/O completion
by Frank Filz (GerritHub)
Frank Filz has uploaded this change for review. ( https://review.gerrithub.io/437191
Change subject: FSAL_MEM: Add test option to make actual async I/O completion
......................................................................
FSAL_MEM: Add test option to make actual async I/O completion
A new FSAL parameter is added to set up a number of async threads.
Async_Threads(uint32, range 0 to 100, default to 0)
New EXPORT { FSAL { } } options are added to control how the async
happens:
Async_Delay(uint32, range 0 to 1000, defaults to 0)
Async_Type(enum, values [inline, fixed, random,
random_or_inline], defaults to inline)
Async_Stall_Delay(uint32, range 0 to 1000, defaults to 0)
Async_Type allows specifying between inline completion (as a default
and what the code used to do), a fixed delay, or random delay, with an
option to randomly complete inline or a random delay.
Async_Delay sets the maximum (or fixed) delay.
Async_Stall_Delay allows making the read2 or write2 call itself delay.
This allows simulating various kinds of races where the async completion
occurs before the read2 or write2 call returns.
Change-Id: Ie0b39f09f0dde28f37872bc99e335f7f409eff27
Signed-off-by: Frank S. Filz <ffilzlnx(a)mindspring.com>
---
M src/FSAL/FSAL_MEM/mem_export.c
M src/FSAL/FSAL_MEM/mem_handle.c
M src/FSAL/FSAL_MEM/mem_int.h
M src/FSAL/FSAL_MEM/mem_main.c
M src/config_samples/config.txt
5 files changed, 359 insertions(+), 11 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/91/437191/1
--
To view, visit https://review.gerrithub.io/437191
To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie0b39f09f0dde28f37872bc99e335f7f409eff27
Gerrit-Change-Number: 437191
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx(a)mindspring.com>
6 years