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
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 ? Thanks
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 >