MCPcopy Create free account
hub / github.com/ceph/ceph / write

Method write

src/blk/kernel/KernelDevice.cc:1115–1141  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1113}
1114
1115int KernelDevice::write(
1116 uint64_t off,
1117 bufferlist &bl,
1118 bool buffered,
1119 int write_hint)
1120{
1121 uint64_t len = bl.length();
1122 dout(20) << __func__ << " 0x" << std::hex << off << "~" << len << std::dec
1123 << " " << buffermode(buffered)
1124 << dendl;
1125 ceph_assert(is_valid_io(off, len));
1126 if (cct->_conf->objectstore_blackhole) {
1127 lderr(cct) << __func__ << " objectstore_blackhole=true, throwing out IO"
1128 << dendl;
1129 return 0;
1130 }
1131
1132 if ((!buffered || bl.get_num_buffers() >= IOV_MAX) &&
1133 bl.rebuild_aligned_size_and_memory(block_size, block_size, IOV_MAX)) {
1134 dout(20) << __func__ << " rebuilding buffer to be aligned" << dendl;
1135 }
1136 dout(40) << "data:\n";
1137 bl.hexdump(*_dout);
1138 *_dout << dendl;
1139
1140 return _sync_write(off, bl, buffered, write_hint);
1141}
1142
1143int KernelDevice::aio_write(
1144 uint64_t off,

Callers

nothing calls this directly

Calls 5

buffermodeFunction · 0.85
is_valid_ioFunction · 0.85
hexdumpMethod · 0.80
lengthMethod · 0.45

Tested by

no test coverage detected