From mboxrd@z Thu Jan 1 00:00:00 1970 From: majianpeng Subject: [RFC PATCH] ceph: send the ctime of file/snap when send a cap msg. Date: Tue, 2 Jul 2013 17:29:15 +0800 Message-ID: <201307021700280328740@gmail.com> Reply-To: majianpeng Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pb0-f43.google.com ([209.85.160.43]:49459 "EHLO mail-pb0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753623Ab3GBJ3S (ORCPT ); Tue, 2 Jul 2013 05:29:18 -0400 Sender: ceph-devel-owner@vger.kernel.org List-ID: To: sage Cc: ceph-devel , linux-kernel Tm93LHdoZW4gc2VudCBhIGNhcCBtc2cgdG8gaW5vZGUvc25hcCwgaXQgZG9uJ3QgaW5jbHVkZSB0 aGUgY3RpbWUgb2YNCmlub2RlL3NuYXAuU28gbWFrZSB0aGUgbXRpbWUgYWhlYWQgb2YgY3RpbWUu DQoNCkJUWSxmb3Igc25hcCwgaSdtIG5vdCBleGFjdGx5IHNlbmQgdGhlIGN0aW1lIG9mIHNuYXAg b3IgbnVsbC4NCg0KU2lnbmVkLW9mZi1ieTogSmlhbnBlbmcgTWEgPG1hamlhbnBlbmdAZ21haWwu Y29tPg0KLS0tDQogZnMvY2VwaC9jYXBzLmMgfCAxMSArKysrKysrLS0tLQ0KIDEgZmlsZSBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9mcy9j ZXBoL2NhcHMuYyBiL2ZzL2NlcGgvY2Fwcy5jDQppbmRleCBkYTBmOWI4Li44NzM1MTA4IDEwMDY0 NA0KLS0tIGEvZnMvY2VwaC9jYXBzLmMNCisrKyBiL2ZzL2NlcGgvY2Fwcy5jDQpAQCAtOTQzLDcg Kzk0Myw3IEBAIHN0YXRpYyBpbnQgc2VuZF9jYXBfbXNnKHN0cnVjdCBjZXBoX21kc19zZXNzaW9u ICpzZXNzaW9uLA0KIAkJCXUzMiBzZXEsIHU2NCBmbHVzaF90aWQsIHUzMiBpc3N1ZV9zZXEsIHUz MiBtc2VxLA0KIAkJCXU2NCBzaXplLCB1NjQgbWF4X3NpemUsDQogCQkJc3RydWN0IHRpbWVzcGVj ICptdGltZSwgc3RydWN0IHRpbWVzcGVjICphdGltZSwNCi0JCQl1NjQgdGltZV93YXJwX3NlcSwN CisJCQlzdHJ1Y3QgdGltZXNwZWMgKmN0aW1lLCB1NjQgdGltZV93YXJwX3NlcSwNCiAJCQlrdWlk X3QgdWlkLCBrZ2lkX3QgZ2lkLCB1bW9kZV90IG1vZGUsDQogCQkJdTY0IHhhdHRyX3ZlcnNpb24s DQogCQkJc3RydWN0IGNlcGhfYnVmZmVyICp4YXR0cnNfYnVmLA0KQEAgLTk4Niw2ICs5ODYsOCBA QCBzdGF0aWMgaW50IHNlbmRfY2FwX21zZyhzdHJ1Y3QgY2VwaF9tZHNfc2Vzc2lvbiAqc2Vzc2lv biwNCiAJCWNlcGhfZW5jb2RlX3RpbWVzcGVjKCZmYy0+bXRpbWUsIG10aW1lKTsNCiAJaWYgKGF0 aW1lKQ0KIAkJY2VwaF9lbmNvZGVfdGltZXNwZWMoJmZjLT5hdGltZSwgYXRpbWUpOw0KKwlpZiAo Y3RpbWUpDQorCQljZXBoX2VuY29kZV90aW1lc3BlYygmZmMtPmN0aW1lLCBjdGltZSk7DQogCWZj LT50aW1lX3dhcnBfc2VxID0gY3B1X3RvX2xlMzIodGltZV93YXJwX3NlcSk7DQogDQogCWZjLT51 aWQgPSBjcHVfdG9fbGUzMihmcm9tX2t1aWQoJmluaXRfdXNlcl9ucywgdWlkKSk7DQpAQCAtMTA5 Miw3ICsxMDk0LDcgQEAgc3RhdGljIGludCBfX3NlbmRfY2FwKHN0cnVjdCBjZXBoX21kc19jbGll bnQgKm1kc2MsIHN0cnVjdCBjZXBoX2NhcCAqY2FwLA0KIAlpbnQgaGVsZCwgcmV2b2tpbmcsIGRy b3BwaW5nLCBrZWVwOw0KIAl1NjQgc2VxLCBpc3N1ZV9zZXEsIG1zZXEsIHRpbWVfd2FycF9zZXEs IGZvbGxvd3M7DQogCXU2NCBzaXplLCBtYXhfc2l6ZTsNCi0Jc3RydWN0IHRpbWVzcGVjIG10aW1l LCBhdGltZTsNCisJc3RydWN0IHRpbWVzcGVjIG10aW1lLCBhdGltZSwgY3RpbWU7DQogCWludCB3 YWtlID0gMDsNCiAJdW1vZGVfdCBtb2RlOw0KIAlrdWlkX3QgdWlkOw0KQEAgLTExNzYsNiArMTE3 OCw3IEBAIHN0YXRpYyBpbnQgX19zZW5kX2NhcChzdHJ1Y3QgY2VwaF9tZHNfY2xpZW50ICptZHNj LCBzdHJ1Y3QgY2VwaF9jYXAgKmNhcCwNCiAJY2ktPmlfcmVxdWVzdGVkX21heF9zaXplID0gbWF4 X3NpemU7DQogCW10aW1lID0gaW5vZGUtPmlfbXRpbWU7DQogCWF0aW1lID0gaW5vZGUtPmlfYXRp bWU7DQorCWN0aW1lID0gaW5vZGUtPmlfY3RpbWU7DQogCXRpbWVfd2FycF9zZXEgPSBjaS0+aV90 aW1lX3dhcnBfc2VxOw0KIAl1aWQgPSBpbm9kZS0+aV91aWQ7DQogCWdpZCA9IGlub2RlLT5pX2dp ZDsNCkBAIC0xMTkxLDcgKzExOTQsNyBAQCBzdGF0aWMgaW50IF9fc2VuZF9jYXAoc3RydWN0IGNl cGhfbWRzX2NsaWVudCAqbWRzYywgc3RydWN0IGNlcGhfY2FwICpjYXAsDQogDQogCXJldCA9IHNl bmRfY2FwX21zZyhzZXNzaW9uLCBjZXBoX3Zpbm8oaW5vZGUpLmlubywgY2FwX2lkLA0KIAkJb3As IGtlZXAsIHdhbnQsIGZsdXNoaW5nLCBzZXEsIGZsdXNoX3RpZCwgaXNzdWVfc2VxLCBtc2VxLA0K LQkJc2l6ZSwgbWF4X3NpemUsICZtdGltZSwgJmF0aW1lLCB0aW1lX3dhcnBfc2VxLA0KKwkJc2l6 ZSwgbWF4X3NpemUsICZtdGltZSwgJmF0aW1lLCAmY3RpbWUsIHRpbWVfd2FycF9zZXEsDQogCQl1 aWQsIGdpZCwgbW9kZSwgeGF0dHJfdmVyc2lvbiwgeGF0dHJfYmxvYiwNCiAJCWZvbGxvd3MpOw0K IAlpZiAocmV0IDwgMCkgew0KQEAgLTEzMTAsNyArMTMxMyw3IEBAIHJldHJ5Og0KIAkJCSAgICAg Q0VQSF9DQVBfT1BfRkxVU0hTTkFQLCBjYXBzbmFwLT5pc3N1ZWQsIDAsDQogCQkJICAgICBjYXBz bmFwLT5kaXJ0eSwgMCwgY2Fwc25hcC0+Zmx1c2hfdGlkLCAwLCBtc2VxLA0KIAkJCSAgICAgY2Fw c25hcC0+c2l6ZSwgMCwNCi0JCQkgICAgICZjYXBzbmFwLT5tdGltZSwgJmNhcHNuYXAtPmF0aW1l LA0KKwkJCSAgICAgJmNhcHNuYXAtPm10aW1lLCAmY2Fwc25hcC0+YXRpbWUsICZjYXBzbmFwLT5j dGltZSwNCiAJCQkgICAgIGNhcHNuYXAtPnRpbWVfd2FycF9zZXEsDQogCQkJICAgICBjYXBzbmFw LT51aWQsIGNhcHNuYXAtPmdpZCwgY2Fwc25hcC0+bW9kZSwNCiAJCQkgICAgIGNhcHNuYXAtPnhh dHRyX3ZlcnNpb24sIGNhcHNuYXAtPnhhdHRyX2Jsb2IsDQotLSANCjEuOC4xLjINCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932549Ab3GBJ3V (ORCPT ); Tue, 2 Jul 2013 05:29:21 -0400 Received: from mail-pb0-f43.google.com ([209.85.160.43]:49459 "EHLO mail-pb0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753623Ab3GBJ3S (ORCPT ); Tue, 2 Jul 2013 05:29:18 -0400 Date: Tue, 2 Jul 2013 17:29:15 +0800 From: majianpeng To: sage Cc: ceph-devel , linux-kernel Reply-To: majianpeng Subject: [RFC PATCH] ceph: send the ctime of file/snap when send a cap msg. X-Priority: 3 X-GUID: DDB9110B-B11B-476B-A07E-35E299E4755F X-Has-Attach: no X-Mailer: Foxmail 7.0.1.90[en] Mime-Version: 1.0 Message-ID: <201307021700280328740@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 r629TZ9F006797 Now,when sent a cap msg to inode/snap, it don't include the ctime of inode/snap.So make the mtime ahead of ctime. BTY,for snap, i'm not exactly send the ctime of snap or null. Signed-off-by: Jianpeng Ma --- fs/ceph/caps.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index da0f9b8..8735108 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -943,7 +943,7 @@ static int send_cap_msg(struct ceph_mds_session *session, u32 seq, u64 flush_tid, u32 issue_seq, u32 mseq, u64 size, u64 max_size, struct timespec *mtime, struct timespec *atime, - u64 time_warp_seq, + struct timespec *ctime, u64 time_warp_seq, kuid_t uid, kgid_t gid, umode_t mode, u64 xattr_version, struct ceph_buffer *xattrs_buf, @@ -986,6 +986,8 @@ static int send_cap_msg(struct ceph_mds_session *session, ceph_encode_timespec(&fc->mtime, mtime); if (atime) ceph_encode_timespec(&fc->atime, atime); + if (ctime) + ceph_encode_timespec(&fc->ctime, ctime); fc->time_warp_seq = cpu_to_le32(time_warp_seq); fc->uid = cpu_to_le32(from_kuid(&init_user_ns, uid)); @@ -1092,7 +1094,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, int held, revoking, dropping, keep; u64 seq, issue_seq, mseq, time_warp_seq, follows; u64 size, max_size; - struct timespec mtime, atime; + struct timespec mtime, atime, ctime; int wake = 0; umode_t mode; kuid_t uid; @@ -1176,6 +1178,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, ci->i_requested_max_size = max_size; mtime = inode->i_mtime; atime = inode->i_atime; + ctime = inode->i_ctime; time_warp_seq = ci->i_time_warp_seq; uid = inode->i_uid; gid = inode->i_gid; @@ -1191,7 +1194,7 @@ static int __send_cap(struct ceph_mds_client *mdsc, struct ceph_cap *cap, ret = send_cap_msg(session, ceph_vino(inode).ino, cap_id, op, keep, want, flushing, seq, flush_tid, issue_seq, mseq, - size, max_size, &mtime, &atime, time_warp_seq, + size, max_size, &mtime, &atime, &ctime, time_warp_seq, uid, gid, mode, xattr_version, xattr_blob, follows); if (ret < 0) { @@ -1310,7 +1313,7 @@ retry: CEPH_CAP_OP_FLUSHSNAP, capsnap->issued, 0, capsnap->dirty, 0, capsnap->flush_tid, 0, mseq, capsnap->size, 0, - &capsnap->mtime, &capsnap->atime, + &capsnap->mtime, &capsnap->atime, &capsnap->ctime, capsnap->time_warp_seq, capsnap->uid, capsnap->gid, capsnap->mode, capsnap->xattr_version, capsnap->xattr_blob, -- 1.8.1.2 {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I