diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2007-03-14 09:13:27 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2007-03-14 09:13:27 +0000 |
commit | 2f759e1950e3908eb48fc000e88e0159649d8632 (patch) | |
tree | 32caeb503d8eca18617a1d3c092cb08ffb48ecac /kernel/file.c | |
parent | 3a7c00ec0c156123c47b53ec1cd7ead001fa4dfb (diff) | |
download | libfuse-2f759e1950e3908eb48fc000e88e0159649d8632.tar.gz |
Correctly handle O_APPEND in direct IO mode
Diffstat (limited to 'kernel/file.c')
-rw-r--r-- | kernel/file.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/file.c b/kernel/file.c index d0f46ad..bdec3a5 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -627,7 +627,9 @@ static ssize_t fuse_direct_write(struct file *file, const char __user *buf, ssize_t res; /* Don't allow parallel writes to the same file */ mutex_lock(&inode->i_mutex); - res = fuse_direct_io(file, buf, count, ppos, 1); + res = generic_write_checks(file, ppos, &count, 0); + if (!res) + res = fuse_direct_io(file, buf, count, ppos, 1); mutex_unlock(&inode->i_mutex); return res; } |