Add default impl to dir close (#10101)

Summary:
As pointed by anand1976 in his [comment](https://github.com/facebook/rocksdb/pull/10049#pullrequestreview-994255819), previous implementation is not backward-compatible. In this implementation, the default implementation `return Status::NotSupported("Close")` or `return IOStatus::NotSupported("Close")` is added for `Close()` function for `*Directory` classes.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/10101

Test Plan: DBBasicTest.DBCloseAllDirectoryFDs

Reviewed By: anand1976

Differential Revision: D36899346

Pulled By: littlepig2013

fbshipit-source-id: 430624793362f330cbb8837960f0e8712a944ab9
This commit is contained in:
zczhu 2022-06-03 12:53:28 -07:00 committed by Facebook GitHub Bot
parent cf85607795
commit 21906d66f6
2 changed files with 5 additions and 2 deletions

View File

@ -936,7 +936,7 @@ class WritableFile {
// size due to whole pages writes. The behavior is undefined if called
// with other writes to follow.
virtual Status Truncate(uint64_t /*size*/) { return Status::OK(); }
virtual Status Close() = 0;
virtual Status Close() { return Status::NotSupported("Close"); }
virtual Status Flush() = 0;
virtual Status Sync() = 0; // sync data

View File

@ -1021,7 +1021,10 @@ class FSWritableFile {
IODebugContext* /*dbg*/) {
return IOStatus::OK();
}
virtual IOStatus Close(const IOOptions& options, IODebugContext* dbg) = 0;
virtual IOStatus Close(const IOOptions& /*options*/,
IODebugContext* /*dbg*/) {
return IOStatus::NotSupported("Close");
}
virtual IOStatus Flush(const IOOptions& options, IODebugContext* dbg) = 0;
virtual IOStatus Sync(const IOOptions& options,
IODebugContext* dbg) = 0; // sync data