[Samba] gvfs and (lib)smbclient

Ross Lagerwall rosslagerwall at gmail.com
Sat May 10 01:20:36 MDT 2014


On Wed, Apr 16, 2014 at 11:46:12AM -0700, Jeremy Allison wrote:
> On Sun, Apr 13, 2014 at 11:43:06AM +0100, rosslagerwall at gmail.com wrote:
> > Hi all,
> > 
> > I'm one of the GNOME gvfs maintainers, and would like to improve the support of
> > smb in gvfs, especially in the context of taking advantage of the improvements
> > of SMB2 and SMB3.  Currently we use libsmbclient which provides a fairly easy to
> > use API.  It is not, however, quite sufficient for the way that we would like to
> > use it (at least I think so):
> > 
> > - Slow transfer speeds.  Based on a comment from Jeremy [1], we use a maximum
> > block size of 65534 which seems to prevent us from maximizing throughput, even
> > on a 100MBps LAN.  I note that smbclient can achieve a higher throughput with
> > the same block size [2].
> > This may be related to the ability to support multiple packets in flight
> > to reduce the effect of latency (which is probably why smbclient can achieve
> > higher speeds for the same block size). The gvfs push and pull functions could
> > map to the cli_push and cli_pull functions.
> > 
> > - The mapping between NT error message and UNIX errno makes it difficult to
> > provide a nice error message to the user or even to know what's going on.  For
> > example, calling rename() with one of the path's having an invalid character
> > gives ENOMEM.  It is difficult to tell whether this is an out of memory error,
> > a malformed source URI or a malformed target URI.  It would be nice to get
> > access to the real error message.
> > Related bugs: https://bugzilla.gnome.org/show_bug.cgi?id=702568
> >               https://bugzilla.gnome.org/show_bug.cgi?id=350976
> > 
> > - No way of easily mapping to and from POSIX permissions resulting in files'
> > permissions often being inadvertently changed when saving files.
> > Related bugs: https://bugzilla.gnome.org/show_bug.cgi?id=592651
> >               https://bugzilla.gnome.org/show_bug.cgi?id=581368
> > 
> > - No support for POSIX extensions.
> > Related bugs: https://bugzilla.gnome.org/show_bug.cgi?id=562029
> >               https://bugzilla.samba.org/show_bug.cgi?id=5926
> > 
> > - No support for file monitoring, e.g. NT_TRANSACT_NOTIFY_CHANGE.
> > Related bugs: https://bugzilla.gnome.org/show_bug.cgi?id=627107
> >               https://bugzilla.samba.org/show_bug.cgi?id=7393
> > 
> > - Some extras that would be nice to have:
> > Server side copy.  (I understand this hasn't been implemented in Samba
> > client-side?).
> > Setting mtime and atime individually.
> > Finer-grained (e.g. microsecond/nanosecond) timestamps.
> > 
> > Grepping through the Samba source code suggests that almost all of the above is
> > tantalizingly available somewhere in Samba's various client bits.  So my
> > question is whether it is possible to access this functionality (through
> > libsmbclient or otherwise), and if so, how?  I note that my system has a
> > smbclient-raw pkgconfig file, yet can find almost nothing online about
> > how to use this library.
> 
> I'm kind of busy right now, but I wanted to give
> you feedback that this is very important to us,
> and please keep pinging the list (and me specifically)
> if you don't hear anything back in a timely fashion :-).
> 

Ping!  After getting another gvfs bug about poor smb error messages, I
was prompted to resend this message...

Thanks for any feedback,
-- 
Ross Lagerwall


More information about the samba mailing list