int _allocate(uint8_t bdev, uint64_t len,
bluefs_fnode_t* node);
+ int _allocate_without_fallback(uint8_t id, uint64_t len,
+ PExtentVector* extents);
+
int _flush_range(FileWriter *h, uint64_t offset, uint64_t length);
int _flush(FileWriter *h, bool force);
- int _fsync(FileWriter *h, std::unique_lock<std::mutex>& l);
+ int _fsync(FileWriter *h, std::unique_lock<ceph::mutex>& l);
#ifdef HAVE_LIBAIO
void _claim_completed_aios(FileWriter *h, list<aio_t> *ls);
uint64_t jump_to = 0);
uint64_t _estimate_log_size();
bool _should_compact_log();
- void _compact_log_dump_metadata(bluefs_transaction_t *t);
+
+ enum {
+ REMOVE_DB = 1,
+ REMOVE_WAL = 2,
+ RENAME_SLOW2DB = 4,
+ RENAME_DB2SLOW = 8,
+ };
+ void _compact_log_dump_metadata(bluefs_transaction_t *t,
+ int flags);
void _compact_log_sync();
- void _compact_log_async(std::unique_lock<std::mutex>& l);
+ void _compact_log_async(std::unique_lock<ceph::mutex>& l);
+ void _rewrite_log_sync(bool allocate_with_fallback,
+ int super_dev,
+ int log_dev,
+ int new_log_dev,
+ int flags);
+
//void _aio_finish(void *priv);
void _flush_bdev_safely(FileWriter *h);