]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: properly setup client_need_snapflush for snap inode 21963/head
authorYan, Zheng <zyan@redhat.com>
Mon, 14 May 2018 03:34:42 +0000 (11:34 +0800)
committerYan, Zheng <zyan@redhat.com>
Tue, 15 May 2018 10:00:17 +0000 (18:00 +0800)
commit9fb61cd65895dbdb92cb46d24be8bf79ce57409d
tree08be1303db5e1d0b6a59765e7e5785593f8f5063
parent4b13d3ffe260fa4539e2d341604c34d2e8df7c94
mds: properly setup client_need_snapflush for snap inode

MDCache::cow_inode() checks "cap->issued() & CEPH_CAP_ANY_WR" to decide
if it needs to setup client_need_snapflush for the new snap inode. If
cap message flushes dirty caps and releases the same caps, cap->issued()
may have no WR caps when MDCache::cow_inode() gets called. The solution
is temporarily setting NEEDSNAPFLUSH on Capability::state.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
src/mds/Locker.cc