diff options
-rw-r--r-- | fs/fs-writeback.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 1b43cc9d9ebb..30d9383c87c3 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -308,7 +308,14 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc) struct address_space *mapping = inode->i_mapping; int ret; - redirty_tail(inode); + /* + * We're skipping this inode because it's locked, and we're not + * doing writeback-for-data-integrity. Move it to the head of + * s_dirty so that writeback can proceed with the other inodes + * on s_io. We'll have another go at writing back this inode + * when the s_dirty iodes get moved back onto s_io. + */ + redirty_head(inode); /* * Even if we don't actually write the inode itself here, |