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<skinsbursky@xxxxxxxxxxxxx> > >> --- > >> 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. -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com ��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥