• Al Viro's avatar
    cifs_atomic_open(): fix double-put on late allocation failure · d9a9f484
    Al Viro authored
    several iterations of ->atomic_open() calling conventions ago, we
    used to need fput() if ->atomic_open() failed at some point after
    successful finish_open().  Now (since 2016) it's not needed -
    struct file carries enough state to make fput() work regardless
    of the point in struct file lifecycle and discarding it on
    failure exits in open() got unified.  Unfortunately, I'd missed
    the fact that we had an instance of ->atomic_open() (cifs one)
    that used to need that fput(), as well as the stale comment in
    finish_open() demanding such late failure handling.  Trivially
    fixed...
    
    Fixes: fe9ec829 "do_last(): take fput() on error after opening to out:"
    Cc: stable@kernel.org # v4.7+
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    d9a9f484
open.c 32.1 KB