diff --git a/[refs] b/[refs] index 5e8fc7d7064b..db065a2e30f6 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 74cae61ab45f19a3e8c4d9f53c0e94df129c7915 +refs/heads/master: ad1b5229def92b71631a927895b034ceec06c991 diff --git a/trunk/net/sunrpc/svcauth_unix.c b/trunk/net/sunrpc/svcauth_unix.c index 11020c0b7db5..7e5707e2d6b6 100644 --- a/trunk/net/sunrpc/svcauth_unix.c +++ b/trunk/net/sunrpc/svcauth_unix.c @@ -36,16 +36,16 @@ struct auth_domain *unix_domain_find(char *name) rv = auth_domain_lookup(name, NULL); while(1) { - if (rv != &new->h) { - if (new) auth_domain_put(&new->h); + if (rv) { + if (new && rv != &new->h) + auth_domain_put(&new->h); + + if (rv->flavour != &svcauth_unix) { + auth_domain_put(rv); + return NULL; + } return rv; } - if (rv && rv->flavour != &svcauth_unix) { - auth_domain_put(rv); - return NULL; - } - if (rv) - return rv; new = kmalloc(sizeof(*new), GFP_KERNEL); if (new == NULL)