• Kees Cook's avatar
    pstore: inode: Only d_invalidate() is needed · a43e0fc5
    Kees Cook authored
    Unloading a modular pstore backend with records in pstorefs would
    trigger the dput() double-drop warning:
    
      WARNING: CPU: 0 PID: 2569 at fs/dcache.c:762 dput.part.0+0x3f3/0x410
    
    Using the combo of d_drop()/dput() (as mentioned in
    Documentation/filesystems/vfs.rst) isn't the right approach here, and
    leads to the reference counting problem seen above. Use d_invalidate()
    and update the code to not bother checking for error codes that can
    never happen.
    Suggested-by: default avatarAlexander Viro <viro@zeniv.linux.org.uk>
    Fixes: 609e28bb ("pstore: Remove filesystem records when backend is unregistered")
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    ---
    Cc: "Guilherme G. Piccoli" <gpiccoli@igalia.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: linux-hardening@vger.kernel.org
    a43e0fc5
inode.c 10.7 KB