From: Linus Torvalds Date: Sun, 31 Jul 2011 16:25:09 +0000 (-1000) Subject: Merge branch 'urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Tag: v3.1-rc1~105 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=commitdiff_plain;h=fa9d594c46679485c5e3642d2bd9e874a7e07b19;hp=f0d15c96d4ddcf32b6f910c4c2487ee705e4d493 Merge branch 'urgent-for-linus' of git://git./linux/kernel/git/wfg/writeback * '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() --- diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 1599aa985fe2..04cf3b91e501 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -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);