ceph: invalidate affected dentry leases on aborted requests
authorSage Weil <sage@newdream.net>
Fri, 14 May 2010 16:35:38 +0000 (09:35 -0700)
committerSage Weil <sage@newdream.net>
Mon, 17 May 2010 17:25:45 +0000 (10:25 -0700)
commit81a6cf2d30eac5d790f53cdff110892f7b18c7fe
tree9dcc1d4492b8736cda6a007a4a1c076048bd87af
parentb4556396fac5b3f063d5b8ac54dc02f7612a75e1
ceph: invalidate affected dentry leases on aborted requests

If we abort a request, we return to caller, but the request may still
complete.  And if we hold the dir FILE_EXCL bit, we may not release a
lease when sending a request.  A simple un-tar, control-c, un-tar again
will reproduce the bug (manifested as a 'Cannot open: File exists').

Ensure we invalidate affected dentry leases (as well dir I_COMPLETE) so
we don't have valid (but incorrect) leases.  Do the same, consistently, at
other sites where I_COMPLETE is similarly cleared.

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/dir.c
fs/ceph/inode.c
fs/ceph/mds_client.c
fs/ceph/super.h