Lines Matching full:plug

42  * Per-zone write plug.
43 * @node: hlist_node structure for managing the plug using a hash table.
44 * @link: To list the plug in the zone write plug error list of the disk.
45 * @ref: Zone write plug reference counter. A zone write plug reference is
46 * always at least 1 when the plug is hashed in the disk plug hash table.
48 * submitted and when a function needs to manipulate a plug. The
50 * when a function that referenced the plug returns. The initial
51 * reference is dropped whenever the zone of the zone write plug is reset,
54 * @lock: Spinlock to atomically manipulate the plug.
55 * @flags: Flags indicating the plug state.
56 * @zone_no: The number of the zone the plug is managing.
62 * @disk: The gendisk the plug belongs to.
79 * Zone write plug flags bits:
80 * - BLK_ZONE_WPLUG_PLUGGED: Indicates that the zone write plug is plugged,
82 * being executed or the zone write plug bio list is not empty.
85 * - BLK_ZONE_WPLUG_UNHASHED: Indicates that the zone write plug was removed
87 * write plug set when the plug was first added to the hash table has been
89 * to prevent new references to the zone write plug to be taken for
90 * newly incoming BIOs. A zone write plug flagged with this flag will be
386 * Add the new zone write plug to the hash table, but carefully as we in disk_insert_zone_wplug()
388 * zone write plug for the same zone. in disk_insert_zone_wplug()
447 /* If the zone write plug was already removed, we are done. */ in disk_should_remove_zone_wplug()
451 /* If the zone write plug is still busy, it cannot be removed. */ in disk_should_remove_zone_wplug()
460 * should not attempt to remove the zone write plug until all BIO in disk_should_remove_zone_wplug()
461 * completions are seen. Check by looking at the zone write plug in disk_should_remove_zone_wplug()
462 * reference count, which is 2 when the plug is unused (one reference in disk_should_remove_zone_wplug()
463 * taken when the plug was allocated and another reference taken by the in disk_should_remove_zone_wplug()
478 /* If the zone write plug was already removed, we have nothing to do. */ in disk_remove_zone_wplug()
483 * Mark the zone write plug as unhashed and drop the extra reference we in disk_remove_zone_wplug()
484 * took when the plug was inserted in the hash table. in disk_remove_zone_wplug()
496 * Get a reference on the write plug for the zone containing @sector.
497 * If the plug does not exist, it is allocated and hashed.
498 * Return a pointer to the zone write plug with the plug spinlock held.
512 * operation has not already removed the zone write plug from in disk_get_and_lock_zone_wplug()
514 * we need to get a new plug so start over from the beginning. in disk_get_and_lock_zone_wplug()
526 * Allocate and initialize a zone write plug with an extra reference in disk_get_and_lock_zone_wplug()
527 * so that it is not freed when the zone write plug becomes idle without in disk_get_and_lock_zone_wplug()
548 * Insert the new zone write plug in the hash table. This can fail only in disk_get_and_lock_zone_wplug()
549 * if another context already inserted a plug. Retry from the beginning in disk_get_and_lock_zone_wplug()
573 * Abort (fail) all plugged BIOs of a zone write plug.
584 * Abort (fail) all plugged BIOs of a zone write plug that are not aligned
619 * At this point, we already have a reference on the zone write plug. in disk_zone_wplug_set_error()
620 * However, since we are going to add the plug to the disk zone write in disk_zone_wplug_set_error()
644 * on the zone write plug after handling the error state. So remove the in disk_zone_wplug_clear_error()
645 * plug from the error list and drop its reference count only if the in disk_zone_wplug_clear_error()
646 * error handling has not yet started, that is, if the zone write plug in disk_zone_wplug_clear_error()
659 * Set a zone write plug write pointer offset to either 0 (zone reset case)
675 * operation has not already removed the plug from the hash table. in disk_zone_wplug_set_wp_offset()
694 * The zone write plug now has no BIO plugged: remove it from the in disk_zone_wplug_set_wp_offset()
695 * hash table so that it cannot be seen. The plug will be freed in disk_zone_wplug_set_wp_offset()
718 * If we have a zone write plug, set its write pointer offset to 0 in blk_zone_wplug_handle_reset_or_finish()
800 * For this case, we already hold a reference on the zone write plug for in blk_zone_write_plug_bio_merged()
810 * Get a reference on the zone write plug of the target zone and advance in blk_zone_write_plug_bio_merged()
813 * plug. So this should not fail. in blk_zone_write_plug_bio_merged()
846 * on the zone write plug we took above on entry to this function. in blk_zone_write_plug_init_request()
891 * offset of its zone write plug and changing zone append operations into
954 * zone write plug for the entire BIO. For blk-mq devices, the block in blk_zone_wplug_handle_write()
989 * to the plug BIO list. Otherwise, plug and let the BIO execute. in blk_zone_wplug_handle_write()
992 goto plug; in blk_zone_wplug_handle_write()
999 goto plug; in blk_zone_wplug_handle_write()
1007 plug: in blk_zone_wplug_handle_write()
1025 * write plug. Otherwise, return false to let the submission path process
1038 * plug bio submit work. in blk_zone_plug_bio()
1055 * zone write plug. This includes writes with REQ_FUA | REQ_PREFLUSH in blk_zone_plug_bio()
1058 * machinery operates at the request level, below the plug, and in blk_zone_plug_bio()
1097 * Take a reference on the zone write plug and schedule the submission in disk_zone_wplug_schedule_bio_work()
1134 * (it was reset), remove its zone write plug from the hash table. in disk_zone_wplug_unplug_bio()
1152 /* Make sure we do not see this BIO again by clearing the plug flag. */ in blk_zone_write_plug_bio_endio()
1165 * If the BIO failed, mark the plug as having an error to trigger in blk_zone_write_plug_bio_endio()
1386 * For the size of a disk zone write plug hash table, use the size of the
1387 * zone write plug mempool, which is the maximum of the disk open zones and
1579 * dynamic zone write plug allocation when simultaneously writing to in disk_update_zone_resources()
1653 * empty nor full. So make sure we have a zone write plug for in blk_revalidate_seq_zone()
1654 * such zone if the device has a zone write plug hash table. in blk_revalidate_seq_zone()