mirror of
https://github.com/ceph/ceph
synced 2025-01-02 09:02:34 +00:00
mds: be fairer in enqueuing purges
Don't let purges that require fewer ops skip ahead of those that require more ops. Signed-off-by: John Spray <john.spray@redhat.com>
This commit is contained in:
parent
c087025f22
commit
0cf1c7ad8a
@ -330,11 +330,16 @@ void StrayManager::enqueue(CDentry *dn, bool trunc)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Try to purge immediately if possible, else enqueue
|
||||
const uint32_t ops_required = _calculate_ops_required(in, trunc);
|
||||
|
||||
bool consumed = _consume(dn, trunc, ops_required);
|
||||
// Try to purge immediately if there is nothing in the queue, otherwise
|
||||
// we will go to the back of the queue (even if there is allowance available
|
||||
// to run us immediately) in order to be fair to others.
|
||||
bool consumed = false;
|
||||
if (ready_for_purge.empty()) {
|
||||
consumed = _consume(dn, trunc, ops_required);
|
||||
}
|
||||
|
||||
if (consumed) {
|
||||
dout(10) << __func__ << ": purging this dentry immediately: "
|
||||
<< *dn << dendl;
|
||||
|
Loading…
Reference in New Issue
Block a user