[Samba] gvfs and (lib)smbclient

Jeremy Allison jra at samba.org
Wed Apr 16 12:46:12 MDT 2014


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 :-).

Cheers,

	Jeremy.


More information about the samba mailing list