From: Ben C. <bc...@x3...> - 2013-11-07 21:03:58
|
Hello, I am running into read problems when my FUSE filesystem is accessed via SAMBA. I am using FUSE version 2.8.6 with a Linux 3.2.0 kernel. My fuse mount point is created with the following options: -f -ononempty -oallow_other -s More often than not, the data returned to the client making the read request is incorrect. For sanity checking, in my fuse read() method I dump the data written into the user buffer out to a file and it is always correct. However, most of the time the data returned on the client side is incorrect (missing chunks of data and zeros at the end of the file). When the reads do work correctly I see a series of 128K reads followed by a read of 100k, and then a read of 4K (in which we return 0 to indicate EOF). (My test file size is 345477120, so in the correct case I see 5270 64K reads and 1 read of 100K, then a request for 4k in which I return 0 for EOF.) When the reads result in incorrect data I see many 128K reads, with some 4K, and 28K reads. In this case, after returning EOF, I still see a number of read requests despite having already returned EOF. I have also tried using the -odirect_io option when creating my mountpoint. In this case I still get bad data on he client side. The difference is that the average read request is 64K. Also, I still see multiple read requests after having returned EOF even with the -odirect_io option. Note that I've had no problems Are there any issues related to accessing the FUSE filesystem over SAMBA? Thank you! |