Current SMB2 leases patchset (WIP).
Stefan (metze) Metzmacher
metze at samba.org
Tue Oct 28 15:58:22 MDT 2014
btw, thanks very much for working on this!
> Can you split out some of the changes of the first commit, e.g.
> - the ndr_pull_struct_blob_all() change
> - the changes in source3/locking/brlock.c have_read... => num_read...
> Why is lease_idx uint16_t? Do we want a limit of not more than UINT16_MAX
> opens per file?
>> + send_break_message(conn->sconn->msg_ctx, e,
>> + SMB2_LEASE_NONE);
>> + /*
>> + * Windows 7 and 8 lease clients
>> + * are broken in that they will not
>> + * respond to lease break requests
>> + * whilst waiting for an outstanding
>> + * open request on that lease handle
>> + * on the same TCP connection, due
>> + * to holding an internal inode lock.
>> + *
>> + * This means we can't reschedule
>> + * ourselves here, but must return
>> + * from the create.
>> + *
>> + * Work around:
>> + *
>> + * Send the breaks and then return
>> + * SMB2_LEASE_NONE in the lease handle
>> + * to cause them to acknowledge the
>> + * lease break. Consulatation with
>> + * Microsoft engineering confirmed
>> + * this approach is safe.
>> + */
>> + }
> Calling send_break_message() seems wrong, why should we send
> a lease break to our own client, when the client tries to reuse
> the lease on the current open?
> Does a Windows 10 client behave differntly compared to Windows 7 and 8
> (8.1) ?
> We should just set SMB2_LEASE_NONE (and epoch++) in the lease we return.
> This seems to be the correct way to downgrade the lease in this case
> in an create response.
> More comments later...
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 181 bytes
Desc: OpenPGP digital signature
More information about the samba-technical