staging: android: logger: Fix log corruption regression
authorDaniel Thompson <daniel.thompson@linaro.org>
Mon, 27 Oct 2014 18:51:43 +0000 (18:51 +0000)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 28 Oct 2014 22:24:30 +0000 (18:24 -0400)
commit5fecf3a1e1a0af61eb34eb6976ec9f59cca65d3f
tree3ce7295f4f7429418339fe3d47c4c996dafbbc8d
parentcac7f2429872d3733dc3f9915857b1691da2eb2f
staging: android: logger: Fix log corruption regression

Since commit cd678fce4280 ("switch logger to ->write_iter()"), any
attempt to write to the log results in the log data being written over
its own metadata, thus rendering the log unreadable.

The problem was first detected when I ran an Android userspace on the
v3.18-rc1 kernel. However the issue can also be observed with a
non-Android userspace by using echo/cat to write to/from /dev/log_main .

This patch resolves the problem by using a temporary to track the status
of not-yet-committed writes to the log buffer.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/staging/android/logger.c