diff options
Diffstat (limited to 'fs/buffer.c')
-rw-r--r-- | fs/buffer.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index 06fc75159808..6cd4553286b6 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -621,6 +621,18 @@ void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode) } EXPORT_SYMBOL(mark_buffer_dirty_inode); +#ifdef CONFIG_BLK_DEV_IO_TRACE +static inline void save_dirty_task(struct page *page) +{ + /* Save the task that is dirtying this page */ + page->tsk_dirty = current; +} +#else +static inline void save_dirty_task(struct page *page) +{ +} +#endif + /* * Mark the page dirty, and set it dirty in the radix tree, and mark the inode * dirty. @@ -641,8 +653,7 @@ static void __set_page_dirty(struct page *page, struct address_space *mapping, account_page_dirtied(page, mapping, memcg); radix_tree_tag_set(&mapping->page_tree, page_index(page), PAGECACHE_TAG_DIRTY); - /* Save the task that is dirtying this page */ - page->tsk_dirty = current; + save_dirty_task(page); } spin_unlock_irqrestore(&mapping->tree_lock, flags); } |