[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