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()
35 ret = blkdev_zone_mgmt(inode->i_sb->s_bdev, op, zi->i_zsector, in zonefs_zone_mgmt()
36 zi->i_zone_size >> SECTOR_SHIFT, GFP_NOFS); in zonefs_zone_mgmt()
40 blk_op_str(op), zi->i_zsector, ret); in zonefs_zone_mgmt()
49 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_i_size_write() local
56 if (isize >= zi->i_max_size) in zonefs_i_size_write()
57 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_i_size_write()
64 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_iomap_begin() local
69 if (WARN_ON_ONCE(offset + length > zi->i_max_size)) in zonefs_iomap_begin()
77 if (WARN_ON_ONCE(zi->i_ztype == ZONEFS_ZTYPE_SEQ && in zonefs_iomap_begin()
86 mutex_lock(&zi->i_truncate_mutex); in zonefs_iomap_begin()
93 length = zi->i_max_size - offset; in zonefs_iomap_begin()
96 mutex_unlock(&zi->i_truncate_mutex); in zonefs_iomap_begin()
101 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset; in zonefs_iomap_begin()
127 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_map_blocks() local
129 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) in zonefs_map_blocks()
139 return zonefs_iomap_begin(inode, offset, zi->i_max_size - offset, in zonefs_map_blocks()
217 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_check_zone_condition() local
254 if (zi->i_ztype == ZONEFS_ZTYPE_CNV) in zonefs_check_zone_condition()
255 return zi->i_max_size; in zonefs_check_zone_condition()
270 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_io_error_cb() local
307 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && isize != data_size) in zonefs_io_error_cb()
346 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_io_error_cb()
363 zi->i_wpoffset = data_size; in zonefs_io_error_cb()
377 struct zonefs_inode_info *zi = ZONEFS_I(inode); in __zonefs_io_error() local
382 zi->i_zone_size >> (sbi->s_zone_sectors_shift + SECTOR_SHIFT); in __zonefs_io_error()
398 ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, nr_zones, in __zonefs_io_error()
408 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_io_error() local
410 mutex_lock(&zi->i_truncate_mutex); in zonefs_io_error()
412 mutex_unlock(&zi->i_truncate_mutex); in zonefs_io_error()
417 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_truncate() local
427 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_file_truncate()
432 else if (isize == zi->i_max_size) in zonefs_file_truncate()
440 down_write(&zi->i_mmap_sem); in zonefs_file_truncate()
443 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_truncate()
457 if (zi->i_flags & ZONEFS_ZONE_OPEN) { in zonefs_file_truncate()
469 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_file_truncate()
474 zi->i_wpoffset = isize; in zonefs_file_truncate()
477 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_truncate()
478 up_write(&zi->i_mmap_sem); in zonefs_file_truncate()
554 struct zonefs_inode_info *zi = ZONEFS_I(file_inode(vmf->vma->vm_file)); in zonefs_filemap_fault() local
557 down_read(&zi->i_mmap_sem); in zonefs_filemap_fault()
559 up_read(&zi->i_mmap_sem); in zonefs_filemap_fault()
567 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_filemap_page_mkwrite() local
577 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV)) in zonefs_filemap_page_mkwrite()
584 down_read(&zi->i_mmap_sem); in zonefs_filemap_page_mkwrite()
586 up_read(&zi->i_mmap_sem); in zonefs_filemap_page_mkwrite()
632 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_write_dio_end_io() local
639 if (size && zi->i_ztype != ZONEFS_ZTYPE_CNV) { in zonefs_file_write_dio_end_io()
647 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_write_dio_end_io()
652 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_write_dio_end_io()
665 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_append() local
686 bio->bi_iter.bi_sector = zi->i_zsector; in zonefs_file_dio_append()
732 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_write() local
744 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && !sync && in zonefs_file_dio_write()
759 iov_iter_truncate(from, zi->i_max_size - iocb->ki_pos); in zonefs_file_dio_write()
768 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ) { in zonefs_file_dio_write()
769 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
770 if (iocb->ki_pos != zi->i_wpoffset) { in zonefs_file_dio_write()
771 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
775 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
784 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && in zonefs_file_dio_write()
788 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
789 zi->i_wpoffset += count; in zonefs_file_dio_write()
790 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_dio_write()
803 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_buffered_write() local
810 if (zi->i_ztype != ZONEFS_ZTYPE_CNV) in zonefs_file_buffered_write()
824 iov_iter_truncate(from, zi->i_max_size - iocb->ki_pos); in zonefs_file_buffered_write()
881 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_read_iter() local
890 if (iocb->ki_pos >= zi->i_max_size) in zonefs_file_read_iter()
901 mutex_lock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
904 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
909 mutex_unlock(&zi->i_truncate_mutex); in zonefs_file_read_iter()
935 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_use_exp_open() local
941 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ) in zonefs_file_use_exp_open()
952 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_open_zone() local
956 mutex_lock(&zi->i_truncate_mutex); in zonefs_open_zone()
958 zi->i_wr_refcnt++; in zonefs_open_zone()
959 if (zi->i_wr_refcnt == 1) { in zonefs_open_zone()
967 if (i_size_read(inode) < zi->i_max_size) { in zonefs_open_zone()
970 zi->i_wr_refcnt--; in zonefs_open_zone()
974 zi->i_flags |= ZONEFS_ZONE_OPEN; in zonefs_open_zone()
979 mutex_unlock(&zi->i_truncate_mutex); in zonefs_open_zone()
1000 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_close_zone() local
1003 mutex_lock(&zi->i_truncate_mutex); in zonefs_close_zone()
1004 zi->i_wr_refcnt--; in zonefs_close_zone()
1005 if (!zi->i_wr_refcnt) { in zonefs_close_zone()
1013 if (!(zi->i_flags & ZONEFS_ZONE_OPEN)) in zonefs_close_zone()
1025 if (zi->i_flags & ZONEFS_ZONE_OPEN && in zonefs_close_zone()
1031 zi->i_flags &= ~ZONEFS_ZONE_OPEN; in zonefs_close_zone()
1035 mutex_unlock(&zi->i_truncate_mutex); in zonefs_close_zone()
1069 struct zonefs_inode_info *zi; in zonefs_alloc_inode() local
1071 zi = kmem_cache_alloc(zonefs_inode_cachep, GFP_KERNEL); in zonefs_alloc_inode()
1072 if (!zi) in zonefs_alloc_inode()
1075 inode_init_once(&zi->i_vnode); in zonefs_alloc_inode()
1076 mutex_init(&zi->i_truncate_mutex); in zonefs_alloc_inode()
1077 init_rwsem(&zi->i_mmap_sem); in zonefs_alloc_inode()
1078 zi->i_wr_refcnt = 0; in zonefs_alloc_inode()
1080 return &zi->i_vnode; in zonefs_alloc_inode()
1238 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_init_file_inode() local
1243 zi->i_ztype = type; in zonefs_init_file_inode()
1244 zi->i_zsector = zone->start; in zonefs_init_file_inode()
1245 zi->i_zone_size = zone->len << SECTOR_SHIFT; in zonefs_init_file_inode()
1247 zi->i_max_size = min_t(loff_t, MAX_LFS_FILESIZE, in zonefs_init_file_inode()
1249 zi->i_wpoffset = zonefs_check_zone_condition(inode, zone, true, true); in zonefs_init_file_inode()
1253 inode->i_size = zi->i_wpoffset; in zonefs_init_file_inode()
1254 inode->i_blocks = zi->i_max_size >> SECTOR_SHIFT; in zonefs_init_file_inode()
1260 sb->s_maxbytes = max(zi->i_max_size, sb->s_maxbytes); in zonefs_init_file_inode()
1261 sbi->s_blocks += zi->i_max_size >> sb->s_blocksize_bits; in zonefs_init_file_inode()
1262 sbi->s_used_blocks += zi->i_wpoffset >> sb->s_blocksize_bits; in zonefs_init_file_inode()