From: Miklos Szeredi This fixes O_APPEND in direct IO mode. Also checks writes against file size limits, notably rlimits. Reported by Greg Bruno. Signed-off-by: Miklos Szeredi Signed-off-by: Andrew Morton --- fs/fuse/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -puN fs/fuse/file.c~fuse-generic_write_checks-for-direct_io fs/fuse/file.c --- a/fs/fuse/file.c~fuse-generic_write_checks-for-direct_io +++ a/fs/fuse/file.c @@ -610,7 +610,9 @@ static ssize_t fuse_direct_write(struct 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; } _