mds: Handle ENODATA returned from getxattr

The osds might return ENODATA if we request an
xattr that doesn't exist.  In this case, we're
requesting the 'parent' xattr so that we can
remove all the forwarding pointers, but the xattr
may not have been written (which only happens on
log segment trim), so we don't assert here.

Signed-off-by: Sam Lang <sam.lang@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
This commit is contained in:
Sam Lang 2013-03-18 16:59:04 -05:00 committed by Sage Weil
parent 6774290ea0
commit 9029b0915b

View File

@ -8449,7 +8449,7 @@ public:
void MDCache::_purge_forwarding_pointers(inode_backtrace_t *backtrace, CDentry *d, int r, Context *fin)
{
assert(r == 0 || r == -ENOENT);
assert(r == 0 || r == -ENOENT || r == -ENODATA);
// setup gathering context
C_GatherBuilder gather_bld(g_ceph_context);