]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: ensure that we send the btime in cap messages
authorJeff Layton <jlayton@redhat.com>
Tue, 10 Aug 2021 14:51:34 +0000 (10:51 -0400)
committerJeff Layton <jlayton@redhat.com>
Mon, 16 Aug 2021 12:45:56 +0000 (08:45 -0400)
While troubleshooting a different problem, I noticed that the kclient
would occasionally not report the btime in statx calls. It's most
evident in the case where two different clients are alternately writing
to the same file, and another task on one of them is repeatedly issuing
statx() calls against it.

The problem is that we're not correctly populating the MClientCaps btime
field when issuing caps, and that causes the MDS to incorrectly send a
zeroed-out btime field.

Fixes: https://tracker.ceph.com/issues/52123
Signed-off-by: Jeff Layton <jlayton@redhat.com>
src/mds/CInode.cc

index b7b78e648248152ad45e41ec783180263ac084f9..295198942492739de306afcd572cc66d02c58d89 100644 (file)
@@ -4133,6 +4133,7 @@ void CInode::encode_cap_message(const ref_t<MClientCaps> &m, Capability *cap)
   m->mtime = i->mtime;
   m->atime = i->atime;
   m->ctime = i->ctime;
+  m->btime = i->btime;
   m->change_attr = i->change_attr;
   m->time_warp_seq = i->time_warp_seq;
   m->nfiles = i->dirstat.nfiles;