int r = db->submit_transaction_sync(t);
ceph_assert(r == 0);
}
+ if (ondisk_format == 2) {
+ // changes:
+ // - onode has FLAG_PER_POOL_OMAP. Note that we do not know that *all*
+ // ondes are using the per-pool prefix until a repair is run; at that
+ // point the per_pool_omap=1 key will be set.
+ // - super: added per_pool_omap key, which indicates that *all* objects
+ // are using the new prefix and key format
+ ondisk_format = 3;
+ KeyValueDB::Transaction t = db->get_transaction();
+ _prepare_ondisk_format_super(t);
+ int r = db->submit_transaction_sync(t);
+ ceph_assert(r == 0);
+ }
}
// done
dout(1) << __func__ << " done" << dendl;
// -- ondisk version ---
public:
- const int32_t latest_ondisk_format = 2; ///< our version
+ const int32_t latest_ondisk_format = 3; ///< our version
const int32_t min_readable_ondisk_format = 1; ///< what we can read
- const int32_t min_compat_ondisk_format = 2; ///< who can read us
+ const int32_t min_compat_ondisk_format = 3; ///< who can read us
private:
int32_t ondisk_format = 0; ///< value detected on mount