diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-04-08 11:43:30 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-04-08 11:43:30 +0200 |
commit | 529801898b24544f93532217ce18a7ebbb2b8c4f (patch) | |
tree | c51c8fd808e6cff15cabb1a9ac29be0661942384 /fs/ext4/page-io.c | |
parent | b847d0501afec4c7b12eb276aec10a2834f953ea (diff) | |
parent | 23995bbee01d75f09f72b1380bd6045a5b02947b (diff) | |
download | linux-529801898b24544f93532217ce18a7ebbb2b8c4f.tar.gz linux-529801898b24544f93532217ce18a7ebbb2b8c4f.tar.bz2 linux-529801898b24544f93532217ce18a7ebbb2b8c4f.zip |
Merge branch 'for-tip' of git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile into perf/core
Pull IBM zEnterprise EC12 support patchlet from Robert Richter.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/ext4/page-io.c')
-rw-r--r-- | fs/ext4/page-io.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c index 809b31003ecc..047a6de04a0a 100644 --- a/fs/ext4/page-io.c +++ b/fs/ext4/page-io.c @@ -50,11 +50,21 @@ void ext4_exit_pageio(void) kmem_cache_destroy(io_page_cachep); } -void ext4_ioend_wait(struct inode *inode) +/* + * This function is called by ext4_evict_inode() to make sure there is + * no more pending I/O completion work left to do. + */ +void ext4_ioend_shutdown(struct inode *inode) { wait_queue_head_t *wq = ext4_ioend_wq(inode); wait_event(*wq, (atomic_read(&EXT4_I(inode)->i_ioend_count) == 0)); + /* + * We need to make sure the work structure is finished being + * used before we let the inode get destroyed. + */ + if (work_pending(&EXT4_I(inode)->i_unwritten_work)) + cancel_work_sync(&EXT4_I(inode)->i_unwritten_work); } static void put_io_page(struct ext4_io_page *io_page) |