]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: include nfiles/nsubdirs of directory inode in MClientCaps 21866/head
authorYan, Zheng <zyan@redhat.com>
Thu, 26 Apr 2018 07:12:48 +0000 (15:12 +0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 7 May 2018 22:45:26 +0000 (15:45 -0700)
commitbbafea42d1c767730acf2f52af75bb5ca6caa718
treed9e4bb98ed0d164ecd984c06be3f955232733e19
parent574906d323b2145724df5de2cc7b4318e14d1e0e
mds: include nfiles/nsubdirs of directory inode in MClientCaps

Directory inode's dirstat gets updated by request reply, but not by
cap message. This causes problem for following case.

1. MDS modifies a directory
2. MDS issues CEPH_CAP_ANY_SHARED to client
3. The client satifies stat(2) by its cached metadata.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
Fixes: http://tracker.ceph.com/issues/23855
(cherry picked from commit ee2c628f6783954e9b25fab8ac9b572a58666a91)
src/client/Client.cc
src/mds/CInode.cc
src/messages/MClientCaps.h