Lines Matching refs:inode
27 static int zonefs_read_iomap_begin(struct inode *inode, loff_t offset,
31 struct zonefs_inode_info *zi = ZONEFS_I(inode);
32 struct zonefs_zone *z = zonefs_inode_zone(inode);
33 struct super_block *sb = inode->i_sb;
41 iomap->bdev = inode->i_sb->s_bdev;
43 isize = i_size_read(inode);
55 trace_zonefs_iomap_begin(inode, iomap);
64 static int zonefs_write_iomap_begin(struct inode *inode, loff_t offset,
68 struct zonefs_inode_info *zi = ZONEFS_I(inode);
69 struct zonefs_zone *z = zonefs_inode_zone(inode);
70 struct super_block *sb = inode->i_sb;
87 * zones, all blocks after always mapped below the inode size (zone
91 iomap->bdev = inode->i_sb->s_bdev;
94 isize = i_size_read(inode);
104 trace_zonefs_iomap_begin(inode, iomap);
125 * which implies that the page range can only be within the fixed inode size.
128 struct inode *inode, loff_t offset)
130 struct zonefs_zone *z = zonefs_inode_zone(inode);
134 if (WARN_ON_ONCE(offset >= i_size_read(inode)))
142 return zonefs_write_iomap_begin(inode, offset,
162 struct inode *inode = file_inode(swap_file);
164 if (zonefs_inode_is_seq(inode)) {
165 zonefs_err(inode->i_sb,
187 int zonefs_file_truncate(struct inode *inode, loff_t isize)
189 struct zonefs_inode_info *zi = ZONEFS_I(inode);
190 struct zonefs_zone *z = zonefs_inode_zone(inode);
210 inode_dio_wait(inode);
213 filemap_invalidate_lock(inode->i_mapping);
218 old_isize = i_size_read(inode);
222 ret = zonefs_inode_zone_mgmt(inode, op);
240 ret = zonefs_inode_zone_mgmt(inode, REQ_OP_ZONE_OPEN);
245 zonefs_update_stats(inode, isize);
246 truncate_setsize(inode, isize);
248 zonefs_inode_account_active(inode);
252 filemap_invalidate_unlock(inode->i_mapping);
260 struct inode *inode = file_inode(file);
263 if (unlikely(IS_IMMUTABLE(inode)))
270 if (zonefs_inode_is_cnv(inode))
273 ret = blkdev_issue_flush(inode->i_sb->s_bdev);
276 zonefs_io_error(inode, true);
283 struct inode *inode = file_inode(vmf->vma->vm_file);
286 if (unlikely(IS_IMMUTABLE(inode)))
293 if (zonefs_inode_is_seq(inode))
296 sb_start_pagefault(inode->i_sb);
300 filemap_invalidate_lock_shared(inode->i_mapping);
302 filemap_invalidate_unlock_shared(inode->i_mapping);
304 sb_end_pagefault(inode->i_sb);
339 * cases, this limit is the inode size.
347 struct inode *inode = file_inode(iocb->ki_filp);
348 struct zonefs_inode_info *zi = ZONEFS_I(inode);
356 zonefs_io_error(inode, true);
360 if (size && zonefs_inode_is_seq(inode)) {
365 * were also successful. So we can safely increase the inode
369 if (i_size_read(inode) < iocb->ki_pos + size) {
370 zonefs_update_stats(inode, iocb->ki_pos + size);
371 zonefs_i_size_write(inode, iocb->ki_pos + size);
390 struct inode *inode = file_inode(file);
391 struct zonefs_zone *z = zonefs_inode_zone(inode);
415 struct inode *inode = file_inode(file);
416 struct zonefs_inode_info *zi = ZONEFS_I(inode);
417 struct zonefs_zone *z = zonefs_inode_zone(inode);
420 if (IS_SWAPFILE(inode))
458 struct inode *inode = file_inode(iocb->ki_filp);
459 struct zonefs_inode_info *zi = ZONEFS_I(inode);
460 struct zonefs_zone *z = zonefs_inode_zone(inode);
461 struct super_block *sb = inode->i_sb;
467 * on the inode lock but the second goes through but is now unaligned).
474 if (!inode_trylock(inode))
477 inode_lock(inode);
506 zonefs_inode_account_active(inode);
532 zonefs_io_error(inode, true);
536 inode_unlock(inode);
544 struct inode *inode = file_inode(iocb->ki_filp);
551 if (zonefs_inode_is_seq(inode))
555 if (!inode_trylock(inode))
558 inode_lock(inode);
567 zonefs_io_error(inode, true);
570 inode_unlock(inode);
579 struct inode *inode = file_inode(iocb->ki_filp);
580 struct zonefs_zone *z = zonefs_inode_zone(inode);
582 if (unlikely(IS_IMMUTABLE(inode)))
585 if (sb_rdonly(inode->i_sb))
619 struct inode *inode = file_inode(iocb->ki_filp);
620 struct zonefs_inode_info *zi = ZONEFS_I(inode);
621 struct zonefs_zone *z = zonefs_inode_zone(inode);
622 struct super_block *sb = inode->i_sb;
627 if (unlikely(IS_IMMUTABLE(inode) && !(inode->i_mode & 0777)))
634 if (!inode_trylock_shared(inode))
637 inode_lock_shared(inode);
642 isize = i_size_read(inode);
664 zonefs_io_error(inode, false);
668 inode_unlock_shared(inode);
677 struct inode *inode = file_inode(in);
678 struct zonefs_inode_info *zi = ZONEFS_I(inode);
679 struct zonefs_zone *z = zonefs_inode_zone(inode);
684 if (unlikely(IS_IMMUTABLE(inode) && !(inode->i_mode & 0777)))
690 inode_lock_shared(inode);
694 isize = i_size_read(inode);
704 zonefs_io_error(inode, false);
707 inode_unlock_shared(inode);
714 static inline bool zonefs_seq_file_need_wro(struct inode *inode,
717 if (zonefs_inode_is_cnv(inode))
726 static int zonefs_seq_file_write_open(struct inode *inode)
728 struct zonefs_inode_info *zi = ZONEFS_I(inode);
729 struct zonefs_zone *z = zonefs_inode_zone(inode);
735 struct zonefs_sb_info *sbi = ZONEFS_SB(inode->i_sb);
747 if (i_size_read(inode) < z->z_capacity) {
748 ret = zonefs_inode_zone_mgmt(inode,
755 zonefs_inode_account_active(inode);
768 static int zonefs_file_open(struct inode *inode, struct file *file)
773 ret = generic_file_open(inode, file);
777 if (zonefs_seq_file_need_wro(inode, file))
778 return zonefs_seq_file_write_open(inode);
783 static void zonefs_seq_file_write_close(struct inode *inode)
785 struct zonefs_inode_info *zi = ZONEFS_I(inode);
786 struct zonefs_zone *z = zonefs_inode_zone(inode);
787 struct super_block *sb = inode->i_sb;
803 ret = zonefs_inode_zone_mgmt(inode, REQ_OP_ZONE_CLOSE);
805 __zonefs_io_error(inode, false);
825 zonefs_inode_account_active(inode);
834 static int zonefs_file_release(struct inode *inode, struct file *file)
842 if (zonefs_seq_file_need_wro(inode, file))
843 zonefs_seq_file_write_close(inode);