From 0ca68b57c49f07c2c40efc4bff6fc2f664a8a7c9 Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Mon, 8 Jun 2009 00:44:31 -0700 Subject: [PATCH] --- yaml --- r: 150748 b: refs/heads/master c: f0a4d0e5b5bfd271e6737f7c095994835b70d450 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/tun.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 8aab35f0bc71..bcdb05cde11a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ef681ce1e8b3e63317cd724c200b2fd39286c005 +refs/heads/master: f0a4d0e5b5bfd271e6737f7c095994835b70d450 diff --git a/trunk/drivers/net/tun.c b/trunk/drivers/net/tun.c index d83ccb8c982b..811d3517fce0 100644 --- a/trunk/drivers/net/tun.c +++ b/trunk/drivers/net/tun.c @@ -1322,21 +1322,22 @@ static int tun_chr_open(struct inode *inode, struct file * file) static int tun_chr_close(struct inode *inode, struct file *file) { struct tun_file *tfile = file->private_data; - struct tun_struct *tun = __tun_get(tfile); + struct tun_struct *tun; + rtnl_lock(); + tun = __tun_get(tfile); if (tun) { DBG(KERN_INFO "%s: tun_chr_close\n", tun->dev->name); - rtnl_lock(); __tun_detach(tun); /* If desireable, unregister the netdevice. */ if (!(tun->flags & TUN_PERSIST)) unregister_netdevice(tun->dev); - rtnl_unlock(); } + rtnl_unlock(); tun = tfile->tun; if (tun)