# HG changeset patch # User Marcel Telka # Date 1363298921 14400 # Node ID 341879d9137254c3a2b768c1573164d4b56c921e # Parent ad441dd344785d961b97a791d2432d6732f8fa96 2986 nfs: exi refcounter leak at rfs3_lookup Reviewed by: Christopher Siden Reviewed by: Garrett D'Amore Approved by: Dan McDonald diff -r ad441dd34478 -r 341879d91372 usr/src/uts/common/fs/nfs/nfs3_srv.c --- a/usr/src/uts/common/fs/nfs/nfs3_srv.c Thu Mar 14 17:58:04 2013 -0400 +++ b/usr/src/uts/common/fs/nfs/nfs3_srv.c Thu Mar 14 18:08:41 2013 -0400 @@ -21,7 +21,7 @@ /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * - * Copyright 2012 Nexenta Systems, Inc. All rights reserved. + * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ @@ -514,20 +514,20 @@ auth_weak = TRUE; } + /* + * If publicfh_flag is true then we have called rfs_publicfh_mclookup + * and have obtained a new exportinfo in exi which needs to be + * released. Note that the original exportinfo pointed to by exi + * will be released by the caller, common_dispatch. + */ + if (publicfh_flag) + exi_rele(exi); + if (error) { VN_RELE(vp); goto out; } - /* - * If publicfh_flag is true then we have called rfs_publicfh_mclookup - * and have obtained a new exportinfo in exi which needs to be - * released. Note the the original exportinfo pointed to by exi - * will be released by the caller, common_dispatch. - */ - if (publicfh_flag) - exi_rele(exi); - va.va_mask = AT_ALL; vap = rfs4_delegated_getattr(vp, &va, 0, cr) ? NULL : &va;