Lines Matching refs:zi
30 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_zone_mgmt() local
33 lockdep_assert_held(&zi->i_truncate_mutex); in zonefs_zone_mgmt()
43 if (op == REQ_OP_ZONE_CLOSE && !zi->i_wpoffset) in zonefs_zone_mgmt()
46 ret = blkdev_zone_mgmt(inode->i_sb->s_bdev, op, zi->i_zsector, in zonefs_zone_mgmt()
47 zi->i_zone_size >> SECTOR_SHIFT, GFP_NOFS); in zonefs_zone_mgmt()
51 blk_op_str(op), zi->i_zsector, ret); in zonefs_zone_mgmt()
60 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_i_size_write() local
67 if (isize >= zi->i_max_size) in zonefs_i_size_write()
68 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_i_size_write()
75 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_read_iomap_begin() local
83 mutex_lock(&zi->i_truncate_mutex); in zonefs_read_iomap_begin()
93 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; in zonefs_read_iomap_begin()
96 mutex_unlock(&zi->i_truncate_mutex); in zonefs_read_iomap_begin()
109 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_iomap_begin() local
114 if (WARN_ON_ONCE(offset + length > zi->i_max_size)) in zonefs_write_iomap_begin()
122 if (WARN_ON_ONCE(zi->i_ztype == ZONEFS_ZTYPE_SEQ && in zonefs_write_iomap_begin()
131 mutex_lock(&zi->i_truncate_mutex); in zonefs_write_iomap_begin()
134 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; in zonefs_write_iomap_begin()
138 iomap->length = zi->i_max_size - iomap->offset; in zonefs_write_iomap_begin()
143 mutex_unlock(&zi->i_truncate_mutex); in zonefs_write_iomap_begin()
169 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_map_blocks() local
171 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) in zonefs_write_map_blocks()
181 return zonefs_write_iomap_begin(inode, offset, zi->i_max_size - offset, in zonefs_write_map_blocks()
208 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_swap_activate() local
210 if (zi->i_ztype != ZONEFS_ZTYPE_CNV) { in zonefs_swap_activate()
276 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_check_zone_condition() local
314 return zi->i_max_size; in zonefs_check_zone_condition()
316 if (zi->i_ztype == ZONEFS_ZTYPE_CNV) in zonefs_check_zone_condition()
317 return zi->i_max_size; in zonefs_check_zone_condition()
332 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_io_error_cb() local
369 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && isize != data_size) in zonefs_io_error_cb()
408 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_io_error_cb()
425 zi->i_wpoffset = data_size; in zonefs_io_error_cb()
439 struct zonefs_inode_info *zi = ZONEFS_I(inode); in __zonefs_io_error() local
455 if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev)) in __zonefs_io_error()
456 nr_zones = zi->i_zone_size >> in __zonefs_io_error()
468 ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, nr_zones, in __zonefs_io_error()
478 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_io_error() local
480 mutex_lock(&zi->i_truncate_mutex); in zonefs_io_error()
482 mutex_unlock(&zi->i_truncate_mutex); in zonefs_io_error()
487 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_truncate() local
497 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_file_truncate()
502 else if (isize == zi->i_max_size) in zonefs_file_truncate()
510 down_write(&zi->i_mmap_sem); in zonefs_file_truncate()
513 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_truncate()
527 if (zi->i_flags & ZONEFS_ZONE_OPEN) { in zonefs_file_truncate()
539 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_file_truncate()
544 zi->i_wpoffset = isize; in zonefs_file_truncate()
547 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_truncate()
548 up_write(&zi->i_mmap_sem); in zonefs_file_truncate()
624 struct zonefs_inode_info *zi = ZONEFS_I(file_inode(vmf->vma->vm_file)); in zonefs_filemap_fault() local
627 down_read(&zi->i_mmap_sem); in zonefs_filemap_fault()
629 up_read(&zi->i_mmap_sem); in zonefs_filemap_fault()
637 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_filemap_page_mkwrite() local
647 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) in zonefs_filemap_page_mkwrite()
654 down_read(&zi->i_mmap_sem); in zonefs_filemap_page_mkwrite()
656 up_read(&zi->i_mmap_sem); in zonefs_filemap_page_mkwrite()
702 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_write_dio_end_io() local
709 if (size && zi->i_ztype != ZONEFS_ZTYPE_CNV) { in zonefs_file_write_dio_end_io()
717 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_write_dio_end_io()
722 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_write_dio_end_io()
735 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_append() local
756 bio->bi_iter.bi_sector = zi->i_zsector; in zonefs_file_dio_append()
797 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_check_limits() local
799 loff_t max_size = zi->i_max_size; in zonefs_write_check_limits()
822 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_checks() local
835 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_write_checks()
837 mutex_lock(&zi->i_truncate_mutex); in zonefs_write_checks()
838 iocb->ki_pos = zi->i_wpoffset; in zonefs_write_checks()
839 mutex_unlock(&zi->i_truncate_mutex); in zonefs_write_checks()
864 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_write() local
875 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && !sync && in zonefs_file_dio_write()
898 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ) { in zonefs_file_dio_write()
899 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
900 if (iocb->ki_pos != zi->i_wpoffset) { in zonefs_file_dio_write()
901 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
905 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
914 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && in zonefs_file_dio_write()
918 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
919 zi->i_wpoffset += count; in zonefs_file_dio_write()
920 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
933 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_buffered_write() local
940 if (zi->i_ztype != ZONEFS_ZTYPE_CNV) in zonefs_file_buffered_write()
1009 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_read_iter() local
1018 if (iocb->ki_pos >= zi->i_max_size) in zonefs_file_read_iter()
1029 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
1032 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
1037 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
1063 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_use_exp_open() local
1069 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_file_use_exp_open()
1080 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_open_zone() local
1084 mutex_lock(&zi->i_truncate_mutex); in zonefs_open_zone()
1086 if (!zi->i_wr_refcnt) { in zonefs_open_zone()
1093 if (i_size_read(inode) < zi->i_max_size) { in zonefs_open_zone()
1099 zi->i_flags |= ZONEFS_ZONE_OPEN; in zonefs_open_zone()
1103 zi->i_wr_refcnt++; in zonefs_open_zone()
1106 mutex_unlock(&zi->i_truncate_mutex); in zonefs_open_zone()
1127 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_close_zone() local
1130 mutex_lock(&zi->i_truncate_mutex); in zonefs_close_zone()
1131 zi->i_wr_refcnt--; in zonefs_close_zone()
1132 if (!zi->i_wr_refcnt) { in zonefs_close_zone()
1140 if (!(zi->i_flags & ZONEFS_ZONE_OPEN)) in zonefs_close_zone()
1152 if (zi->i_flags & ZONEFS_ZONE_OPEN && in zonefs_close_zone()
1158 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_close_zone()
1162 mutex_unlock(&zi->i_truncate_mutex); in zonefs_close_zone()
1196 struct zonefs_inode_info *zi; in zonefs_alloc_inode() local
1198 zi = kmem_cache_alloc(zonefs_inode_cachep, GFP_KERNEL); in zonefs_alloc_inode()
1199 if (!zi) in zonefs_alloc_inode()
1202 inode_init_once(&zi->i_vnode); in zonefs_alloc_inode()
1203 mutex_init(&zi->i_truncate_mutex); in zonefs_alloc_inode()
1204 init_rwsem(&zi->i_mmap_sem); in zonefs_alloc_inode()
1205 zi->i_wr_refcnt = 0; in zonefs_alloc_inode()
1206 zi->i_flags = 0; in zonefs_alloc_inode()
1208 return &zi->i_vnode; in zonefs_alloc_inode()
1366 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_init_file_inode() local
1372 zi->i_ztype = type; in zonefs_init_file_inode()
1373 zi->i_zsector = zone->start; in zonefs_init_file_inode()
1374 zi->i_zone_size = zone->len << SECTOR_SHIFT; in zonefs_init_file_inode()
1375 if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT && in zonefs_init_file_inode()
1379 zi->i_zone_size, in zonefs_init_file_inode()
1384 zi->i_max_size = min_t(loff_t, MAX_LFS_FILESIZE, in zonefs_init_file_inode()
1386 zi->i_wpoffset = zonefs_check_zone_condition(inode, zone, true, true); in zonefs_init_file_inode()
1390 inode->i_size = zi->i_wpoffset; in zonefs_init_file_inode()
1391 inode->i_blocks = zi->i_max_size >> SECTOR_SHIFT; in zonefs_init_file_inode()
1397 sb->s_maxbytes = max(zi->i_max_size, sb->s_maxbytes); in zonefs_init_file_inode()
1398 sbi->s_blocks += zi->i_max_size >> sb->s_blocksize_bits; in zonefs_init_file_inode()
1399 sbi->s_used_blocks += zi->i_wpoffset >> sb->s_blocksize_bits; in zonefs_init_file_inode()
1410 mutex_lock(&zi->i_truncate_mutex); in zonefs_init_file_inode()
1412 mutex_unlock(&zi->i_truncate_mutex); in zonefs_init_file_inode()