fuse: honor iocb sync flags on write
authorMiklos Szeredi <mszeredi@redhat.com>
Tue, 12 Sep 2017 14:57:53 +0000 (16:57 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Tue, 12 Sep 2017 14:57:53 +0000 (16:57 +0200)
commite1c0eecba1a4154c35c400f1cc9a035e6246bbcd
treec13747b8adb3435b46c1c65647d5f7ab173cc0a7
parent5d6d3a301c4e749e04be6fcdcf4cb1ffa8bae524
fuse: honor iocb sync flags on write

If the IOCB_DSYNC flag is set a sync is not being performed by
fuse_file_write_iter.

Honor IOCB_DSYNC/IOCB_SYNC by setting O_DYSNC/O_SYNC respectively in the
flags filed of the write request.

We don't need to sync data or metadata, since fuse_perform_write() does
write-through and the filesystem is responsible for updating file times.

Original patch by Vitaly Zolotusky.

Reported-by: Nate Clark <nate@neworld.us>
Cc: Vitaly Zolotusky <vitaly@unitc.com>.
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/cuse.c
fs/fuse/file.c
fs/fuse/fuse_i.h