From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758854Ab2EVOq3 (ORCPT ); Tue, 22 May 2012 10:46:29 -0400 Received: from relay.parallels.com ([195.214.232.42]:54644 "EHLO relay.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755487Ab2EVOq1 (ORCPT ); Tue, 22 May 2012 10:46:27 -0400 Message-ID: <4FBBA6BC.3070409@parallels.com> Date: Tue, 22 May 2012 18:46:20 +0400 From: Stanislav Kinsbursky User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 MIME-Version: 1.0 To: "Myklebust, Trond" CC: "bfields@fieldses.org" , "linux-nfs@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "devel@openvz.org" Subject: Re: [PATCH v3] NFS: put net on idr allocation failure References: <20120522073709.20602.33027.stgit@localhost.localdomain> <20120522080307.21303.60025.stgit@localhost.localdomain> <1337697459.4269.7.camel@lade.trondhjem.org> <4FBBA59F.2050001@parallels.com> <1337697906.4269.10.camel@lade.trondhjem.org> In-Reply-To: <1337697906.4269.10.camel@lade.trondhjem.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 22.05.2012 18:45, Myklebust, Trond wrote: > On Tue, 2012-05-22 at 18:41 +0400, Stanislav Kinsbursky wrote: >> On 22.05.2012 18:37, Myklebust, Trond wrote: >>> On Tue, 2012-05-22 at 12:03 +0400, Stanislav Kinsbursky wrote: >>>> Signed-off-by: Stanislav Kinsbursky >>>> --- >>>> fs/nfs/client.c | 4 +++- >>>> 1 files changed, 3 insertions(+), 1 deletions(-) >>>> >>>> diff --git a/fs/nfs/client.c b/fs/nfs/client.c >>>> index 44cd70f..ae29d4f 100644 >>>> --- a/fs/nfs/client.c >>>> +++ b/fs/nfs/client.c >>>> @@ -176,8 +176,10 @@ static struct nfs_client *nfs_alloc_client(const struct nfs_client_initdata *cl_ >>>> >>>> #ifdef CONFIG_NFS_V4 >>>> err = nfs_get_cb_ident_idr(clp, cl_init->minorversion); >>>> - if (err) >>>> + if (err) { >>>> + put_net(clp->net); >>>> goto error_cleanup; >>>> + } >>>> >>>> spin_lock_init(&clp->cl_lock); >>>> INIT_DELAYED_WORK(&clp->cl_renewd, nfs4_renew_state); >>>> >>> >>> Let's just move the actual get_net() call to the end of the function. >>> >> >> Ok. But it will look a bit strange, like this: >> >> clp->net = net; >> ... >> nfs_get_cb_ident_idr >> ... >> get_net(clp->net) >> >> Or I can pass net to nfs_get_cb_ident_idr() as a parameter. >> Which solution is more preferable&? > > Just put the get_net() at the end. It doesn't matter if it looks a bit > odd: the intent is still obvious. > Sure. -- Best regards, Stanislav Kinsbursky