Bug 216256

Summary: EIO is returned instead of EDQUOT
Product: Base System Reporter: Ben RUBSON <ben.rubson>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed Not A Bug    
Severity: Affects Some People    
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   

Description Ben RUBSON 2017-01-19 10:13:12 UTC
Hello,

EIO is returned instead of EDQUOT, especially using fusefs-encfs.
I'm not sure it is related to encfs, but perhaps more to fuse or to kernel.

Example :

# zfs create home/test
# zfs set userquota@root=1G home/test
# dd if=/dev/zero of=/home/test/toobig bs=128k
dd: /home/test/toobig: Disc quota exceeded
# rm /home/test/toobig 

# mkdir /home/test/one
# mkdir /home/test/two
# echo "p
password" | encfs -S /home/test/one/ /home/test/two/
# mount | grep fuse
/dev/fuse on /home/test/two (fusefs, local, synchronous)
# dd if=/dev/zero of=/home/test/two/toobig bs=128k
dd: /home/test/two/toobig: Input/output error

dd, writing to fuse, should have returned EDQUOT instead of EIO.

I've found something quite similar under RHEL :
https://bugzilla.redhat.com/show_bug.cgi?id=1292020
With commit here : http://review.gluster.org/13438

Thank you !

Best regards,

Ben
Comment 1 Ben RUBSON 2017-01-23 14:49:38 UTC
Well, this is an encfs error :
https://github.com/vgough/encfs/blob/v1.9.1/encfs/encfs.cpp#L625

Just opened an encfs bug report :
https://github.com/vgough/encfs/issues/272

Thank you !

Ben