diff options
author | James Smart <jsmart2021@gmail.com> | 2017-11-29 16:47:31 -0800 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-01-08 11:01:54 +0100 |
commit | 6fda20283e55b9d288cd56822ce39fc8e64f2208 (patch) | |
tree | 6ffe500e957f43325e741eab2c5bc7146728a389 /.mailmap | |
parent | 278e096063f1914fccfc77a617be9fc8dbb31b0e (diff) |
nvme_fcloop: disassocate local port structs
The current fcloop driver gets its lport structure from the private
area co-allocated with the fc_localport. All is fine except the
teardown path, which wants to wait on the completion, which is marked
complete by the delete_localport callback performed after
unregister_localport. The issue is, the nvme_fc transport frees the
localport structure immediately after delete_localport is called,
meaning the original routine is trying to wait on a complete that
was just freed.
Change such that a lport struct is allocated coincident with the
addition and registration of a localport. The private area of the
localport now contains just a backpointer to the real lport struct.
Now, the completion can be waited for, and after completing, the
new structure can be kfree'd.
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to '.mailmap')
0 files changed, 0 insertions, 0 deletions