diff mbox

fs: Warn on first freeze_super() request.

Message ID 1531374805-3325-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp (mailing list archive)
State New, archived
Headers show

Commit Message

Tetsuo Handa July 12, 2018, 5:53 a.m. UTC
This is a temporary patch which should not go to linux.git.

syzbot is hitting hung task problems at __sb_start_write() [1].
atomic_long_read(&sem->rw_sem.count) says that percpu_down_read() was
blocked because somebody has called percpu_down_write(). But since we
believe that syzbot is not doing ioctl(FIFREEZE) requests, let's check
who is calling percpu_down_write() from freeze_super().

Since it is impossible to reproduce this problem locally, this patch was
made in order to test linux-next.git using syzbot infrastructure (and will
be removed after the culprit is found).

[1] https://syzkaller.appspot.com/bug?id=287aa8708bc940d0ca1645223c53dd4c2d203be6

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
---
 fs/super.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Tetsuo Handa July 12, 2018, 8:56 p.m. UTC | #1
Please ignore this patch. The bug seems to be fixed by
https://github.com/google/syzkaller/commit/06c33b3af0ff4072fb002879f83077c9d162a224 .

On 2018/07/12 14:53, Tetsuo Handa wrote:
> This is a temporary patch which should not go to linux.git.
> 
> syzbot is hitting hung task problems at __sb_start_write() [1].
> atomic_long_read(&sem->rw_sem.count) says that percpu_down_read() was
> blocked because somebody has called percpu_down_write(). But since we
> believe that syzbot is not doing ioctl(FIFREEZE) requests, let's check
> who is calling percpu_down_write() from freeze_super().
> 
> Since it is impossible to reproduce this problem locally, this patch was
> made in order to test linux-next.git using syzbot infrastructure (and will
> be removed after the culprit is found).
> 
> [1] https://syzkaller.appspot.com/bug?id=287aa8708bc940d0ca1645223c53dd4c2d203be6
> 
> Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
> Cc: Dmitry Vyukov <dvyukov@google.com>
> Cc: Alexander Viro <viro@zeniv.linux.org.uk>
diff mbox

Patch

diff --git a/fs/super.c b/fs/super.c
index 13647d4..4ec1b03 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -1618,6 +1618,7 @@  int freeze_super(struct super_block *sb)
 		return 0;
 	}
 
+	WARN_ONCE(1, "Freezing superblock. Watch out for hung task.\n");
 	sb->s_writers.frozen = SB_FREEZE_WRITE;
 	/* Release s_umount to preserve sb_start_write -> s_umount ordering */
 	up_write(&sb->s_umount);