On Wed, Mar 06, 2019 at 03:31:08PM -0500, Jeff Layton wrote:
On Wed, 2019-03-06 at 10:11 -0500, J. Bruce Fields wrote:
On Tue, Mar 05, 2019 at 04:47:48PM -0500, J. Bruce Fields wrote:
On Thu, Feb 14, 2019 at 04:06:52PM -0500, J. Bruce Fields wrote:
After this:
https://marc.info/?l=linux-nfs&m=154966239918297&w=2
delegations would no longer conflict with opens from the same tgid. So if your threads all run in the same process and you're willing to manage conflicts among your own clients, that should still allow you to do multiple opens of the same file without giving up your lease/delegation.
I'd be curious to know whether that works with Samba's design.
Any idea whether that would work?
(Easy? Impossible? Possible, but realistically the changes required to Samba would be painful enough that it'd be unlikely to get done?)
Volker reminds me off-list that he'd like to see Ganesha and Samba work out an API in userspace first before commiting to a user<->kernel API.
Jeff, wasn't there some work (on Ceph maybe?) on a userspace delegation API? Is that close to what's needed?
Here's the C headers for that stuff:
https://github.com/ceph/ceph/blob/7ba6bece4187eda5d05a9b84211fe6ba8dd287bd/s...
It's simple enough and works for us in ganesha, and I think we can probably adapt it to samba without too much difficulty. The callback doesn't seem like it'll do for a kernel API though -- you'd almost certainly need to do something different there (signals? inotify?).
SMB3 leases have R/RW and Handle-based leases. Handle leases allow multiple opens of the same pathname that get different handles to share the lease, allowing a client redirector to delay opens or closes locally so long as it has a handle lease. Here are the semantics: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/d8df943... I'm not sure a simple file-descriptor based API is enough for us. Can he have a uuid or token based API instead where the server can chose what fd's to cover with a token ?