From patchwork Sun Oct 5 22:16:48 2008 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jarek Poplawski X-Patchwork-Id: 2857 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id A0E70DDDE0 for ; Mon, 6 Oct 2008 09:16:00 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755248AbYJEWP4 (ORCPT ); Sun, 5 Oct 2008 18:15:56 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755312AbYJEWP4 (ORCPT ); Sun, 5 Oct 2008 18:15:56 -0400 Received: from ug-out-1314.google.com ([66.249.92.170]:2386 "EHLO ug-out-1314.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755120AbYJEWPz (ORCPT ); Sun, 5 Oct 2008 18:15:55 -0400 Received: by ug-out-1314.google.com with SMTP id k3so1537548ugf.37 for ; Sun, 05 Oct 2008 15:15:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=fI4u47TJSF3JdPYDyxIl0f4NSAM0PZYEwDpEQCN1ZL4=; b=CLV3EjS04VHQMP/LYqjYM1Zf/MEmsE7e7QnbnLQnMrBJj7k7TTcZMOHZ1YculHIcII zVdKNTjJRUlLGn/yo9lKvZpDPgoBJe7tyc3sACVxOoFxZ4XGHWdFdrzN2WTtb/T7vP+L TmiLvtDIDWa6r1r2gTsHgDCy9TrMKBfeHcH/E= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=e4R4IjoSgNNnavqexpScwJnmWyTAFGt9H03lIVn8/DrT8VN1e2kw6UVNAc2vsaoon4 5YWGZKq62XFqoS54qYuqUd3avucGST8IPV0SvNR2fcqmUGcrkjMhdNSt8d07n1n5yF96 sGNnVnSQPBqLP1BZMvle8Tm2iFI/ZWt8iDkDk= Received: by 10.67.91.13 with SMTP id t13mr8091337ugl.11.1223244953542; Sun, 05 Oct 2008 15:15:53 -0700 (PDT) Received: from ami.dom.local (aur36.neoplus.adsl.tpnet.pl [83.27.25.36]) by mx.google.com with ESMTPS id x37sm10980026ugc.31.2008.10.05.15.15.52 (version=SSLv3 cipher=RC4-MD5); Sun, 05 Oct 2008 15:15:53 -0700 (PDT) Date: Mon, 6 Oct 2008 00:16:48 +0200 From: Jarek Poplawski To: David Miller Cc: "Bernard, f6bvp" , Linux Netdev List , Ralf Baechle DL5RB Subject: [PATCH] netrom: Fix sock_orphan() use in nr_release Message-ID: <20081005221648.GB2613@ami.dom.local> References: <20081002194845.GB2664@ami.dom.local> <20081003073418.GA5235@ff.dom.local> <20081003074351.GB5235@ff.dom.local> <1223145027.23358.20.camel@f6bvp-5> <20081004191114.GA15152@ami.dom.local> <20081004200939.GB15152@ami.dom.local> <1223231469.18094.10.camel@f6bvp-5> <20081005204013.GB2526@ami.dom.local> <1223241500.18094.32.camel@f6bvp-5> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1223241500.18094.32.camel@f6bvp-5> User-Agent: Mutt/1.5.18 (2008-05-17) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org netrom: Fix sock_orphan() use in nr_release While debugging another bug it was found that NetRom socks are sometimes seen unorphaned in sk_free(). This patch moves sock_orphan() in nr_release() to the beginning (like in ax25, or rose). Reported-and-tested-by: Bernard Pidoux f6bvp Signed-off-by: Jarek Poplawski --- net/netrom/af_netrom.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index 532e4fa..9f1ea4a 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c @@ -525,6 +525,7 @@ static int nr_release(struct socket *sock) if (sk == NULL) return 0; sock_hold(sk); + sock_orphan(sk); lock_sock(sk); nr = nr_sk(sk); @@ -548,7 +549,6 @@ static int nr_release(struct socket *sock) sk->sk_state = TCP_CLOSE; sk->sk_shutdown |= SEND_SHUTDOWN; sk->sk_state_change(sk); - sock_orphan(sk); sock_set_flag(sk, SOCK_DESTROY); break;