PGLog: clear missing on backfill reset

When backfill is reset, the missing set should be cleared
since all objects are >last_backfill.

Fixes: #5320
Signed-off-by: Samuel Just <sam.just@inktank.com>
FileStore: add rmkeyrange

Handling it in DBObjectMap really only has efficiency
advantages if the object is a clone.

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: remove ondisklog usages from PG

ondisklog is now only relevant for the divergent priors mapping.

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: pass only divergent_priors, not ondisklog

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: remove other ondisklog references

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: remove OndiskLog

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd_types: move code for pg_log_entry_t::get_key_name into eversion_t

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: track dirty_to and dirty_from for log

This allows the log to only write out/clear the keys
which have actually changed.

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG: move instances of log dirtying in PG into PGLog

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: replace dirty_log with mark_dirty_*

Signed-off-by: Samuel Just <sam.just@inktank.com>
PG,PGLog: remove dirty_log arguments

Signed-off-by: Samuel Just <sam.just@inktank.com>
test/osd/TestPGLog: fix pglog unittests for dirty_log and ondisklog

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: add debug check on written keys, verify on write

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog,PG: use normal log dirtying and writing for append and trim

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: only iterate over dirty portions of the log

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: rename dirty() to is_dirty()

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: check for dirty_to != eversion_t() and dirty_from != eversion_t::max()

Signed-off-by: Samuel Just <sam.just@inktank.com>
test/osd/TestPGLog: %s/dirty()/is_dirty()

Signed-off-by: Samuel Just <sam.just@inktank.com>
client: fix warning

client/Client.cc: In member function 'virtual void Client::ms_handle_remote_reset(Connection*)':
warning: client/Client.cc:7892:9: enumeration value 'STATE_NEW' not handled in switch [-Wswitch]
warning: client/Client.cc:7892:9: enumeration value 'STATE_OPEN' not handled in switch [-Wswitch]
warning: client/Client.cc:7892:9: enumeration value 'STATE_CLOSED' not handled in switch [-Wswitch]

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
common/Preforker: fix warning

common/Preforker.h: In member function ‘int Preforker::signal_exit(int)’:
warning: common/Preforker.h:82:45: ignoring return value of ‘ssize_t safe_write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]

This is harder than it should be to fix.  :(
  http://stackoverflow.com/questions/3614691/casting-to-void-doesnt-remove-warn-unused-result-error

Whatever, I guess we can do something useful with this return value.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>