Lines Matching refs:zi
36 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_account_active() local
38 lockdep_assert_held(&zi->i_truncate_mutex); in zonefs_account_active()
40 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_account_active()
47 if (zi->i_flags & (ZONEFS_ZONE_OFFLINE | ZONEFS_ZONE_READONLY)) in zonefs_account_active()
54 if ((zi->i_flags & ZONEFS_ZONE_OPEN) || in zonefs_account_active()
55 (zi->i_wpoffset > 0 && zi->i_wpoffset < zi->i_max_size)) { in zonefs_account_active()
56 if (!(zi->i_flags & ZONEFS_ZONE_ACTIVE)) { in zonefs_account_active()
57 zi->i_flags |= ZONEFS_ZONE_ACTIVE; in zonefs_account_active()
65 if (zi->i_flags & ZONEFS_ZONE_ACTIVE) { in zonefs_account_active()
66 zi->i_flags &= ~ZONEFS_ZONE_ACTIVE; in zonefs_account_active()
73 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_zone_mgmt() local
76 lockdep_assert_held(&zi->i_truncate_mutex); in zonefs_zone_mgmt()
86 if (op == REQ_OP_ZONE_CLOSE && !zi->i_wpoffset) in zonefs_zone_mgmt()
90 ret = blkdev_zone_mgmt(inode->i_sb->s_bdev, op, zi->i_zsector, in zonefs_zone_mgmt()
91 zi->i_zone_size >> SECTOR_SHIFT, GFP_NOFS); in zonefs_zone_mgmt()
95 blk_op_str(op), zi->i_zsector, ret); in zonefs_zone_mgmt()
104 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_i_size_write() local
111 if (isize >= zi->i_max_size) { in zonefs_i_size_write()
114 if (zi->i_flags & ZONEFS_ZONE_ACTIVE) in zonefs_i_size_write()
116 zi->i_flags &= ~(ZONEFS_ZONE_OPEN | ZONEFS_ZONE_ACTIVE); in zonefs_i_size_write()
124 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_read_iomap_begin() local
132 mutex_lock(&zi->i_truncate_mutex); in zonefs_read_iomap_begin()
142 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; in zonefs_read_iomap_begin()
145 mutex_unlock(&zi->i_truncate_mutex); in zonefs_read_iomap_begin()
160 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_iomap_begin() local
165 if (WARN_ON_ONCE(offset + length > zi->i_max_size)) in zonefs_write_iomap_begin()
173 if (WARN_ON_ONCE(zi->i_ztype == ZONEFS_ZTYPE_SEQ && in zonefs_write_iomap_begin()
182 mutex_lock(&zi->i_truncate_mutex); in zonefs_write_iomap_begin()
185 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; in zonefs_write_iomap_begin()
189 iomap->length = zi->i_max_size - iomap->offset; in zonefs_write_iomap_begin()
194 mutex_unlock(&zi->i_truncate_mutex); in zonefs_write_iomap_begin()
222 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_map_blocks() local
224 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) in zonefs_write_map_blocks()
234 return zonefs_write_iomap_begin(inode, offset, zi->i_max_size - offset, in zonefs_write_map_blocks()
254 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_swap_activate() local
256 if (zi->i_ztype != ZONEFS_ZTYPE_CNV) { in zonefs_swap_activate()
321 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_check_zone_condition() local
335 zi->i_flags |= ZONEFS_ZONE_OFFLINE; in zonefs_check_zone_condition()
354 zi->i_flags |= ZONEFS_ZONE_OFFLINE; in zonefs_check_zone_condition()
357 zi->i_flags |= ZONEFS_ZONE_READONLY; in zonefs_check_zone_condition()
362 return zi->i_max_size; in zonefs_check_zone_condition()
364 if (zi->i_ztype == ZONEFS_ZTYPE_CNV) in zonefs_check_zone_condition()
365 return zi->i_max_size; in zonefs_check_zone_condition()
380 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_io_error_cb() local
417 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && isize != data_size) in zonefs_io_error_cb()
456 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_io_error_cb()
473 zi->i_wpoffset = data_size; in zonefs_io_error_cb()
488 struct zonefs_inode_info *zi = ZONEFS_I(inode); in __zonefs_io_error() local
504 if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev)) in __zonefs_io_error()
505 nr_zones = zi->i_zone_size >> in __zonefs_io_error()
517 ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, nr_zones, in __zonefs_io_error()
527 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_io_error() local
529 mutex_lock(&zi->i_truncate_mutex); in zonefs_io_error()
531 mutex_unlock(&zi->i_truncate_mutex); in zonefs_io_error()
536 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_truncate() local
546 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_file_truncate()
551 else if (isize == zi->i_max_size) in zonefs_file_truncate()
562 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_truncate()
576 if (zi->i_flags & ZONEFS_ZONE_OPEN) { in zonefs_file_truncate()
588 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_file_truncate()
593 zi->i_wpoffset = isize; in zonefs_file_truncate()
597 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_truncate()
676 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_filemap_page_mkwrite() local
686 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) in zonefs_filemap_page_mkwrite()
741 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_write_dio_end_io() local
748 if (size && zi->i_ztype != ZONEFS_ZTYPE_CNV) { in zonefs_file_write_dio_end_io()
756 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_write_dio_end_io()
761 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_write_dio_end_io()
774 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_append() local
791 bio->bi_iter.bi_sector = zi->i_zsector; in zonefs_file_dio_append()
831 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_check_limits() local
833 loff_t max_size = zi->i_max_size; in zonefs_write_check_limits()
856 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_checks() local
869 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_write_checks()
871 mutex_lock(&zi->i_truncate_mutex); in zonefs_write_checks()
872 iocb->ki_pos = zi->i_wpoffset; in zonefs_write_checks()
873 mutex_unlock(&zi->i_truncate_mutex); in zonefs_write_checks()
898 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_write() local
909 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && !sync && in zonefs_file_dio_write()
932 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ) { in zonefs_file_dio_write()
933 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
934 if (iocb->ki_pos != zi->i_wpoffset) { in zonefs_file_dio_write()
935 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
939 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
948 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && in zonefs_file_dio_write()
958 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
959 zi->i_wpoffset += count; in zonefs_file_dio_write()
961 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
974 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_buffered_write() local
981 if (zi->i_ztype != ZONEFS_ZTYPE_CNV) in zonefs_file_buffered_write()
1050 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_read_iter() local
1059 if (iocb->ki_pos >= zi->i_max_size) in zonefs_file_read_iter()
1070 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
1073 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
1078 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
1108 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_seq_file_need_wro() local
1110 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_seq_file_need_wro()
1121 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_seq_file_write_open() local
1124 mutex_lock(&zi->i_truncate_mutex); in zonefs_seq_file_write_open()
1126 if (!zi->i_wr_refcnt) { in zonefs_seq_file_write_open()
1139 if (i_size_read(inode) < zi->i_max_size) { in zonefs_seq_file_write_open()
1145 zi->i_flags |= ZONEFS_ZONE_OPEN; in zonefs_seq_file_write_open()
1151 zi->i_wr_refcnt++; in zonefs_seq_file_write_open()
1154 mutex_unlock(&zi->i_truncate_mutex); in zonefs_seq_file_write_open()
1175 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_seq_file_write_close() local
1180 mutex_lock(&zi->i_truncate_mutex); in zonefs_seq_file_write_close()
1182 zi->i_wr_refcnt--; in zonefs_seq_file_write_close()
1183 if (zi->i_wr_refcnt) in zonefs_seq_file_write_close()
1191 if (zi->i_flags & ZONEFS_ZONE_OPEN) { in zonefs_seq_file_write_close()
1201 if (zi->i_flags & ZONEFS_ZONE_OPEN && in zonefs_seq_file_write_close()
1205 zi->i_zsector, ret); in zonefs_seq_file_write_close()
1213 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_seq_file_write_close()
1220 mutex_unlock(&zi->i_truncate_mutex); in zonefs_seq_file_write_close()
1254 struct zonefs_inode_info *zi; in zonefs_alloc_inode() local
1256 zi = alloc_inode_sb(sb, zonefs_inode_cachep, GFP_KERNEL); in zonefs_alloc_inode()
1257 if (!zi) in zonefs_alloc_inode()
1260 inode_init_once(&zi->i_vnode); in zonefs_alloc_inode()
1261 mutex_init(&zi->i_truncate_mutex); in zonefs_alloc_inode()
1262 zi->i_wr_refcnt = 0; in zonefs_alloc_inode()
1263 zi->i_flags = 0; in zonefs_alloc_inode()
1265 return &zi->i_vnode; in zonefs_alloc_inode()
1420 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_init_file_inode() local
1426 zi->i_ztype = type; in zonefs_init_file_inode()
1427 zi->i_zsector = zone->start; in zonefs_init_file_inode()
1428 zi->i_zone_size = zone->len << SECTOR_SHIFT; in zonefs_init_file_inode()
1429 if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT && in zonefs_init_file_inode()
1433 zi->i_zone_size, in zonefs_init_file_inode()
1438 zi->i_max_size = min_t(loff_t, MAX_LFS_FILESIZE, in zonefs_init_file_inode()
1440 zi->i_wpoffset = zonefs_check_zone_condition(inode, zone, true, true); in zonefs_init_file_inode()
1444 inode->i_size = zi->i_wpoffset; in zonefs_init_file_inode()
1445 inode->i_blocks = zi->i_max_size >> SECTOR_SHIFT; in zonefs_init_file_inode()
1451 sb->s_maxbytes = max(zi->i_max_size, sb->s_maxbytes); in zonefs_init_file_inode()
1452 sbi->s_blocks += zi->i_max_size >> sb->s_blocksize_bits; in zonefs_init_file_inode()
1453 sbi->s_used_blocks += zi->i_wpoffset >> sb->s_blocksize_bits; in zonefs_init_file_inode()
1455 mutex_lock(&zi->i_truncate_mutex); in zonefs_init_file_inode()
1474 mutex_unlock(&zi->i_truncate_mutex); in zonefs_init_file_inode()