Make state bits distinct. Duh.
Also, if an inode is queued for recovery, and doesn't need it later, unqueue it
(clear the bit, drop auth pin).
static const int STATE_AMBIGUOUSAUTH = (1<<9);
static const int STATE_EXPORTINGCAPS = (1<<10);
static const int STATE_NEEDSRECOVER = (1<<11);
- static const int STATE_RECOVERING = (1<<11);
+ static const int STATE_RECOVERING = (1<<12);
// -- waiters --
static const __u64 WAIT_DIR = (1<<0);
} else {
dout(10) << "do_file_recover skipping " << in->inode.size << "/" << in->inode.max_size
<< " " << *in << dendl;
+ in->state_clear(CInode::STATE_NEEDSRECOVER);
+ in->auth_unpin(this);
+ mds->locker->file_eval_gather(&in->filelock);
}
}
}