Loading fs/ext4/ext4.h +15 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,21 @@ struct ext4_allocation_request { unsigned int flags; }; /* * For delayed allocation tracking */ struct mpage_da_data { struct inode *inode; sector_t b_blocknr; /* start block number of extent */ size_t b_size; /* size of extent */ unsigned long b_state; /* state of the extent */ unsigned long first_page, next_page; /* extent of pages */ struct writeback_control *wbc; int io_done; int pages_written; int retval; }; /* * Special inodes numbers */ Loading fs/ext4/inode.c +1 −12 Original line number Diff line number Diff line Loading @@ -1875,18 +1875,6 @@ static void ext4_da_page_release_reservation(struct page *page, * Delayed allocation stuff */ struct mpage_da_data { struct inode *inode; sector_t b_blocknr; /* start block number of extent */ size_t b_size; /* size of extent */ unsigned long b_state; /* state of the extent */ unsigned long first_page, next_page; /* extent of pages */ struct writeback_control *wbc; int io_done; int pages_written; int retval; }; /* * mpage_da_submit_io - walks through extent of pages and try to write * them with writepage() call back Loading Loading @@ -2863,6 +2851,7 @@ static int ext4_da_writepages(struct address_space *mapping, mpd.io_done = 1; ret = MPAGE_DA_EXTENT_TAIL; } trace_ext4_da_write_pages(inode, &mpd); wbc->nr_to_write -= mpd.pages_written; ext4_journal_stop(handle); Loading include/trace/events/ext4.h +34 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,40 @@ TRACE_EVENT(ext4_da_writepages, __entry->range_cyclic) ); TRACE_EVENT(ext4_da_write_pages, TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), TP_ARGS(inode, mpd), TP_STRUCT__entry( __field( dev_t, dev ) __field( ino_t, ino ) __field( __u64, b_blocknr ) __field( __u32, b_size ) __field( __u32, b_state ) __field( unsigned long, first_page ) __field( int, io_done ) __field( int, pages_written ) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->b_blocknr = mpd->b_blocknr; __entry->b_size = mpd->b_size; __entry->b_state = mpd->b_state; __entry->first_page = mpd->first_page; __entry->io_done = mpd->io_done; __entry->pages_written = mpd->pages_written; ), TP_printk("dev %s ino %lu b_blocknr %llu b_size %u b_state 0x%04x first_page %lu io_done %d pages_written %d", jbd2_dev_to_name(__entry->dev), __entry->ino, __entry->b_blocknr, __entry->b_size, __entry->b_state, __entry->first_page, __entry->io_done, __entry->pages_written) ); TRACE_EVENT(ext4_da_writepages_result, TP_PROTO(struct inode *inode, struct writeback_control *wbc, int ret, int pages_written), Loading Loading
fs/ext4/ext4.h +15 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,21 @@ struct ext4_allocation_request { unsigned int flags; }; /* * For delayed allocation tracking */ struct mpage_da_data { struct inode *inode; sector_t b_blocknr; /* start block number of extent */ size_t b_size; /* size of extent */ unsigned long b_state; /* state of the extent */ unsigned long first_page, next_page; /* extent of pages */ struct writeback_control *wbc; int io_done; int pages_written; int retval; }; /* * Special inodes numbers */ Loading
fs/ext4/inode.c +1 −12 Original line number Diff line number Diff line Loading @@ -1875,18 +1875,6 @@ static void ext4_da_page_release_reservation(struct page *page, * Delayed allocation stuff */ struct mpage_da_data { struct inode *inode; sector_t b_blocknr; /* start block number of extent */ size_t b_size; /* size of extent */ unsigned long b_state; /* state of the extent */ unsigned long first_page, next_page; /* extent of pages */ struct writeback_control *wbc; int io_done; int pages_written; int retval; }; /* * mpage_da_submit_io - walks through extent of pages and try to write * them with writepage() call back Loading Loading @@ -2863,6 +2851,7 @@ static int ext4_da_writepages(struct address_space *mapping, mpd.io_done = 1; ret = MPAGE_DA_EXTENT_TAIL; } trace_ext4_da_write_pages(inode, &mpd); wbc->nr_to_write -= mpd.pages_written; ext4_journal_stop(handle); Loading
include/trace/events/ext4.h +34 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,40 @@ TRACE_EVENT(ext4_da_writepages, __entry->range_cyclic) ); TRACE_EVENT(ext4_da_write_pages, TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), TP_ARGS(inode, mpd), TP_STRUCT__entry( __field( dev_t, dev ) __field( ino_t, ino ) __field( __u64, b_blocknr ) __field( __u32, b_size ) __field( __u32, b_state ) __field( unsigned long, first_page ) __field( int, io_done ) __field( int, pages_written ) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->b_blocknr = mpd->b_blocknr; __entry->b_size = mpd->b_size; __entry->b_state = mpd->b_state; __entry->first_page = mpd->first_page; __entry->io_done = mpd->io_done; __entry->pages_written = mpd->pages_written; ), TP_printk("dev %s ino %lu b_blocknr %llu b_size %u b_state 0x%04x first_page %lu io_done %d pages_written %d", jbd2_dev_to_name(__entry->dev), __entry->ino, __entry->b_blocknr, __entry->b_size, __entry->b_state, __entry->first_page, __entry->io_done, __entry->pages_written) ); TRACE_EVENT(ext4_da_writepages_result, TP_PROTO(struct inode *inode, struct writeback_control *wbc, int ret, int pages_written), Loading