Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes hangs on truncated writes #2

Merged
merged 2 commits into from Jan 8, 2015

Conversation

@fhgwright
Copy link

fhgwright commented Dec 31, 2014

This is broken into two commits, one for the direct_io case, and one for the non-direct_io case, as mentioned in osxfuse/osxfuse#187 .

fhgwright added 2 commits Dec 29, 2014
Writes should stop when the filesystem refuses to accept additional
data, rather than looping infinitely.  This is consistent with
reads and with the Linux fuse behavior.

In this particular case, the looping was actually within uiomove(),
due to the inconsistent update of the uio, though other iov
configurations might have misbehaved differently.
Writes should stop when the filesystem refuses to accept additional
data, rather than looping infinitely.

At present, the buffered write code doesn't understand the concept
of fixed-length files, and now reports an I/O error when the
filesystem doesn't accept all the data (instead of reporting the
short count).  The Linux fuse code appears (by inspection, not
experiment) to misbehave the same way.
@bfleischer bfleischer merged commit 9053b31 into osxfuse:osxfuse-2 Jan 8, 2015
@bfleischer

This comment has been minimized.

Copy link
Member

bfleischer commented Jan 8, 2015

Version 2.7.4 including the fix has been released. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.