ceph: send the ctime of file/snap when send a cap msg.
RFC PATCH 1/1 ceph: send the ctime of file/snap when send a cap msg.
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 <[email protected]>
--- fs/ceph/caps.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
fs/ceph/caps.c +7 -4
@@ -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,
Signature · 1 line
1.8.1.2