Lines Matching refs:zone
281 struct blk_zone *zone, bool warn, in zonefs_check_zone_condition() argument
286 switch (zone->cond) { in zonefs_check_zone_condition()
297 zone->wp = zone->start; in zonefs_check_zone_condition()
313 zone->cond = BLK_ZONE_COND_OFFLINE; in zonefs_check_zone_condition()
315 zone->wp = zone->start; in zonefs_check_zone_condition()
326 return (zone->wp - zone->start) << SECTOR_SHIFT; in zonefs_check_zone_condition()
335 static int zonefs_io_error_cb(struct blk_zone *zone, unsigned int idx, in zonefs_io_error_cb() argument
351 data_size = zonefs_check_zone_condition(inode, zone, true, false); in zonefs_io_error_cb()
353 if (zone->cond != BLK_ZONE_COND_OFFLINE && in zonefs_io_error_cb()
354 zone->cond != BLK_ZONE_COND_READONLY && in zonefs_io_error_cb()
387 if (zone->cond == BLK_ZONE_COND_OFFLINE || in zonefs_io_error_cb()
391 if (zone->cond != BLK_ZONE_COND_OFFLINE) { in zonefs_io_error_cb()
392 zone->cond = BLK_ZONE_COND_OFFLINE; in zonefs_io_error_cb()
393 data_size = zonefs_check_zone_condition(inode, zone, in zonefs_io_error_cb()
396 } else if (zone->cond == BLK_ZONE_COND_READONLY || in zonefs_io_error_cb()
400 if (zone->cond != BLK_ZONE_COND_READONLY) { in zonefs_io_error_cb()
401 zone->cond = BLK_ZONE_COND_READONLY; in zonefs_io_error_cb()
402 data_size = zonefs_check_zone_condition(inode, zone, in zonefs_io_error_cb()
418 (zone->cond == BLK_ZONE_COND_OFFLINE || in zonefs_io_error_cb()
419 zone->cond == BLK_ZONE_COND_READONLY)) in zonefs_io_error_cb()
1387 static int zonefs_init_file_inode(struct inode *inode, struct blk_zone *zone, in zonefs_init_file_inode() argument
1395 inode->i_ino = zone->start >> sbi->s_zone_sectors_shift; in zonefs_init_file_inode()
1399 zi->i_zsector = zone->start; in zonefs_init_file_inode()
1400 zi->i_zone_size = zone->len << SECTOR_SHIFT; in zonefs_init_file_inode()
1411 zone->capacity << SECTOR_SHIFT); in zonefs_init_file_inode()
1412 zi->i_wpoffset = zonefs_check_zone_condition(inode, zone, true, true); in zonefs_init_file_inode()
1434 (zone->cond == BLK_ZONE_COND_IMP_OPEN || in zonefs_init_file_inode()
1435 zone->cond == BLK_ZONE_COND_EXP_OPEN)) { in zonefs_init_file_inode()
1445 const char *name, struct blk_zone *zone, in zonefs_create_inode() argument
1462 if (zone) { in zonefs_create_inode()
1463 ret = zonefs_init_file_inode(inode, zone, type); in zonefs_create_inode()
1497 struct blk_zone *zone, *next, *end; in zonefs_create_zgroup() local
1527 for (zone = &zd->zones[1]; zone < end; zone = next) { in zonefs_create_zgroup()
1529 next = zone + 1; in zonefs_create_zgroup()
1530 if (zonefs_zone_type(zone) != type) in zonefs_create_zgroup()
1546 zone->len += next->len; in zonefs_create_zgroup()
1547 zone->capacity += next->capacity; in zonefs_create_zgroup()
1549 zone->cond != BLK_ZONE_COND_OFFLINE) in zonefs_create_zgroup()
1550 zone->cond = BLK_ZONE_COND_READONLY; in zonefs_create_zgroup()
1552 zone->cond = BLK_ZONE_COND_OFFLINE; in zonefs_create_zgroup()
1554 if (zone->capacity != zone->len) { in zonefs_create_zgroup()
1565 dent = zonefs_create_inode(dir, file_name, zone, type); in zonefs_create_zgroup()
1586 static int zonefs_get_zone_info_cb(struct blk_zone *zone, unsigned int idx, in zonefs_get_zone_info_cb() argument
1595 switch (zone->type) { in zonefs_get_zone_info_cb()
1597 zone->wp = zone->start + zone->len; in zonefs_get_zone_info_cb()
1608 zone->type); in zonefs_get_zone_info_cb()
1612 memcpy(&zd->zones[idx], zone, sizeof(struct blk_zone)); in zonefs_get_zone_info_cb()