Lines Matching refs:zsp

3100 	struct sdeb_zone_state *zsp;
3111 zsp = &devip->zstate[zno];
3112 if (lba >= zsp->z_start + zsp->z_size)
3113 zsp++;
3114 WARN_ON_ONCE(lba >= zsp->z_start + zsp->z_size);
3115 return zsp;
3118 static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp)
3120 return zsp->z_type == ZBC_ZTYPE_CNV;
3123 static inline bool zbc_zone_is_gap(struct sdeb_zone_state *zsp)
3125 return zsp->z_type == ZBC_ZTYPE_GAP;
3128 static inline bool zbc_zone_is_seq(struct sdeb_zone_state *zsp)
3130 return !zbc_zone_is_conv(zsp) && !zbc_zone_is_gap(zsp);
3134 struct sdeb_zone_state *zsp)
3138 if (!zbc_zone_is_seq(zsp))
3141 zc = zsp->z_cond;
3150 if (zsp->z_wp == zsp->z_start) {
3151 zsp->z_cond = ZC1_EMPTY;
3153 zsp->z_cond = ZC4_CLOSED;
3160 struct sdeb_zone_state *zsp = &devip->zstate[0];
3163 for (i = 0; i < devip->nr_zones; i++, zsp++) {
3164 if (zsp->z_cond == ZC2_IMPLICIT_OPEN) {
3165 zbc_close_zone(devip, zsp);
3172 struct sdeb_zone_state *zsp, bool explicit)
3176 if (!zbc_zone_is_seq(zsp))
3179 zc = zsp->z_cond;
3185 if (explicit && zsp->z_cond == ZC2_IMPLICIT_OPEN)
3186 zbc_close_zone(devip, zsp);
3191 if (zsp->z_cond == ZC4_CLOSED)
3194 zsp->z_cond = ZC3_EXPLICIT_OPEN;
3197 zsp->z_cond = ZC2_IMPLICIT_OPEN;
3203 struct sdeb_zone_state *zsp)
3205 switch (zsp->z_cond) {
3214 zsp->z_start, zsp->z_cond);
3217 zsp->z_cond = ZC5_FULL;
3223 struct sdeb_zone_state *zsp = zbc_zone(devip, lba);
3224 unsigned long long n, end, zend = zsp->z_start + zsp->z_size;
3226 if (!zbc_zone_is_seq(zsp))
3229 if (zsp->z_type == ZBC_ZTYPE_SWR) {
3230 zsp->z_wp += num;
3231 if (zsp->z_wp >= zend)
3232 zbc_set_zone_full(devip, zsp);
3237 if (lba != zsp->z_wp)
3238 zsp->z_non_seq_resource = true;
3243 zsp->z_wp = zend;
3244 } else if (end > zsp->z_wp) {
3246 zsp->z_wp = end;
3250 if (zsp->z_wp >= zend)
3251 zbc_set_zone_full(devip, zsp);
3256 zsp++;
3257 zend = zsp->z_start + zsp->z_size;
3267 struct sdeb_zone_state *zsp = zbc_zone(devip, lba);
3272 if (zsp->z_type != zsp_end->z_type) {
3282 if (zbc_zone_is_gap(zsp)) {
3289 if (zbc_zone_is_conv(zsp)) {
3299 if (zsp->z_type == ZBC_ZTYPE_SWR) {
3301 if (zsp_end != zsp) {
3308 if (zsp->z_cond == ZC5_FULL) {
3314 if (lba != zsp->z_wp) {
3323 if (zsp->z_cond == ZC1_EMPTY || zsp->z_cond == ZC4_CLOSED) {
3331 zbc_open_zone(devip, zsp, false);
4909 struct sdeb_zone_state *zsp = NULL;
4941 lba = zsp->z_start + zsp->z_size) {
4942 if (WARN_ONCE(zbc_zone(devip, lba) == zsp, "lba = %llu\n", lba))
4944 zsp = zbc_zone(devip, lba);
4951 if (zsp->z_cond != ZC1_EMPTY)
4956 if (zsp->z_cond != ZC2_IMPLICIT_OPEN)
4961 if (zsp->z_cond != ZC3_EXPLICIT_OPEN)
4966 if (zsp->z_cond != ZC4_CLOSED)
4971 if (zsp->z_cond != ZC5_FULL)
4984 if (!zsp->z_non_seq_resource)
4989 if (zbc_zone_is_gap(zsp))
4994 if (zbc_zone_is_seq(zsp))
5006 desc[0] = zsp->z_type;
5007 desc[1] = zsp->z_cond << 4;
5008 if (zsp->z_non_seq_resource)
5010 put_unaligned_be64((u64)zsp->z_size, desc + 8);
5011 put_unaligned_be64((u64)zsp->z_start, desc + 16);
5012 put_unaligned_be64((u64)zsp->z_wp, desc + 24);
5043 struct sdeb_zone_state *zsp = &devip->zstate[0];
5046 for (i = 0; i < devip->nr_zones; i++, zsp++) {
5047 if (zsp->z_cond == ZC4_CLOSED)
5058 struct sdeb_zone_state *zsp;
5091 zsp = zbc_zone(devip, z_id);
5092 if (z_id != zsp->z_start) {
5097 if (zbc_zone_is_conv(zsp)) {
5103 zc = zsp->z_cond;
5114 zbc_open_zone(devip, zsp, true);
5134 struct sdeb_zone_state *zsp;
5158 zsp = zbc_zone(devip, z_id);
5159 if (z_id != zsp->z_start) {
5164 if (zbc_zone_is_conv(zsp)) {
5170 zbc_close_zone(devip, zsp);
5177 struct sdeb_zone_state *zsp, bool empty)
5179 enum sdebug_z_cond zc = zsp->z_cond;
5184 zbc_close_zone(devip, zsp);
5185 if (zsp->z_cond == ZC4_CLOSED)
5187 zsp->z_wp = zsp->z_start + zsp->z_size;
5188 zsp->z_cond = ZC5_FULL;
5203 struct sdeb_zone_state *zsp;
5230 zsp = zbc_zone(devip, z_id);
5231 if (z_id != zsp->z_start) {
5236 if (zbc_zone_is_conv(zsp)) {
5242 zbc_finish_zone(devip, zsp, true);
5249 struct sdeb_zone_state *zsp)
5254 if (!zbc_zone_is_seq(zsp))
5257 zc = zsp->z_cond;
5259 zbc_close_zone(devip, zsp);
5261 if (zsp->z_cond == ZC4_CLOSED)
5264 if (zsp->z_wp > zsp->z_start)
5265 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0,
5266 (zsp->z_wp - zsp->z_start) * sdebug_sector_size);
5268 zsp->z_non_seq_resource = false;
5269 zsp->z_wp = zsp->z_start;
5270 zsp->z_cond = ZC1_EMPTY;
5283 struct sdeb_zone_state *zsp;
5309 zsp = zbc_zone(devip, z_id);
5310 if (z_id != zsp->z_start) {
5315 if (zbc_zone_is_conv(zsp)) {
5321 zbc_rwp_zone(devip, zsp);
5394 struct sdeb_zone_state *zsp;
5470 zsp = &devip->zstate[i];
5472 zsp->z_start = zstart;
5475 zsp->z_type = ZBC_ZTYPE_CNV;
5476 zsp->z_cond = ZBC_NOT_WRITE_POINTER;
5477 zsp->z_wp = (sector_t)-1;
5478 zsp->z_size =
5482 zsp->z_type = ZBC_ZTYPE_SWR;
5484 zsp->z_type = ZBC_ZTYPE_SWP;
5485 zsp->z_cond = ZC1_EMPTY;
5486 zsp->z_wp = zsp->z_start;
5487 zsp->z_size =
5490 zsp->z_type = ZBC_ZTYPE_GAP;
5491 zsp->z_cond = ZBC_NOT_WRITE_POINTER;
5492 zsp->z_wp = (sector_t)-1;
5493 zsp->z_size = min_t(u64, devip->zsize - devip->zcap,
5497 WARN_ON_ONCE((int)zsp->z_size <= 0);
5498 zstart += zsp->z_size;