linux/fs/smb/server/mgmt/user_session.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *   Copyright (C) 2018 Samsung Electronics Co., Ltd.
 */

#include <linux/list.h>
#include <linux/slab.h>
#include <linux/rwsem.h>
#include <linux/xarray.h>

#include "ksmbd_ida.h"
#include "user_session.h"
#include "user_config.h"
#include "tree_connect.h"
#include "../transport_ipc.h"
#include "../connection.h"
#include "../vfs_cache.h"

static DEFINE_IDA(session_ida);

#define SESSION_HASH_BITS
static DEFINE_HASHTABLE(sessions_table, SESSION_HASH_BITS);
static DECLARE_RWSEM(sessions_table_lock);

struct ksmbd_session_rpc {};

static void free_channel_list(struct ksmbd_session *sess)
{}

static void __session_rpc_close(struct ksmbd_session *sess,
				struct ksmbd_session_rpc *entry)
{}

static void ksmbd_session_rpc_clear_list(struct ksmbd_session *sess)
{}

static int __rpc_method(char *rpc_name)
{}

int ksmbd_session_rpc_open(struct ksmbd_session *sess, char *rpc_name)
{}

void ksmbd_session_rpc_close(struct ksmbd_session *sess, int id)
{}

int ksmbd_session_rpc_method(struct ksmbd_session *sess, int id)
{}

void ksmbd_session_destroy(struct ksmbd_session *sess)
{}

struct ksmbd_session *__session_lookup(unsigned long long id)
{}

static void ksmbd_expire_session(struct ksmbd_conn *conn)
{}

int ksmbd_session_register(struct ksmbd_conn *conn,
			   struct ksmbd_session *sess)
{}

static int ksmbd_chann_del(struct ksmbd_conn *conn, struct ksmbd_session *sess)
{}

void ksmbd_sessions_deregister(struct ksmbd_conn *conn)
{}

struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
					   unsigned long long id)
{}

struct ksmbd_session *ksmbd_session_lookup_slowpath(unsigned long long id)
{}

struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
					       unsigned long long id)
{}

struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
						    u64 sess_id)
{}

void destroy_previous_session(struct ksmbd_conn *conn,
			      struct ksmbd_user *user, u64 id)
{}

static bool ksmbd_preauth_session_id_match(struct preauth_session *sess,
					   unsigned long long id)
{}

struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
						     unsigned long long id)
{}

static int __init_smb2_session(struct ksmbd_session *sess)
{}

static struct ksmbd_session *__session_create(int protocol)
{}

struct ksmbd_session *ksmbd_smb2_session_create(void)
{}

int ksmbd_acquire_tree_conn_id(struct ksmbd_session *sess)
{}

void ksmbd_release_tree_conn_id(struct ksmbd_session *sess, int id)
{}