Re: [PATCH 18/16] implement posix O_SYNC and O_DSYNC semantics

Trond Myklebust
2009-09-10T20:38:44Z

On Thu, 2009-09-10 at 22:25 +0200, Christoph Hellwig wrote:
> Index: linux-2.6/fs/sync.c
> ===================================================================
> --- linux-2.6.orig/fs/sync.c 2009-09-10 16:30:32.414027738 -0300
> +++ linux-2.6/fs/sync.c 2009-09-10 16:31:19.042005715 -0300
> @@ -285,10 +285,11 @@ SYSCALL_DEFINE1(fdatasync, unsigned int,
> */
> int generic_write_sync(struct file *file, loff_t pos, loff_t count)
> {
> - if (!(file->f_flags & O_SYNC) && !IS_SYNC(file->f_mapping->host))
> + if (!(file->f_flags & O_DSYNC) && !IS_SYNC(file->f_mapping->host))
> return 0;
> return vfs_fsync_range(file, file->f_path.dentry, pos,
> - pos + count - 1, 1);
> + pos + count - 1,
> + (file->f_flags & O_SYNC) ? 1 : 0);
> }
> EXPORT_SYMBOL(generic_write_sync);
>
Shouldn't this be testing for

file->f_flags & __O_SYNC

?