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