Lines Matching +full:2 +full:- +full:cell
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (C) 2011-2017 Red Hat, Inc.
11 #include "persistent-data/dm-block-manager.h" /* FIXME: for dm_block_t */
12 #include "dm-thin-metadata.h" /* FIXME: for dm_thin_id */
17 /*----------------------------------------------------------------*/
21 * where they can't cause any mischief. Bios are put in a cell identified
22 * by a key, multiple bios can be in the same cell. When the cell is
38 * The range of a key (block_end - block_begin) must not
42 * Must be a power of 2.
65 * Eventually all bio prison clients should manage their own cell memory.
73 struct dm_bio_prison_cell *cell);
76 * Creates, or retrieves a cell that overlaps the given key.
78 * Returns 1 if pre-existing cell returned, zero if new cell created using
92 * An atomic op that combines retrieving or creating a cell, and adding a
95 * Returns 1 if the cell was already held, 0 if @inmate is the new holder.
104 struct dm_bio_prison_cell *cell,
107 struct dm_bio_prison_cell *cell,
110 struct dm_bio_prison_cell *cell, blk_status_t error);
113 * Visits the cell and then releases. Guarantees no new inmates are
118 void *context, struct dm_bio_prison_cell *cell);
121 * Rather than always releasing the prisoners in a cell, the client may
123 * though between releasing an empty cell, and other threads adding new
127 * i) An inmate is promoted to be the holder of the cell (return value of 0).
128 * ii) The cell has no inmate for promotion and is released (return value of 1).
131 struct dm_bio_prison_cell *cell);
133 /*----------------------------------------------------------------*/
152 /*----------------------------------------------------------------*/