diff options
| author | Wolfram Sang <wsa@the-dreams.de> | 2018-10-12 00:07:30 +0300 |
|---|---|---|
| committer | Wolfram Sang <wsa@the-dreams.de> | 2018-10-12 00:07:30 +0300 |
| commit | 90fb814b6c025da45f71db1703cffe3fe87f575c (patch) | |
| tree | 5fd739d407654df6f9d6e82900a45e027dd8b9f0 /fs/cifs/connect.c | |
| parent | b30f2f65568f840e5ca522d98ba2ad73b8f59cde (diff) | |
| parent | 0238df646e6224016a45505d2c111a24669ebe21 (diff) | |
| download | linux-90fb814b6c025da45f71db1703cffe3fe87f575c.tar.xz | |
Merge tag 'v4.19-rc7' into i2c/for-4.20
This is the 4.19-rc7 release
Diffstat (limited to 'fs/cifs/connect.c')
| -rw-r--r-- | fs/cifs/connect.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 7aa08dba4719..52d71b64c0c6 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -659,7 +659,15 @@ dequeue_mid(struct mid_q_entry *mid, bool malformed) mid->mid_state = MID_RESPONSE_RECEIVED; else mid->mid_state = MID_RESPONSE_MALFORMED; - list_del_init(&mid->qhead); + /* + * Trying to handle/dequeue a mid after the send_recv() + * function has finished processing it is a bug. + */ + if (mid->mid_flags & MID_DELETED) + printk_once(KERN_WARNING + "trying to dequeue a deleted mid\n"); + else + list_del_init(&mid->qhead); spin_unlock(&GlobalMid_Lock); } @@ -938,8 +946,7 @@ next_pdu: } else { mids[0] = server->ops->find_mid(server, buf); bufs[0] = buf; - if (mids[0]) - num_mids = 1; + num_mids = 1; if (!mids[0] || !mids[0]->receive) length = standard_receive3(server, mids[0]); |
