[Samba] Samba and BTRFS server-side copy

Achim Gottinger achim at ag-web.biz
Wed Nov 2 13:44:05 UTC 2016



Am 02.11.2016 um 03:05 schrieb Saint Germain via samba:
> On Fri, 28 Oct 2016 19:10:12 +0200, Achim Gottinger via samba
> <samba at lists.samba.org> wrote :
>
>>
>> Am 28.10.2016 um 08:18 schrieb Saint Germain via samba:
>>> On Thu, 27 Oct 2016 17:30:09 -0700, Jeremy Allison <jra at samba.org>
>>> wrote :
>>>
>>>> On Thu, Oct 27, 2016 at 05:22:14PM -0700, Jeremy Allison via samba
>>>> wrote:
>>>>> Looking around inside that source code I also see:
>>>>>
>>>>> do_read (GVfsBackend *backend,
>>>>>            GVfsJobRead *job,
>>>>>            GVfsBackendHandle handle,
>>>>>            char *buffer,
>>>>>            gsize bytes_requested)
>>>>> {
>>>>>     GVfsBackendSmb *op_backend = G_VFS_BACKEND_SMB (backend);
>>>>>     ssize_t res;
>>>>>     smbc_read_fn smbc_read;
>>>>>
>>>>>     /* libsmbclient limits blocksize to (64*1024)-2 for Windows
>>>>> servers,
>>>>>      * let's do the same here to achieve reasonable performance.
>>>>> (#588391) *
>>>>>      * TODO: port to pull mechanism (#592468)
>>>>>      */
>>>>>     if (bytes_requested > 65534)
>>>>>       bytes_requested = 65534;
>>>>>
>>>>>     smbc_read = smbc_getFunctionRead (op_backend->smb_context);
>>>>>     res = smbc_read (op_backend->smb_context, (SMBCFILE *)handle,
>>>>> buffer, bytes_requested);
>>>>>
>>>>> which is also completely broken and wrong. The read call
>>>>> can take any arbitrary size and the both the libsmbclient
>>>>> SMB1 and SMB2 engines will break this down into as many
>>>>> simultaneous on the wire calls as needed to pipeline
>>>>> the reads / writes.
>>>>>
>>>>> Restricting this to 65534 is *insane* and slow. That
>>>>> whole chunk of code restricting the size needs to be
>>>>> removed.
>>>> Oh it's my fault from 2009:
>>>>
>>>> https://bugzilla.gnome.org/show_bug.cgi?id=588391#c10
>>>>
>>>> :-).
>>>>
>>>> I'll log another bug to get the whole thing removed
>>>> now we pipeline correctly.
>>> I just tried and when I limit samba to SMB2 connections (in
>>> smb.conf), Nautilus/gvfs cannot connect (it doesn't even see the
>>> share).
>>>
>>> I also tried starting a discussion on the topic yesterday:
>>> https://mail.gnome.org/archives/gvfs-list/2016-October/msg00000.html
>>>
>>> It seems that Ross Lagerwall started working on the topic a while
>>> ago, but I don't know when/how the code will be included.
>>>
>>> Thanks for your help !
>>>
>> gvfs connects with smb2 here with these settings on the client's
>> smb.conf
>>
>> client max protocol = SMB2_10
>> client min protocol = SMB2_10
>>
> With these lines, my gvfs connect but with protocol SMB1 (confirmed
> with smbstatus -b).
>
> Which version of samba on the server are you using ?
> Which version of libsmbclient and gvfs on the client are you using ?
server: debian wheezy, serner-samba 4.2.14-11
client: debian jessie (backports), samba 4.2.10, gvfs 1.22.2-1

smbstatus -b shows i'm connected with SMB2_10

On the server I have no protocol settings only on the client only above 
two lines are needed on an otherwise default smb.conf. It's working 
since debian updated to samba 4.2, that time i did not use 
jessie-backports packages on the client back then.

> Thanks
>




More information about the samba mailing list