Tried completely fresh install of fedora-11 and still the same problem, but finally some new information. This bug affects x86_64 ltsp clients only! i386 clients work fine. Mounting the memory stick works, but trying to read or write to it fails with: ellson@bock:usbdisk-sda1> cat foo cat: foo: Cannot allocate memory I suspect this code in ltspfsd (also the similar malloc in ltspfs_write() ) void ltspfs_read(int sockfd, XDR * in) { XDR out; char path[PATH_MAX]; char output[LTSP_MAXBUF]; int i; int fd; int result; size_t size; off_t offset; char *buf; if (!xdr_u_int(in, &size)) { /* Get the size */ eacces(sockfd); return; } if (!xdr_longlong_t(in, &offset)) { /* Get the offset */ eacces(sockfd); return; } if (get_fn(sockfd, in, path)) { /* Get the path */ eacces(sockfd); return; } buf = malloc(size); /* * Check result of malloc */ if (!buf) { status_return(sockfd, FAIL); return; } Partularly since this code is generating these build warnings! ake[2]: Entering directory `/home/ellson/rpmbuild/BUILD/ltspfs-0.5.8/src' /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=22 -D_REENTRANT -g -O2 -MT ltspfs-ltspfs.o -MD -MP -MF .deps/ltspfs-ltspfs.Tpo -c -o ltspfs-ltspfs.o `test -f 'ltspfs.c' || echo './'`ltspfs.c ltspfs.c: In function ‘ltspfs_getattr’: ltspfs.c:312: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘__nlink_t *’ ltspfs.c: In function ‘ltspfs_read’: ltspfs.c:766: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘size_t *’ ltspfs.c: In function ‘ltspfs_write’: ltspfs.c:823: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘size_t *’ ltspfs.c: In function ‘ltspfs_statfs’: ltspfs.c:882: warning: passing argument 2 of ‘xdr_int’ from incompatible pointer type /usr/include/rpc/xdr.h:288: note: expected ‘int *’ but argument is of type ‘long int *’ ltspfs.c:883: warning: passing argument 2 of ‘xdr_int’ from incompatible pointer type /usr/include/rpc/xdr.h:288: note: expected ‘int *’ but argument is of type ‘long int *’ ltspfs.c:889: warning: passing argument 2 of ‘xdr_int’ from incompatible pointer type /usr/include/rpc/xdr.h:288: note: expected ‘int *’ but argument is of type ‘long int *’ mv -f .deps/ltspfs-ltspfs.Tpo .deps/ltspfs-ltspfs.Po /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=22 -D_REENTRANT -g -O2 -MT ltspfs-common.o -MD -MP -MF .deps/ltspfs-common.Tpo -c -o ltspfs-common.o `test -f 'common.c' || echo './'`common.c mv -f .deps/ltspfs-common.Tpo .deps/ltspfs-common.Po /usr/bin/gcc -Wall -W -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=22 -D_REENTRANT -g -O2 -o ltspfs ltspfs-ltspfs.o ltspfs-common.o -pthread -L/lib64 -lfuse -lrt -ldl -lX11 /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -D_FILE_OFFSET_BITS=64 -DAUTOMOUNT -D_REENTRANT -g -O2 -MT ltspfsd-ltspfsd.o -MD -MP -MF .deps/ltspfsd-ltspfsd.Tpo -c -o ltspfsd-ltspfsd.o `test -f 'ltspfsd.c' || echo './'`ltspfsd.c mv -f .deps/ltspfsd-ltspfsd.Tpo .deps/ltspfsd-ltspfsd.Po /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -D_FILE_OFFSET_BITS=64 -DAUTOMOUNT -D_REENTRANT -g -O2 -MT ltspfsd-ltspfsd_functions.o -MD -MP -MF .deps/ltspfsd-ltspfsd_functions.Tpo -c -o ltspfsd-ltspfsd_functions.o `test -f 'ltspfsd_functions.c' || echo './'`ltspfsd_functions.c ltspfsd_functions.c: In function ‘ltspfs_getattr’: ltspfsd_functions.c:238: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘__nlink_t *’ ltspfsd_functions.c: In function ‘ltspfs_read’: ltspfsd_functions.c:700: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘size_t *’ ltspfsd_functions.c: In function ‘ltspfs_write’: ltspfsd_functions.c:776: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘size_t *’ ltspfsd_functions.c: In function ‘ltspfs_statfs’: ltspfsd_functions.c:864: warning: passing argument 2 of ‘xdr_int’ from incompatible pointer type /usr/include/rpc/xdr.h:288: note: expected ‘int *’ but argument is of type ‘long int *’ ltspfsd_functions.c:865: warning: passing argument 2 of ‘xdr_int’ from incompatible pointer type /usr/include/rpc/xdr.h:288: note: expected ‘int *’ but argument is of type ‘long int *’ ltspfsd_functions.c:871: warning: passing argument 2 of ‘xdr_int’ from incompatible pointer type /usr/include/rpc/xdr.h:288: note: expected ‘int *’ but argument is of type ‘long int *’ ltspfsd_functions.c: In function ‘handle_auth’: ltspfsd_functions.c:950: warning: passing argument 2 of ‘xdr_u_int’ from incompatible pointer type /usr/include/rpc/xdr.h:289: note: expected ‘u_int *’ but argument is of type ‘size_t *’ mv -f .deps/ltspfsd-ltspfsd_functions.Tpo .deps/ltspfsd-ltspfsd_functions.Po I'd report this "upstream" but don't know where that is. The ltsp.spec lists https://code.launchpad.net/ltspfs, but try to report a bug there and you get: LtspFS (Unspecified) does not use Launchpad as its bug tracker. The Launchpad pages list Scott Balneaves as the maintainer, so I'll try adding him to needinfo.