Lines Matching refs:zno

328 static int dm_update_zone_wp_offset(struct mapped_device *md, unsigned int zno,  in dm_update_zone_wp_offset()  argument
331 sector_t sector = zno * bdev_zone_sectors(md->disk->part0); in dm_update_zone_wp_offset()
368 unsigned int zno, struct bio *clone) in dm_zone_map_bio_begin() argument
371 unsigned int zwp_offset = READ_ONCE(md->zwp_offset[zno]); in dm_zone_map_bio_begin()
380 if (dm_update_zone_wp_offset(md, zno, &zwp_offset)) in dm_zone_map_bio_begin()
382 WRITE_ONCE(md->zwp_offset[zno], zwp_offset); in dm_zone_map_bio_begin()
423 static blk_status_t dm_zone_map_bio_end(struct mapped_device *md, unsigned int zno, in dm_zone_map_bio_end() argument
427 unsigned int zwp_offset = READ_ONCE(md->zwp_offset[zno]); in dm_zone_map_bio_end()
436 WRITE_ONCE(md->zwp_offset[zno], 0); in dm_zone_map_bio_end()
439 WRITE_ONCE(md->zwp_offset[zno], in dm_zone_map_bio_end()
444 WRITE_ONCE(md->zwp_offset[zno], zwp_offset + nr_sectors); in dm_zone_map_bio_end()
455 WRITE_ONCE(md->zwp_offset[zno], zwp_offset + nr_sectors); in dm_zone_map_bio_end()
463 static inline void dm_zone_lock(struct gendisk *disk, unsigned int zno, in dm_zone_lock() argument
469 wait_on_bit_lock_io(disk->seq_zones_wlock, zno, TASK_UNINTERRUPTIBLE); in dm_zone_lock()
473 static inline void dm_zone_unlock(struct gendisk *disk, unsigned int zno, in dm_zone_unlock() argument
479 WARN_ON_ONCE(!test_bit(zno, disk->seq_zones_wlock)); in dm_zone_unlock()
480 clear_bit_unlock(zno, disk->seq_zones_wlock); in dm_zone_unlock()
482 wake_up_bit(disk->seq_zones_wlock, zno); in dm_zone_unlock()
519 unsigned int zno; in dm_zone_map_bio() local
531 zno = bio_zone_no(clone); in dm_zone_map_bio()
532 dm_zone_lock(md->disk, zno, clone); in dm_zone_map_bio()
541 if (!dm_zone_map_bio_begin(md, zno, clone)) { in dm_zone_map_bio()
542 dm_zone_unlock(md->disk, zno, clone); in dm_zone_map_bio()
554 sts = dm_zone_map_bio_end(md, zno, &orig_bio_details, in dm_zone_map_bio()
563 sts = dm_zone_map_bio_end(md, zno, &orig_bio_details, in dm_zone_map_bio()
566 dm_zone_unlock(md->disk, zno, clone); in dm_zone_map_bio()
571 dm_zone_unlock(md->disk, zno, clone); in dm_zone_map_bio()
591 unsigned int zno; in dm_zone_endio() local
621 zno = bio_zone_no(orig_bio); in dm_zone_endio()
631 WRITE_ONCE(md->zwp_offset[zno], DM_ZONE_INVALID_WP_OFST); in dm_zone_endio()
637 zwp_offset = READ_ONCE(md->zwp_offset[zno]); in dm_zone_endio()
639 WRITE_ONCE(md->zwp_offset[zno], in dm_zone_endio()
646 dm_zone_unlock(disk, zno, clone); in dm_zone_endio()