pstore: Avoid duplicate call of persistent_ram_zap()
authorPeng Wang <wangpeng15@xiaomi.com>
Tue, 30 Oct 2018 07:52:34 +0000 (15:52 +0800)
committerKees Cook <keescook@chromium.org>
Tue, 4 Dec 2018 00:52:35 +0000 (16:52 -0800)
commit7684bd334d9d4ca4f09873e88d9c0131a2cf6c3b
tree2ccb5d56ff8945abd6d2a85bb70e8804ba6bef9c
parentb77fa617a2ff4d6beccad3d3d4b3a1f2d10368aa
pstore: Avoid duplicate call of persistent_ram_zap()

When initialing a prz, if invalid data is found (no PERSISTENT_RAM_SIG),
the function call path looks like this:

ramoops_init_prz ->
    persistent_ram_new -> persistent_ram_post_init -> persistent_ram_zap
    persistent_ram_zap

As we can see, persistent_ram_zap() is called twice.
We can avoid this by adding an option to persistent_ram_new(), and
only call persistent_ram_zap() when it is needed.

Signed-off-by: Peng Wang <wangpeng15@xiaomi.com>
[kees: minor tweak to exit path and commit log]
Signed-off-by: Kees Cook <keescook@chromium.org>
fs/pstore/ram.c
fs/pstore/ram_core.c
include/linux/pstore_ram.h