Lines Matching refs:inode
27 static int zonefs_read_iomap_begin(struct inode *inode, loff_t offset, in zonefs_read_iomap_begin() argument
31 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_read_iomap_begin()
32 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_read_iomap_begin()
33 struct super_block *sb = inode->i_sb; in zonefs_read_iomap_begin()
41 iomap->bdev = inode->i_sb->s_bdev; in zonefs_read_iomap_begin()
43 isize = i_size_read(inode); in zonefs_read_iomap_begin()
55 trace_zonefs_iomap_begin(inode, iomap); in zonefs_read_iomap_begin()
64 static int zonefs_write_iomap_begin(struct inode *inode, loff_t offset, in zonefs_write_iomap_begin() argument
68 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_iomap_begin()
69 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_write_iomap_begin()
70 struct super_block *sb = inode->i_sb; in zonefs_write_iomap_begin()
91 iomap->bdev = inode->i_sb->s_bdev; in zonefs_write_iomap_begin()
94 isize = i_size_read(inode); in zonefs_write_iomap_begin()
104 trace_zonefs_iomap_begin(inode, iomap); in zonefs_write_iomap_begin()
131 struct zonefs_zone *z = zonefs_inode_zone(wpc->inode); in zonefs_writeback_range()
135 if (WARN_ON_ONCE(offset >= i_size_read(wpc->inode))) in zonefs_writeback_range()
143 error = zonefs_write_iomap_begin(wpc->inode, offset, in zonefs_writeback_range()
162 .inode = mapping->host, in zonefs_writepages()
173 struct inode *inode = file_inode(swap_file); in zonefs_swap_activate() local
175 if (zonefs_inode_is_seq(inode)) { in zonefs_swap_activate()
176 zonefs_err(inode->i_sb, in zonefs_swap_activate()
198 int zonefs_file_truncate(struct inode *inode, loff_t isize) in zonefs_file_truncate() argument
200 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_truncate()
201 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_file_truncate()
221 inode_dio_wait(inode); in zonefs_file_truncate()
224 filemap_invalidate_lock(inode->i_mapping); in zonefs_file_truncate()
229 old_isize = i_size_read(inode); in zonefs_file_truncate()
233 ret = zonefs_inode_zone_mgmt(inode, op); in zonefs_file_truncate()
251 ret = zonefs_inode_zone_mgmt(inode, REQ_OP_ZONE_OPEN); in zonefs_file_truncate()
256 zonefs_update_stats(inode, isize); in zonefs_file_truncate()
257 truncate_setsize(inode, isize); in zonefs_file_truncate()
259 zonefs_inode_account_active(inode); in zonefs_file_truncate()
263 filemap_invalidate_unlock(inode->i_mapping); in zonefs_file_truncate()
271 struct inode *inode = file_inode(file); in zonefs_file_fsync() local
274 if (unlikely(IS_IMMUTABLE(inode))) in zonefs_file_fsync()
281 if (zonefs_inode_is_cnv(inode)) in zonefs_file_fsync()
284 ret = blkdev_issue_flush(inode->i_sb->s_bdev); in zonefs_file_fsync()
287 zonefs_io_error(inode, true); in zonefs_file_fsync()
294 struct inode *inode = file_inode(vmf->vma->vm_file); in zonefs_filemap_page_mkwrite() local
297 if (unlikely(IS_IMMUTABLE(inode))) in zonefs_filemap_page_mkwrite()
304 if (zonefs_inode_is_seq(inode)) in zonefs_filemap_page_mkwrite()
307 sb_start_pagefault(inode->i_sb); in zonefs_filemap_page_mkwrite()
311 filemap_invalidate_lock_shared(inode->i_mapping); in zonefs_filemap_page_mkwrite()
313 filemap_invalidate_unlock_shared(inode->i_mapping); in zonefs_filemap_page_mkwrite()
315 sb_end_pagefault(inode->i_sb); in zonefs_filemap_page_mkwrite()
361 struct inode *inode = file_inode(iocb->ki_filp); in zonefs_file_write_dio_end_io() local
362 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_write_dio_end_io()
370 zonefs_io_error(inode, true); in zonefs_file_write_dio_end_io()
374 if (size && zonefs_inode_is_seq(inode)) { in zonefs_file_write_dio_end_io()
383 if (i_size_read(inode) < iocb->ki_pos + size) { in zonefs_file_write_dio_end_io()
384 zonefs_update_stats(inode, iocb->ki_pos + size); in zonefs_file_write_dio_end_io()
385 zonefs_i_size_write(inode, iocb->ki_pos + size); in zonefs_file_write_dio_end_io()
404 struct inode *inode = file_inode(file); in zonefs_write_check_limits() local
405 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_write_check_limits()
429 struct inode *inode = file_inode(file); in zonefs_write_checks() local
430 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_write_checks()
431 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_write_checks()
434 if (IS_SWAPFILE(inode)) in zonefs_write_checks()
472 struct inode *inode = file_inode(iocb->ki_filp); in zonefs_file_dio_write() local
473 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_dio_write()
474 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_file_dio_write()
475 struct super_block *sb = inode->i_sb; in zonefs_file_dio_write()
488 if (!inode_trylock(inode)) in zonefs_file_dio_write()
491 inode_lock(inode); in zonefs_file_dio_write()
520 zonefs_inode_account_active(inode); in zonefs_file_dio_write()
546 zonefs_io_error(inode, true); in zonefs_file_dio_write()
550 inode_unlock(inode); in zonefs_file_dio_write()
558 struct inode *inode = file_inode(iocb->ki_filp); in zonefs_file_buffered_write() local
565 if (zonefs_inode_is_seq(inode)) in zonefs_file_buffered_write()
569 if (!inode_trylock(inode)) in zonefs_file_buffered_write()
572 inode_lock(inode); in zonefs_file_buffered_write()
582 zonefs_io_error(inode, true); in zonefs_file_buffered_write()
585 inode_unlock(inode); in zonefs_file_buffered_write()
594 struct inode *inode = file_inode(iocb->ki_filp); in zonefs_file_write_iter() local
595 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_file_write_iter()
597 if (unlikely(IS_IMMUTABLE(inode))) in zonefs_file_write_iter()
600 if (sb_rdonly(inode->i_sb)) in zonefs_file_write_iter()
634 struct inode *inode = file_inode(iocb->ki_filp); in zonefs_file_read_iter() local
635 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_read_iter()
636 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_file_read_iter()
637 struct super_block *sb = inode->i_sb; in zonefs_file_read_iter()
642 if (unlikely(IS_IMMUTABLE(inode) && !(inode->i_mode & 0777))) in zonefs_file_read_iter()
649 if (!inode_trylock_shared(inode)) in zonefs_file_read_iter()
652 inode_lock_shared(inode); in zonefs_file_read_iter()
657 isize = i_size_read(inode); in zonefs_file_read_iter()
679 zonefs_io_error(inode, false); in zonefs_file_read_iter()
683 inode_unlock_shared(inode); in zonefs_file_read_iter()
692 struct inode *inode = file_inode(in); in zonefs_file_splice_read() local
693 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_file_splice_read()
694 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_file_splice_read()
699 if (unlikely(IS_IMMUTABLE(inode) && !(inode->i_mode & 0777))) in zonefs_file_splice_read()
705 inode_lock_shared(inode); in zonefs_file_splice_read()
709 isize = i_size_read(inode); in zonefs_file_splice_read()
719 zonefs_io_error(inode, false); in zonefs_file_splice_read()
722 inode_unlock_shared(inode); in zonefs_file_splice_read()
729 static inline bool zonefs_seq_file_need_wro(struct inode *inode, in zonefs_seq_file_need_wro() argument
732 if (zonefs_inode_is_cnv(inode)) in zonefs_seq_file_need_wro()
741 static int zonefs_seq_file_write_open(struct inode *inode) in zonefs_seq_file_write_open() argument
743 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_seq_file_write_open()
744 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_seq_file_write_open()
750 struct zonefs_sb_info *sbi = ZONEFS_SB(inode->i_sb); in zonefs_seq_file_write_open()
762 if (i_size_read(inode) < z->z_capacity) { in zonefs_seq_file_write_open()
763 ret = zonefs_inode_zone_mgmt(inode, in zonefs_seq_file_write_open()
770 zonefs_inode_account_active(inode); in zonefs_seq_file_write_open()
783 static int zonefs_file_open(struct inode *inode, struct file *file) in zonefs_file_open() argument
788 ret = generic_file_open(inode, file); in zonefs_file_open()
792 if (zonefs_seq_file_need_wro(inode, file)) in zonefs_file_open()
793 return zonefs_seq_file_write_open(inode); in zonefs_file_open()
798 static void zonefs_seq_file_write_close(struct inode *inode) in zonefs_seq_file_write_close() argument
800 struct zonefs_inode_info *zi = ZONEFS_I(inode); in zonefs_seq_file_write_close()
801 struct zonefs_zone *z = zonefs_inode_zone(inode); in zonefs_seq_file_write_close()
802 struct super_block *sb = inode->i_sb; in zonefs_seq_file_write_close()
818 ret = zonefs_inode_zone_mgmt(inode, REQ_OP_ZONE_CLOSE); in zonefs_seq_file_write_close()
820 __zonefs_io_error(inode, false); in zonefs_seq_file_write_close()
840 zonefs_inode_account_active(inode); in zonefs_seq_file_write_close()
849 static int zonefs_file_release(struct inode *inode, struct file *file) in zonefs_file_release() argument
857 if (zonefs_seq_file_need_wro(inode, file)) in zonefs_file_release()
858 zonefs_seq_file_write_close(inode); in zonefs_file_release()