aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2009-08-31 23:13:11 -0400
committerTheodore Ts'o <tytso@mit.edu>2009-08-31 23:13:11 -0400
commitb3a3ca8ca0c3c29abc5b2bfe94bb14f3f4590df9 (patch)
tree1006f780d43ec8ff90ed11b1eb0d5ed961c9f613 /fs
parentde89de6e0cf4b1eb13f27137cf2aa40d287aabdf (diff)
ext4: Add new tracepoint: trace_ext4_da_write_pages()
Add a new tracepoint which shows the pages that will be written using write_cache_pages() by ext4_da_writepages(). Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext4/ext4.h15
-rw-r--r--fs/ext4/inode.c13
2 files changed, 16 insertions, 12 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 41a76e163b99..81014f4ed22d 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -114,6 +114,21 @@ struct ext4_allocation_request {
114}; 114};
115 115
116/* 116/*
117 * For delayed allocation tracking
118 */
119struct mpage_da_data {
120 struct inode *inode;
121 sector_t b_blocknr; /* start block number of extent */
122 size_t b_size; /* size of extent */
123 unsigned long b_state; /* state of the extent */
124 unsigned long first_page, next_page; /* extent of pages */
125 struct writeback_control *wbc;
126 int io_done;
127 int pages_written;
128 int retval;
129};
130
131/*
117 * Special inodes numbers 132 * Special inodes numbers
118 */ 133 */
119#define EXT4_BAD_INO 1 /* Bad blocks inode */ 134#define EXT4_BAD_INO 1 /* Bad blocks inode */
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index ff659e757578..17802a96af9f 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1875,18 +1875,6 @@ static void ext4_da_page_release_reservation(struct page *page,
1875 * Delayed allocation stuff 1875 * Delayed allocation stuff
1876 */ 1876 */
1877 1877
1878struct mpage_da_data {
1879 struct inode *inode;
1880 sector_t b_blocknr; /* start block number of extent */
1881 size_t b_size; /* size of extent */
1882 unsigned long b_state; /* state of the extent */
1883 unsigned long first_page, next_page; /* extent of pages */
1884 struct writeback_control *wbc;
1885 int io_done;
1886 int pages_written;
1887 int retval;
1888};
1889
1890/* 1878/*
1891 * mpage_da_submit_io - walks through extent of pages and try to write 1879 * mpage_da_submit_io - walks through extent of pages and try to write
1892 * them with writepage() call back 1880 * them with writepage() call back
@@ -2863,6 +2851,7 @@ retry:
2863 mpd.io_done = 1; 2851 mpd.io_done = 1;
2864 ret = MPAGE_DA_EXTENT_TAIL; 2852 ret = MPAGE_DA_EXTENT_TAIL;
2865 } 2853 }
2854 trace_ext4_da_write_pages(inode, &mpd);
2866 wbc->nr_to_write -= mpd.pages_written; 2855 wbc->nr_to_write -= mpd.pages_written;
2867 2856
2868 ext4_journal_stop(handle); 2857 ext4_journal_stop(handle);