At now for synchronous-fs, all write-operations use ceph_sync_mode. But for the file which opened with O_SYNC, it don't use sync_mode. The behaviour of them should be the same. For fs which mounted using '-o sync', it want all I/O to the filesystem should be done synchronously.But the ceph-sync-mode don't be suitful for.For example,using ceph-sync-mode the content of file don't have in memory.This will cause the following read only from osd rather than memory. Signed-off-by: Jianpeng Ma <majianpeng@xxxxxxxxx> --- fs/ceph/file.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/ceph/file.c b/fs/ceph/file.c index 656e169..44670ad 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c @@ -659,7 +659,6 @@ again: if ((got & (CEPH_CAP_FILE_CACHE|CEPH_CAP_FILE_LAZYIO)) == 0 || (iocb->ki_filp->f_flags & O_DIRECT) || - (inode->i_sb->s_flags & MS_SYNCHRONOUS) || (fi->flags & CEPH_F_SYNC)) /* hmm, this isn't really async... */ ret = ceph_sync_read(filp, base, len, ppos, &checkeof); @@ -764,7 +763,6 @@ retry_snap: if ((got & (CEPH_CAP_FILE_BUFFER|CEPH_CAP_FILE_LAZYIO)) == 0 || (iocb->ki_filp->f_flags & O_DIRECT) || - (inode->i_sb->s_flags & MS_SYNCHRONOUS) || (fi->flags & CEPH_F_SYNC)) { mutex_unlock(&inode->i_mutex); written = ceph_sync_write(file, iov->iov_base, count, -- 1.8.1.2 ?韬{.n?????%??檩??w?{.n????u朕?Ф?塄}?财??j:+v??????2??璀??摺?囤??z夸z罐?+?????w棹f