Lines Matching defs:zi

30 	struct zonefs_inode_info *zi = ZONEFS_I(inode);
33 lockdep_assert_held(&zi->i_truncate_mutex);
43 if (op == REQ_OP_ZONE_CLOSE && !zi->i_wpoffset)
46 ret = blkdev_zone_mgmt(inode->i_sb->s_bdev, op, zi->i_zsector,
47 zi->i_zone_size >> SECTOR_SHIFT, GFP_NOFS);
51 blk_op_str(op), zi->i_zsector, ret);
60 struct zonefs_inode_info *zi = ZONEFS_I(inode);
67 if (isize >= zi->i_max_size)
68 zi->i_flags &= ~ZONEFS_ZONE_OPEN;
75 struct zonefs_inode_info *zi = ZONEFS_I(inode);
83 mutex_lock(&zi->i_truncate_mutex);
93 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset;
96 mutex_unlock(&zi->i_truncate_mutex);
109 struct zonefs_inode_info *zi = ZONEFS_I(inode);
114 if (WARN_ON_ONCE(offset + length > zi->i_max_size))
122 if (WARN_ON_ONCE(zi->i_ztype == ZONEFS_ZTYPE_SEQ &&
131 mutex_lock(&zi->i_truncate_mutex);
134 iomap->addr = (zi->i_zsector << SECTOR_SHIFT) + iomap->offset;
138 iomap->length = zi->i_max_size - iomap->offset;
143 mutex_unlock(&zi->i_truncate_mutex);
169 struct zonefs_inode_info *zi = ZONEFS_I(inode);
171 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV))
181 return zonefs_write_iomap_begin(inode, offset, zi->i_max_size - offset,
208 struct zonefs_inode_info *zi = ZONEFS_I(inode);
210 if (zi->i_ztype != ZONEFS_ZTYPE_CNV) {
276 struct zonefs_inode_info *zi = ZONEFS_I(inode);
314 return zi->i_max_size;
316 if (zi->i_ztype == ZONEFS_ZTYPE_CNV)
317 return zi->i_max_size;
332 struct zonefs_inode_info *zi = ZONEFS_I(inode);
369 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && isize != data_size)
412 zi->i_flags &= ~ZONEFS_ZONE_OPEN;
429 zi->i_wpoffset = data_size;
443 struct zonefs_inode_info *zi = ZONEFS_I(inode);
459 if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev))
460 nr_zones = zi->i_zone_size >>
472 ret = blkdev_report_zones(sb->s_bdev, zi->i_zsector, nr_zones,
482 struct zonefs_inode_info *zi = ZONEFS_I(inode);
484 mutex_lock(&zi->i_truncate_mutex);
486 mutex_unlock(&zi->i_truncate_mutex);
491 struct zonefs_inode_info *zi = ZONEFS_I(inode);
501 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ)
506 else if (isize == zi->i_max_size)
514 down_write(&zi->i_mmap_sem);
517 mutex_lock(&zi->i_truncate_mutex);
531 if (zi->i_flags & ZONEFS_ZONE_OPEN) {
543 zi->i_flags &= ~ZONEFS_ZONE_OPEN;
548 zi->i_wpoffset = isize;
551 mutex_unlock(&zi->i_truncate_mutex);
552 up_write(&zi->i_mmap_sem);
628 struct zonefs_inode_info *zi = ZONEFS_I(file_inode(vmf->vma->vm_file));
631 down_read(&zi->i_mmap_sem);
633 up_read(&zi->i_mmap_sem);
641 struct zonefs_inode_info *zi = ZONEFS_I(inode);
651 if (WARN_ON_ONCE(zi->i_ztype != ZONEFS_ZTYPE_CNV))
658 down_read(&zi->i_mmap_sem);
660 up_read(&zi->i_mmap_sem);
706 struct zonefs_inode_info *zi = ZONEFS_I(inode);
713 if (size && zi->i_ztype != ZONEFS_ZTYPE_CNV) {
721 mutex_lock(&zi->i_truncate_mutex);
726 mutex_unlock(&zi->i_truncate_mutex);
739 struct zonefs_inode_info *zi = ZONEFS_I(inode);
760 bio->bi_iter.bi_sector = zi->i_zsector;
783 * we intended to, that is, at zi->i_wpoffset.
787 zi->i_zsector + (zi->i_wpoffset >> SECTOR_SHIFT);
792 bio->bi_iter.bi_sector, zi->i_zsector);
819 struct zonefs_inode_info *zi = ZONEFS_I(inode);
821 loff_t max_size = zi->i_max_size;
844 struct zonefs_inode_info *zi = ZONEFS_I(inode);
857 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ)
859 mutex_lock(&zi->i_truncate_mutex);
860 iocb->ki_pos = zi->i_wpoffset;
861 mutex_unlock(&zi->i_truncate_mutex);
886 struct zonefs_inode_info *zi = ZONEFS_I(inode);
897 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ && !sync &&
920 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ) {
921 mutex_lock(&zi->i_truncate_mutex);
922 if (iocb->ki_pos != zi->i_wpoffset) {
923 mutex_unlock(&zi->i_truncate_mutex);
927 mutex_unlock(&zi->i_truncate_mutex);
936 if (zi->i_ztype == ZONEFS_ZTYPE_SEQ &&
940 mutex_lock(&zi->i_truncate_mutex);
941 zi->i_wpoffset += count;
942 mutex_unlock(&zi->i_truncate_mutex);
955 struct zonefs_inode_info *zi = ZONEFS_I(inode);
962 if (zi->i_ztype != ZONEFS_ZTYPE_CNV)
1031 struct zonefs_inode_info *zi = ZONEFS_I(inode);
1040 if (iocb->ki_pos >= zi->i_max_size)
1051 mutex_lock(&zi->i_truncate_mutex);
1054 mutex_unlock(&zi->i_truncate_mutex);
1059 mutex_unlock(&zi->i_truncate_mutex);
1085 struct zonefs_inode_info *zi = ZONEFS_I(inode);
1091 if (zi->i_ztype != ZONEFS_ZTYPE_SEQ)
1102 struct zonefs_inode_info *zi = ZONEFS_I(inode);
1106 mutex_lock(&zi->i_truncate_mutex);
1108 if (!zi->i_wr_refcnt) {
1115 if (i_size_read(inode) < zi->i_max_size) {
1121 zi->i_flags |= ZONEFS_ZONE_OPEN;
1125 zi->i_wr_refcnt++;
1128 mutex_unlock(&zi->i_truncate_mutex);
1149 struct zonefs_inode_info *zi = ZONEFS_I(inode);
1152 mutex_lock(&zi->i_truncate_mutex);
1153 zi->i_wr_refcnt--;
1154 if (!zi->i_wr_refcnt) {
1162 if (!(zi->i_flags & ZONEFS_ZONE_OPEN))
1174 if (zi->i_flags & ZONEFS_ZONE_OPEN &&
1180 zi->i_flags &= ~ZONEFS_ZONE_OPEN;
1184 mutex_unlock(&zi->i_truncate_mutex);
1218 struct zonefs_inode_info *zi;
1220 zi = kmem_cache_alloc(zonefs_inode_cachep, GFP_KERNEL);
1221 if (!zi)
1224 inode_init_once(&zi->i_vnode);
1225 mutex_init(&zi->i_truncate_mutex);
1226 init_rwsem(&zi->i_mmap_sem);
1227 zi->i_wr_refcnt = 0;
1228 zi->i_flags = 0;
1230 return &zi->i_vnode;
1388 struct zonefs_inode_info *zi = ZONEFS_I(inode);
1394 zi->i_ztype = type;
1395 zi->i_zsector = zone->start;
1396 zi->i_zone_size = zone->len << SECTOR_SHIFT;
1397 if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT &&
1401 zi->i_zone_size,
1406 zi->i_max_size = min_t(loff_t, MAX_LFS_FILESIZE,
1408 zi->i_wpoffset = zonefs_check_zone_condition(inode, zone, true, true);
1412 inode->i_size = zi->i_wpoffset;
1413 inode->i_blocks = zi->i_max_size >> SECTOR_SHIFT;
1419 sb->s_maxbytes = max(zi->i_max_size, sb->s_maxbytes);
1420 sbi->s_blocks += zi->i_max_size >> sb->s_blocksize_bits;
1421 sbi->s_used_blocks += zi->i_wpoffset >> sb->s_blocksize_bits;
1432 mutex_lock(&zi->i_truncate_mutex);
1434 mutex_unlock(&zi->i_truncate_mutex);