brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · a42cdd0 Raw
66 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 *   Copyright (C) 2018 Samsung Electronics Co., Ltd.4 */5 6#ifndef __TREE_CONNECT_MANAGEMENT_H__7#define __TREE_CONNECT_MANAGEMENT_H__8 9#include <linux/hashtable.h>10 11#include "../ksmbd_netlink.h"12 13struct ksmbd_share_config;14struct ksmbd_user;15struct ksmbd_conn;16struct ksmbd_work;17 18enum {19	TREE_NEW = 0,20	TREE_CONNECTED,21	TREE_DISCONNECTED22};23 24struct ksmbd_tree_connect {25	int				id;26 27	unsigned int			flags;28	struct ksmbd_share_config	*share_conf;29	struct ksmbd_user		*user;30 31	struct list_head		list;32 33	int				maximal_access;34	bool				posix_extensions;35	atomic_t			refcount;36	wait_queue_head_t		refcount_q;37	unsigned int			t_state;38};39 40struct ksmbd_tree_conn_status {41	unsigned int			ret;42	struct ksmbd_tree_connect	*tree_conn;43};44 45static inline int test_tree_conn_flag(struct ksmbd_tree_connect *tree_conn,46				      int flag)47{48	return tree_conn->flags & flag;49}50 51struct ksmbd_session;52 53struct ksmbd_tree_conn_status54ksmbd_tree_conn_connect(struct ksmbd_work *work, const char *share_name);55void ksmbd_tree_connect_put(struct ksmbd_tree_connect *tcon);56 57int ksmbd_tree_conn_disconnect(struct ksmbd_session *sess,58			       struct ksmbd_tree_connect *tree_conn);59 60struct ksmbd_tree_connect *ksmbd_tree_conn_lookup(struct ksmbd_session *sess,61						  unsigned int id);62 63int ksmbd_tree_conn_session_logoff(struct ksmbd_session *sess);64 65#endif /* __TREE_CONNECT_MANAGEMENT_H__ */66