]> git.baikalelectronics.ru Git - kernel.git/commit
cifs_atomic_open(): fix double-put on late allocation failure
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 12 Mar 2020 22:25:20 +0000 (18:25 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 12 Mar 2020 22:25:20 +0000 (18:25 -0400)
commit04fde6313a0450ee4a5e0f7a63466b2c2eb35269
treead95e615975c7e052ffa8ad0d1e446653d1cc45e
parent0dd6727867d0c41bd14edf4969f663690d2bb2ea
cifs_atomic_open(): fix double-put on late allocation failure

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: b033dbb52b3c "do_last(): take fput() on error after opening to out:"
Cc: stable@kernel.org # v4.7+
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Documentation/filesystems/porting.rst
fs/cifs/dir.c
fs/open.c