aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/inode.c')
-rw-r--r--fs/ext4/inode.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index fc8c0ce84315..f44307a21136 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -973,6 +973,7 @@ static int ext4_ind_map_blocks(handle_t *handle, struct inode *inode,
973 int count = 0; 973 int count = 0;
974 ext4_fsblk_t first_block = 0; 974 ext4_fsblk_t first_block = 0;
975 975
976 trace_ext4_ind_map_blocks_enter(inode, map->m_lblk, map->m_len, flags);
976 J_ASSERT(!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))); 977 J_ASSERT(!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)));
977 J_ASSERT(handle != NULL || (flags & EXT4_GET_BLOCKS_CREATE) == 0); 978 J_ASSERT(handle != NULL || (flags & EXT4_GET_BLOCKS_CREATE) == 0);
978 depth = ext4_block_to_path(inode, map->m_lblk, offsets, 979 depth = ext4_block_to_path(inode, map->m_lblk, offsets,
@@ -1058,6 +1059,8 @@ cleanup:
1058 partial--; 1059 partial--;
1059 } 1060 }
1060out: 1061out:
1062 trace_ext4_ind_map_blocks_exit(inode, map->m_lblk,
1063 map->m_pblk, map->m_len, err);
1061 return err; 1064 return err;
1062} 1065}
1063 1066
@@ -3379,6 +3382,7 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block)
3379 3382
3380static int ext4_readpage(struct file *file, struct page *page) 3383static int ext4_readpage(struct file *file, struct page *page)
3381{ 3384{
3385 trace_ext4_readpage(page);
3382 return mpage_readpage(page, ext4_get_block); 3386 return mpage_readpage(page, ext4_get_block);
3383} 3387}
3384 3388
@@ -3413,6 +3417,8 @@ static void ext4_invalidatepage(struct page *page, unsigned long offset)
3413{ 3417{
3414 journal_t *journal = EXT4_JOURNAL(page->mapping->host); 3418 journal_t *journal = EXT4_JOURNAL(page->mapping->host);
3415 3419
3420 trace_ext4_invalidatepage(page, offset);
3421
3416 /* 3422 /*
3417 * free any io_end structure allocated for buffers to be discarded 3423 * free any io_end structure allocated for buffers to be discarded
3418 */ 3424 */
@@ -3434,6 +3440,8 @@ static int ext4_releasepage(struct page *page, gfp_t wait)
3434{ 3440{
3435 journal_t *journal = EXT4_JOURNAL(page->mapping->host); 3441 journal_t *journal = EXT4_JOURNAL(page->mapping->host);
3436 3442
3443 trace_ext4_releasepage(page);
3444
3437 WARN_ON(PageChecked(page)); 3445 WARN_ON(PageChecked(page));
3438 if (!page_has_buffers(page)) 3446 if (!page_has_buffers(page))
3439 return 0; 3447 return 0;
@@ -3792,11 +3800,16 @@ static ssize_t ext4_direct_IO(int rw, struct kiocb *iocb,
3792{ 3800{
3793 struct file *file = iocb->ki_filp; 3801 struct file *file = iocb->ki_filp;
3794 struct inode *inode = file->f_mapping->host; 3802 struct inode *inode = file->f_mapping->host;
3803 ssize_t ret;
3795 3804
3805 trace_ext4_direct_IO_enter(inode, offset, iov_length(iov, nr_segs), rw);
3796 if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) 3806 if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))
3797 return ext4_ext_direct_IO(rw, iocb, iov, offset, nr_segs); 3807 ret = ext4_ext_direct_IO(rw, iocb, iov, offset, nr_segs);
3798 3808 else
3799 return ext4_ind_direct_IO(rw, iocb, iov, offset, nr_segs); 3809 ret = ext4_ind_direct_IO(rw, iocb, iov, offset, nr_segs);
3810 trace_ext4_direct_IO_exit(inode, offset,
3811 iov_length(iov, nr_segs), rw, ret);
3812 return ret;
3800} 3813}
3801 3814
3802/* 3815/*
@@ -4425,6 +4438,8 @@ void ext4_truncate(struct inode *inode)
4425 ext4_lblk_t last_block; 4438 ext4_lblk_t last_block;
4426 unsigned blocksize = inode->i_sb->s_blocksize; 4439 unsigned blocksize = inode->i_sb->s_blocksize;
4427 4440
4441 trace_ext4_truncate_enter(inode);
4442
4428 if (!ext4_can_truncate(inode)) 4443 if (!ext4_can_truncate(inode))
4429 return; 4444 return;
4430 4445
@@ -4435,6 +4450,7 @@ void ext4_truncate(struct inode *inode)
4435 4450
4436 if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) { 4451 if (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS)) {
4437 ext4_ext_truncate(inode); 4452 ext4_ext_truncate(inode);
4453 trace_ext4_truncate_exit(inode);
4438 return; 4454 return;
4439 } 4455 }
4440 4456
@@ -4564,6 +4580,7 @@ out_stop:
4564 ext4_orphan_del(handle, inode); 4580 ext4_orphan_del(handle, inode);
4565 4581
4566 ext4_journal_stop(handle); 4582 ext4_journal_stop(handle);
4583 trace_ext4_truncate_exit(inode);
4567} 4584}
4568 4585
4569/* 4586/*
@@ -4695,6 +4712,7 @@ make_io:
4695 * has in-inode xattrs, or we don't have this inode in memory. 4712 * has in-inode xattrs, or we don't have this inode in memory.
4696 * Read the block from disk. 4713 * Read the block from disk.
4697 */ 4714 */
4715 trace_ext4_load_inode(inode);
4698 get_bh(bh); 4716 get_bh(bh);
4699 bh->b_end_io = end_buffer_read_sync; 4717 bh->b_end_io = end_buffer_read_sync;
4700 submit_bh(READ_META, bh); 4718 submit_bh(READ_META, bh);