From mboxrd@z Thu Jan 1 00:00:00 1970 From: majianpeng Subject: [PATCH] ceph: Don't use ceph-sync-mode for synchronous-fs. Date: Thu, 27 Jun 2013 15:56:06 +0800 Message-ID: <201306271556037311581@gmail.com> Reply-To: majianpeng Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Return-path: Sender: linux-kernel-owner@vger.kernel.org To: sage Cc: ceph-devel , linux-kernel List-Id: ceph-devel.vger.kernel.org QXQgbm93IGZvciBzeW5jaHJvbm91cy1mcywgYWxsIHdyaXRlLW9wZXJhdGlvbnMgdXNlIGNlcGhf c3luY19tb2RlLg0KQnV0IGZvciB0aGUgZmlsZSB3aGljaCBvcGVuZWQgd2l0aCBPX1NZTkMsIGl0 IGRvbid0IHVzZSBzeW5jX21vZGUuDQpUaGUgYmVoYXZpb3VyIG9mIHRoZW0gc2hvdWxkIGJlIHRo ZSBzYW1lLg0KRm9yIGZzIHdoaWNoIG1vdW50ZWQgdXNpbmcgJy1vIHN5bmMnLCBpdCB3YW50IGFs bCBJL08gdG8gdGhlIGZpbGVzeXN0ZW0NCnNob3VsZCBiZSBkb25lIHN5bmNocm9ub3VzbHkuQnV0 IHRoZSBjZXBoLXN5bmMtbW9kZSBkb24ndCBiZSBzdWl0ZnVsDQpmb3IuRm9yIGV4YW1wbGUsdXNp bmcgY2VwaC1zeW5jLW1vZGUgdGhlIGNvbnRlbnQgb2YgZmlsZSBkb24ndCBoYXZlIGluDQptZW1v cnkuVGhpcyB3aWxsIGNhdXNlIHRoZSBmb2xsb3dpbmcgcmVhZCBvbmx5IGZyb20gb3NkIHJhdGhl ciB0aGFuDQptZW1vcnkuDQoNClNpZ25lZC1vZmYtYnk6IEppYW5wZW5nIE1hIDxtYWppYW5wZW5n QGdtYWlsLmNvbT4NCi0tLQ0KIGZzL2NlcGgvZmlsZS5jIHwgMiAtLQ0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9maWxlLmMgYi9mcy9jZXBo L2ZpbGUuYw0KaW5kZXggNjU2ZTE2OS4uNDQ2NzBhZCAxMDA2NDQNCi0tLSBhL2ZzL2NlcGgvZmls ZS5jDQorKysgYi9mcy9jZXBoL2ZpbGUuYw0KQEAgLTY1OSw3ICs2NTksNiBAQCBhZ2FpbjoNCiAN CiAJaWYgKChnb3QgJiAoQ0VQSF9DQVBfRklMRV9DQUNIRXxDRVBIX0NBUF9GSUxFX0xBWllJTykp ID09IDAgfHwNCiAJICAgIChpb2NiLT5raV9maWxwLT5mX2ZsYWdzICYgT19ESVJFQ1QpIHx8DQot CSAgICAoaW5vZGUtPmlfc2ItPnNfZmxhZ3MgJiBNU19TWU5DSFJPTk9VUykgfHwNCiAJICAgIChm aS0+ZmxhZ3MgJiBDRVBIX0ZfU1lOQykpDQogCQkvKiBobW0sIHRoaXMgaXNuJ3QgcmVhbGx5IGFz eW5jLi4uICovDQogCQlyZXQgPSBjZXBoX3N5bmNfcmVhZChmaWxwLCBiYXNlLCBsZW4sIHBwb3Ms ICZjaGVja2VvZik7DQpAQCAtNzY0LDcgKzc2Myw2IEBAIHJldHJ5X3NuYXA6DQogDQogCWlmICgo Z290ICYgKENFUEhfQ0FQX0ZJTEVfQlVGRkVSfENFUEhfQ0FQX0ZJTEVfTEFaWUlPKSkgPT0gMCB8 fA0KIAkgICAgKGlvY2ItPmtpX2ZpbHAtPmZfZmxhZ3MgJiBPX0RJUkVDVCkgfHwNCi0JICAgIChp bm9kZS0+aV9zYi0+c19mbGFncyAmIE1TX1NZTkNIUk9OT1VTKSB8fA0KIAkgICAgKGZpLT5mbGFn cyAmIENFUEhfRl9TWU5DKSkgew0KIAkJbXV0ZXhfdW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7DQog CQl3cml0dGVuID0gY2VwaF9zeW5jX3dyaXRlKGZpbGUsIGlvdi0+aW92X2Jhc2UsIGNvdW50LA0K LS0gDQoxLjguMS4yDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752901Ab3F0H4H (ORCPT ); Thu, 27 Jun 2013 03:56:07 -0400 Received: from mail-pd0-f173.google.com ([209.85.192.173]:53709 "EHLO mail-pd0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752648Ab3F0H4G (ORCPT ); Thu, 27 Jun 2013 03:56:06 -0400 Date: Thu, 27 Jun 2013 15:56:06 +0800 From: majianpeng To: sage Cc: ceph-devel , linux-kernel Reply-To: majianpeng Subject: [PATCH] ceph: Don't use ceph-sync-mode for synchronous-fs. X-Priority: 3 X-GUID: 0BB5DB46-89B9-41E2-A7E8-27EFEEF5D5B7 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.90[en] Mime-Version: 1.0 Message-ID: <201306271556037311581@gmail.com> Content-Type: text/plain; charset="gb2312" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id r5R7uJaW012167 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 --- 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+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I