Showing error 1546

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: net/rxrpc/ar-proc.c
Line in file: 34
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

  4 * Written by David Howells (dhowells@redhat.com)
  5 *
  6 * This program is free software; you can redistribute it and/or
  7 * modify it under the terms of the GNU General Public License
  8 * as published by the Free Software Foundation; either version
  9 * 2 of the License, or (at your option) any later version.
 10 */
 11
 12#include <linux/module.h>
 13#include <net/sock.h>
 14#include <net/af_rxrpc.h>
 15#include "ar-internal.h"
 16
 17static const char *const rxrpc_conn_states[] = {
 18        [RXRPC_CONN_UNUSED]                = "Unused  ",
 19        [RXRPC_CONN_CLIENT]                = "Client  ",
 20        [RXRPC_CONN_SERVER_UNSECURED]        = "SvUnsec ",
 21        [RXRPC_CONN_SERVER_CHALLENGING]        = "SvChall ",
 22        [RXRPC_CONN_SERVER]                = "SvSecure",
 23        [RXRPC_CONN_REMOTELY_ABORTED]        = "RmtAbort",
 24        [RXRPC_CONN_LOCALLY_ABORTED]        = "LocAbort",
 25        [RXRPC_CONN_NETWORK_ERROR]        = "NetError",
 26};
 27
 28/*
 29 * generate a list of extant and dead calls in /proc/net/rxrpc_calls
 30 */
 31static void *rxrpc_call_seq_start(struct seq_file *seq, loff_t *_pos)
 32{
 33        read_lock(&rxrpc_call_lock);
 34        return seq_list_start_head(&rxrpc_calls, *_pos);
 35}
 36
 37static void *rxrpc_call_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 38{
 39        return seq_list_next(v, &rxrpc_calls, pos);
 40}
 41
 42static void rxrpc_call_seq_stop(struct seq_file *seq, void *v)
 43{
 44        read_unlock(&rxrpc_call_lock);
Show full sources