diff options
author | Paul Mackerras <paulus@samba.org> | 2007-02-08 05:03:11 +0100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-02-08 05:03:11 +0100 |
commit | d5112a4f31a361409d3c57dc9d58dd69f8014bef (patch) | |
tree | 64771300b2191cb94d9aaf60355661a01c2ccd1a /fs/fs-writeback.c | |
parent | [POWERPC] Only use H_BULK_REMOVE if the firmware supports it (diff) | |
parent | [POWERPC] Fixup error handling when emulating a floating point instruction (diff) | |
download | linux-d5112a4f31a361409d3c57dc9d58dd69f8014bef.tar.xz linux-d5112a4f31a361409d3c57dc9d58dd69f8014bef.zip |
Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc into for-2.6.21
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index c403b66ec83c..a4b142a6a2c7 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -251,8 +251,19 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) WARN_ON(inode->i_state & I_WILL_FREE); if ((wbc->sync_mode != WB_SYNC_ALL) && (inode->i_state & I_LOCK)) { + struct address_space *mapping = inode->i_mapping; + int ret; + list_move(&inode->i_list, &inode->i_sb->s_dirty); - return 0; + + /* + * Even if we don't actually write the inode itself here, + * we can at least start some of the data writeout.. + */ + spin_unlock(&inode_lock); + ret = do_writepages(mapping, wbc); + spin_lock(&inode_lock); + return ret; } /* |