diff --git a/[refs] b/[refs] index 76632defc079..0135bf13c61a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c6945e77e477103057b4a639b4b01596f5257861 +refs/heads/master: 65cb9b47e0ea568a7a38cce7773052a6ea093629 diff --git a/trunk/fs/fs-writeback.c b/trunk/fs/fs-writeback.c index 1b43cc9d9ebb..30d9383c87c3 100644 --- a/trunk/fs/fs-writeback.c +++ b/trunk/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,