Lines Matching +full:b +full:- +full:side
1 /* SPDX-License-Identifier: GPL-2.0-only */
30 P_RECV_ACK = 0x15, /* Used in protocol B */
33 P_SUPERSEDED = 0x18, /* Used in proto C, two-primaries conflict detection */
55 P_CONN_ST_CHG_REPLY = 0x2b, /* meta sock: Connection side state req reply */
69 * On a receiving side without REQ_WRITE_SAME,
74 P_ZEROES = 0x36, /* data sock: zero-out, WRITE_ZEROES */
135 #define DP_SEND_RECEIVE_ACK 128 /* This is a proto B write request */
147 u64 block_id; /* to identify the request in protocol B&C */
154 u32 size; /* == bio->bi_size */
159 u32 size; /* == bio->bi_size */
165 * P_RECV_ACK (proto B), P_WRITE_ACK (proto C),
166 * P_SUPERSEDED (proto C, two-primaries conflict detection)
196 /* Detect all-zeros during resync, and rather TRIM/UNMAP/DISCARD those blocks
203 * - indicates support for 128 MiB "batch bios",
206 * - indicates that we exchange additional settings in p_sizes
213 * We used to map that to "discard" on the sending side, and if we cannot
214 * guarantee that discard zeroes data, the receiving side would map discard
215 * back to zero-out.
220 * UNMAP if possible, zero-out the rest.
224 * While an un-allocated block on dm-thin reads as zeroes, on a dm-thin
229 * If we cannot distinguish between zero-out and discard on the receiving
230 * side, to avoid "undefined old garbage" to pop up randomly at later times
231 * on supposedly zero-initialized blocks, we'd need to map all discards to
232 * zero-out on the receiving side. But that would potentially do a full
234 * unmap/trim/discard/de-allocate.
237 * zeroes (and thus use zero-out, potentially doing the mentioned full-alloc),
239 * zeroing" (by "discarding" blocks aligned to discard-granularity, and zeroing
241 * avoid "false positives" in an online-verify later, hoping that someone
333 * which may be translated to several bio on the receiving side.
346 * Receiving side uses "blkdev_issue_discard()", no need to communicate