| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/storage/blobfs/transaction.h" |
| |
| #include <lib/syslog/cpp/macros.h> |
| |
| namespace blobfs { |
| |
| void BlobTransaction::Commit(fs::Journal& journal, fit::promise<void, zx_status_t> data, |
| fit::callback<void()> callback) { |
| zx_status_t status = journal.CommitTransaction({ |
| .metadata_operations = operations_.TakeOperations(), |
| .data_promise = std::move(data), |
| .trim = std::move(trim_), |
| // We reserve extents (by capturing in a lambda) until after the trim has completed. |
| .commit_callback = [reserved_extents = std::move(reserved_extents_)] {}, |
| .complete_callback = std::move(callback), |
| }); |
| // We can't do much except log the error. |
| if (status != ZX_OK) { |
| FX_LOGS(ERROR) << "BlobTransaction::Commit failed: " << zx_status_get_string(status); |
| } |
| } |
| |
| } // namespace blobfs |