summaryrefslogtreecommitdiffstats
path: root/net/atm/signaling.c
diff options
context:
space:
mode:
authorChas Williams <chas@cmf.nrl.navy.mil>2005-09-29 01:35:01 +0200
committerDavid S. Miller <davem@davemloft.net>2005-09-29 01:35:01 +0200
commit9301e320e98ff19a0e48881b038d0c24ca76e6c0 (patch)
treeb625aa1cb6dab99f343cdf85e0f32e7838a7ad93 /net/atm/signaling.c
parent[ATM]: net/atm/ioctl.c: autoload pppoatm and br2684 (diff)
downloadlinux-9301e320e98ff19a0e48881b038d0c24ca76e6c0.tar.xz
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.c8
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);