Merge branch 'urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 31 Jul 2011 16:25:09 +0000 (06:25 -1000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 31 Jul 2011 16:25:09 +0000 (06:25 -1000)
* 'urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback:
  don't busy retry the inode on failed grab_super_passive()

fs/fs-writeback.c

index 1599aa985fe2accf6dcc9456a570ba942201685d..04cf3b91e5016a1f7e3ceef734c7d85574ec296d 100644 (file)
@@ -618,7 +618,12 @@ static long __writeback_inodes_wb(struct bdi_writeback *wb,
                struct super_block *sb = inode->i_sb;
 
                if (!grab_super_passive(sb)) {
-                       requeue_io(inode, wb);
+                       /*
+                        * grab_super_passive() may fail consistently due to
+                        * s_umount being grabbed by someone else. Don't use
+                        * requeue_io() to avoid busy retrying the inode/sb.
+                        */
+                       redirty_tail(inode, wb);
                        continue;
                }
                wrote += writeback_sb_inodes(sb, wb, work);