osd: Fix the way that auto repair triggers after regular scrub
We used a trick to get auto repair to happen after scrub errors
which reset the scrub/deep-scrub stamps. This not only
looks bad to the user, but causes health warnings. Instead
use a new scrubber flag need_auto which causes reg_next_srub()
to set deadline for immediate scrubbing. It also causes time_for_deep
to be set so that auto repair triggers.
Every regular scrub was triggering a deep scrub. Check
scrubber.authoritative.size() (scrub error count), so regular scrub doesn't
trigger deep-scrub when there are no errors.
Caused by:
2202e5d0b107795837ce79ffce2a980e8c12fc62
Fixes: http://tracker.ceph.com/issues/40073
Signed-off-by: David Zafman <dzafman@redhat.com>