Lines Matching refs:zsp

2722 	struct sdeb_zone_state *zsp;
2733 zsp = &devip->zstate[zno];
2734 if (lba >= zsp->z_start + zsp->z_size)
2735 zsp++;
2736 WARN_ON_ONCE(lba >= zsp->z_start + zsp->z_size);
2737 return zsp;
2740 static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp)
2742 return zsp->z_type == ZBC_ZTYPE_CNV;
2745 static inline bool zbc_zone_is_gap(struct sdeb_zone_state *zsp)
2747 return zsp->z_type == ZBC_ZTYPE_GAP;
2750 static inline bool zbc_zone_is_seq(struct sdeb_zone_state *zsp)
2752 return !zbc_zone_is_conv(zsp) && !zbc_zone_is_gap(zsp);
2756 struct sdeb_zone_state *zsp)
2760 if (!zbc_zone_is_seq(zsp))
2763 zc = zsp->z_cond;
2772 if (zsp->z_wp == zsp->z_start) {
2773 zsp->z_cond = ZC1_EMPTY;
2775 zsp->z_cond = ZC4_CLOSED;
2782 struct sdeb_zone_state *zsp = &devip->zstate[0];
2785 for (i = 0; i < devip->nr_zones; i++, zsp++) {
2786 if (zsp->z_cond == ZC2_IMPLICIT_OPEN) {
2787 zbc_close_zone(devip, zsp);
2794 struct sdeb_zone_state *zsp, bool explicit)
2798 if (!zbc_zone_is_seq(zsp))
2801 zc = zsp->z_cond;
2807 if (explicit && zsp->z_cond == ZC2_IMPLICIT_OPEN)
2808 zbc_close_zone(devip, zsp);
2813 if (zsp->z_cond == ZC4_CLOSED)
2816 zsp->z_cond = ZC3_EXPLICIT_OPEN;
2819 zsp->z_cond = ZC2_IMPLICIT_OPEN;
2825 struct sdeb_zone_state *zsp)
2827 switch (zsp->z_cond) {
2836 zsp->z_start, zsp->z_cond);
2839 zsp->z_cond = ZC5_FULL;
2845 struct sdeb_zone_state *zsp = zbc_zone(devip, lba);
2846 unsigned long long n, end, zend = zsp->z_start + zsp->z_size;
2848 if (!zbc_zone_is_seq(zsp))
2851 if (zsp->z_type == ZBC_ZTYPE_SWR) {
2852 zsp->z_wp += num;
2853 if (zsp->z_wp >= zend)
2854 zbc_set_zone_full(devip, zsp);
2859 if (lba != zsp->z_wp)
2860 zsp->z_non_seq_resource = true;
2865 zsp->z_wp = zend;
2866 } else if (end > zsp->z_wp) {
2868 zsp->z_wp = end;
2872 if (zsp->z_wp >= zend)
2873 zbc_set_zone_full(devip, zsp);
2878 zsp++;
2879 zend = zsp->z_start + zsp->z_size;
2889 struct sdeb_zone_state *zsp = zbc_zone(devip, lba);
2896 if (zsp->z_type != zsp_end->z_type) {
2906 if (zbc_zone_is_gap(zsp)) {
2913 if (zbc_zone_is_conv(zsp)) {
2923 if (zsp->z_type == ZBC_ZTYPE_SWR) {
2925 if (zsp_end != zsp) {
2932 if (zsp->z_cond == ZC5_FULL) {
2938 if (lba != zsp->z_wp) {
2947 if (zsp->z_cond == ZC1_EMPTY || zsp->z_cond == ZC4_CLOSED) {
2955 zbc_open_zone(devip, zsp, false);
4474 struct sdeb_zone_state *zsp = NULL;
4506 lba = zsp->z_start + zsp->z_size) {
4507 if (WARN_ONCE(zbc_zone(devip, lba) == zsp, "lba = %llu\n", lba))
4509 zsp = zbc_zone(devip, lba);
4516 if (zsp->z_cond != ZC1_EMPTY)
4521 if (zsp->z_cond != ZC2_IMPLICIT_OPEN)
4526 if (zsp->z_cond != ZC3_EXPLICIT_OPEN)
4531 if (zsp->z_cond != ZC4_CLOSED)
4536 if (zsp->z_cond != ZC5_FULL)
4549 if (!zsp->z_non_seq_resource)
4554 if (zbc_zone_is_gap(zsp))
4559 if (zbc_zone_is_seq(zsp))
4571 desc[0] = zsp->z_type;
4572 desc[1] = zsp->z_cond << 4;
4573 if (zsp->z_non_seq_resource)
4575 put_unaligned_be64((u64)zsp->z_size, desc + 8);
4576 put_unaligned_be64((u64)zsp->z_start, desc + 16);
4577 put_unaligned_be64((u64)zsp->z_wp, desc + 24);
4608 struct sdeb_zone_state *zsp = &devip->zstate[0];
4611 for (i = 0; i < devip->nr_zones; i++, zsp++) {
4612 if (zsp->z_cond == ZC4_CLOSED)
4623 struct sdeb_zone_state *zsp;
4656 zsp = zbc_zone(devip, z_id);
4657 if (z_id != zsp->z_start) {
4662 if (zbc_zone_is_conv(zsp)) {
4668 zc = zsp->z_cond;
4679 zbc_open_zone(devip, zsp, true);
4699 struct sdeb_zone_state *zsp;
4723 zsp = zbc_zone(devip, z_id);
4724 if (z_id != zsp->z_start) {
4729 if (zbc_zone_is_conv(zsp)) {
4735 zbc_close_zone(devip, zsp);
4742 struct sdeb_zone_state *zsp, bool empty)
4744 enum sdebug_z_cond zc = zsp->z_cond;
4749 zbc_close_zone(devip, zsp);
4750 if (zsp->z_cond == ZC4_CLOSED)
4752 zsp->z_wp = zsp->z_start + zsp->z_size;
4753 zsp->z_cond = ZC5_FULL;
4768 struct sdeb_zone_state *zsp;
4795 zsp = zbc_zone(devip, z_id);
4796 if (z_id != zsp->z_start) {
4801 if (zbc_zone_is_conv(zsp)) {
4807 zbc_finish_zone(devip, zsp, true);
4814 struct sdeb_zone_state *zsp)
4819 if (!zbc_zone_is_seq(zsp))
4822 zc = zsp->z_cond;
4824 zbc_close_zone(devip, zsp);
4826 if (zsp->z_cond == ZC4_CLOSED)
4829 if (zsp->z_wp > zsp->z_start)
4830 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0,
4831 (zsp->z_wp - zsp->z_start) * sdebug_sector_size);
4833 zsp->z_non_seq_resource = false;
4834 zsp->z_wp = zsp->z_start;
4835 zsp->z_cond = ZC1_EMPTY;
4848 struct sdeb_zone_state *zsp;
4874 zsp = zbc_zone(devip, z_id);
4875 if (z_id != zsp->z_start) {
4880 if (zbc_zone_is_conv(zsp)) {
4886 zbc_rwp_zone(devip, zsp);
4959 struct sdeb_zone_state *zsp;
5035 zsp = &devip->zstate[i];
5037 zsp->z_start = zstart;
5040 zsp->z_type = ZBC_ZTYPE_CNV;
5041 zsp->z_cond = ZBC_NOT_WRITE_POINTER;
5042 zsp->z_wp = (sector_t)-1;
5043 zsp->z_size =
5047 zsp->z_type = ZBC_ZTYPE_SWR;
5049 zsp->z_type = ZBC_ZTYPE_SWP;
5050 zsp->z_cond = ZC1_EMPTY;
5051 zsp->z_wp = zsp->z_start;
5052 zsp->z_size =
5055 zsp->z_type = ZBC_ZTYPE_GAP;
5056 zsp->z_cond = ZBC_NOT_WRITE_POINTER;
5057 zsp->z_wp = (sector_t)-1;
5058 zsp->z_size = min_t(u64, devip->zsize - devip->zcap,
5062 WARN_ON_ONCE((int)zsp->z_size <= 0);
5063 zstart += zsp->z_size;