diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2021-06-19 03:50:31 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-06-21 12:28:49 -0700 |
commit | 56c1731b280dc71febf5df80fcac1923ea973ab8 (patch) | |
tree | ed136ef1746c3fa21591d55acff0ef36c4c84294 /tools/perf/scripts/python/stackcollapse.py | |
parent | 71e6be6f7d2bada7099d79205779c4452d4fd35b (diff) |
unix_bind_bsd(): move done_path_create() call after dealing with ->bindlock
Final preparations for doing unlink on failure past the successful
mknod. We can't hold ->bindlock over ->mknod() or ->unlink(), since
either might do sb_start_write() (e.g. on overlayfs). However, we
can do it while holding filesystem and VFS locks - doing
kern_path_create()
vfs_mknod()
grab ->bindlock
if u->addr had been set
drop ->bindlock
done_path_create
return -EINVAL
else
assign the address to socket
drop ->bindlock
done_path_create
return 0
would be deadlock-free. Here we massage unix_bind_bsd() to that
form. We are still doing equivalent transformations.
Next commit will *not* be an equivalent transformation - it will
add a call of vfs_unlink() before done_path_create() in "alread bound"
case.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions