Commit 14a59e1829cd5782ad1a8979e594578f49f3e2c1

Authored by Loic Le Loarer
Committed by David S. Miller
1 parent 4acdbdbe50

[EQL]: Proper num_slaves decrement

Signed-off-by: Loic Le Loarer <loic.le-loarer+lk@polytechnique.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 8 additions and 8 deletions Side-by-side Diff

... ... @@ -132,7 +132,7 @@
132 132 #define eql_is_slave(dev) ((dev->flags & IFF_SLAVE) == IFF_SLAVE)
133 133 #define eql_is_master(dev) ((dev->flags & IFF_MASTER) == IFF_MASTER)
134 134  
135   -static void eql_kill_one_slave(slave_t *slave);
  135 +static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave);
136 136  
137 137 static void eql_timer(unsigned long param)
138 138 {
... ... @@ -149,7 +149,7 @@
149 149 if (slave->bytes_queued < 0)
150 150 slave->bytes_queued = 0;
151 151 } else {
152   - eql_kill_one_slave(slave);
  152 + eql_kill_one_slave(&eql->queue, slave);
153 153 }
154 154  
155 155 }
156 156  
... ... @@ -214,9 +214,10 @@
214 214 return 0;
215 215 }
216 216  
217   -static void eql_kill_one_slave(slave_t *slave)
  217 +static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave)
218 218 {
219 219 list_del(&slave->list);
  220 + queue->num_slaves--;
220 221 slave->dev->flags &= ~IFF_SLAVE;
221 222 dev_put(slave->dev);
222 223 kfree(slave);
... ... @@ -232,8 +233,7 @@
232 233 list_for_each_safe(this, tmp, head) {
233 234 slave_t *s = list_entry(this, slave_t, list);
234 235  
235   - eql_kill_one_slave(s);
236   - queue->num_slaves--;
  236 + eql_kill_one_slave(queue, s);
237 237 }
238 238  
239 239 spin_unlock_bh(&queue->lock);
... ... @@ -318,7 +318,7 @@
318 318 }
319 319 } else {
320 320 /* We found a dead slave, kill it. */
321   - eql_kill_one_slave(slave);
  321 + eql_kill_one_slave(queue, slave);
322 322 }
323 323 }
324 324 return best_slave;
... ... @@ -393,7 +393,7 @@
393 393  
394 394 duplicate_slave = __eql_find_slave_dev(queue, slave->dev);
395 395 if (duplicate_slave != 0)
396   - eql_kill_one_slave(duplicate_slave);
  396 + eql_kill_one_slave(queue, duplicate_slave);
397 397  
398 398 list_add(&slave->list, &queue->all_slaves);
399 399 queue->num_slaves++;
... ... @@ -471,7 +471,7 @@
471 471 slave_dev);
472 472  
473 473 if (slave) {
474   - eql_kill_one_slave(slave);
  474 + eql_kill_one_slave(&eql->queue, slave);
475 475 ret = 0;
476 476 }
477 477 }