]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: only release unused caps with mds requests
authorSage Weil <sage@newdream.net>
Tue, 16 Mar 2010 22:01:07 +0000 (15:01 -0700)
committerSage Weil <sage@newdream.net>
Tue, 23 Mar 2010 14:46:55 +0000 (07:46 -0700)
commitbfe68e4889fbe59a365d79e8595b97b94cfcdb29
tree892f703ce8a4200ab27b0c1db14f4c2057d7b2f3
parent48c9b7c7009c54d6e19d5592b45e63e55cbd62b3
ceph: only release unused caps with mds requests

We were releasing used caps (e.g. FILE_CACHE) from encode_inode_release
with MDS requests (e.g. setattr).  We don't carry refs on most caps, so
this code worked most of the time, but for setattr (utimes) we try to
drop Fscr.

This causes cap state to get slightly out of sync with reality, and may
result in subsequent mds revoke messages getting ignored.

Fix by only releasing unused caps.

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/caps.c