diff options
author | Chas Williams <chas@cmf.nrl.navy.mil> | 2005-09-28 16:35:01 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-09-28 16:35:01 -0700 |
commit | 9301e320e98ff19a0e48881b038d0c24ca76e6c0 (patch) | |
tree | b625aa1cb6dab99f343cdf85e0f32e7838a7ad93 /net/atm/signaling.c | |
parent | e2c4b72158a9f1286df41dee478e774f1b94e93a (diff) | |
download | linux-9301e320e98ff19a0e48881b038d0c24ca76e6c0.tar.gz linux-9301e320e98ff19a0e48881b038d0c24ca76e6c0.tar.bz2 linux-9301e320e98ff19a0e48881b038d0c24ca76e6c0.zip |
[ATM]: track and close listen sockets when sigd exits
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Diffstat (limited to 'net/atm/signaling.c')
-rw-r--r-- | net/atm/signaling.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/atm/signaling.c b/net/atm/signaling.c index f7c449ac1800..e7211a7f382c 100644 --- a/net/atm/signaling.c +++ b/net/atm/signaling.c @@ -217,8 +217,9 @@ void sigd_enq(struct atm_vcc *vcc,enum atmsvc_msg_type type, static void purge_vcc(struct atm_vcc *vcc) { if (sk_atm(vcc)->sk_family == PF_ATMSVC && - !test_bit(ATM_VF_META,&vcc->flags)) { - set_bit(ATM_VF_RELEASED,&vcc->flags); + !test_bit(ATM_VF_META, &vcc->flags)) { + set_bit(ATM_VF_RELEASED, &vcc->flags); + clear_bit(ATM_VF_REGIS, &vcc->flags); vcc_release_async(vcc, -EUNATCH); } } @@ -243,8 +244,7 @@ static void sigd_close(struct atm_vcc *vcc) sk_for_each(s, node, head) { struct atm_vcc *vcc = atm_sk(s); - if (vcc->dev) - purge_vcc(vcc); + purge_vcc(vcc); } } read_unlock(&vcc_sklist_lock); |