oplock_info
static int alloc_lease(struct oplock_info *opinfo, struct lease_ctx_info *lctx)
static void copy_lease(struct oplock_info *op1, struct oplock_info *op2)
static void add_lease_global_list(struct oplock_info *opinfo,
static void set_oplock_level(struct oplock_info *opinfo, int level,
struct oplock_info *opinfo;
struct oplock_info *opinfo;
struct oplock_info *opinfo = NULL, *prev_opinfo = NULL;
struct oplock_info *m_opinfo;
static void free_lease(struct oplock_info *opinfo)
static void __free_opinfo(struct oplock_info *opinfo)
struct oplock_info *brk_opinfo;
struct oplock_info *op, *brk_op;
struct oplock_info *opinfo = container_of(rcu, struct oplock_info, rcu);
static void free_opinfo(struct oplock_info *opinfo)
struct oplock_info *opinfo_get(struct ksmbd_file *fp)
struct oplock_info *opinfo;
static struct oplock_info *opinfo_get_list(struct ksmbd_inode *ci)
struct oplock_info *opinfo;
opinfo = list_first_entry_or_null(&ci->m_op_list, struct oplock_info,
struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
struct oplock_info *opinfo = NULL, *ret_op = NULL;
struct oplock_info *opinfo = opinfo_get(fp);
void opinfo_put(struct oplock_info *opinfo)
static void opinfo_add(struct oplock_info *opinfo, struct ksmbd_file *fp)
static void opinfo_del(struct oplock_info *opinfo)
int opinfo_write_to_read(struct oplock_info *opinfo)
int opinfo_read_handle_to_read(struct oplock_info *opinfo)
int opinfo_write_to_none(struct oplock_info *opinfo)
static struct oplock_info *alloc_opinfo(struct ksmbd_work *work,
int opinfo_read_to_none(struct oplock_info *opinfo)
int lease_read_to_write(struct oplock_info *opinfo)
struct oplock_info *opinfo;
static int lease_none_upgrade(struct oplock_info *opinfo, __le32 new_state)
opinfo = kzalloc_obj(struct oplock_info, KSMBD_DEFAULT_GFP);
struct oplock_info *opinfo;
static void grant_write_oplock(struct oplock_info *opinfo_new, int req_oplock,
static void grant_read_oplock(struct oplock_info *opinfo_new,
static void grant_none_oplock(struct oplock_info *opinfo_new,
static inline int compare_guid_key(struct oplock_info *opinfo,
static struct oplock_info *same_client_has_lease(struct ksmbd_inode *ci,
struct oplock_info *opinfo;
struct oplock_info *m_opinfo = NULL;
static void wait_for_break_ack(struct oplock_info *opinfo)
static void lease_add_list(struct oplock_info *opinfo)
static void wake_up_oplock_break(struct oplock_info *opinfo)
static int oplock_break_pending(struct oplock_info *opinfo, int req_op_level)
static void lease_del_list(struct oplock_info *opinfo)
static int smb2_oplock_break_noti(struct oplock_info *opinfo)
static int smb2_lease_break_noti(struct oplock_info *opinfo)
static struct lease_table *alloc_lease_table(struct oplock_info *opinfo)
static void wait_lease_breaking(struct oplock_info *opinfo)
static int oplock_break(struct oplock_info *brk_opinfo, int req_op_level,
struct oplock_info *opinfo;
struct oplock_info *opinfo;
struct oplock_info *opinfo_get(struct ksmbd_file *fp);
void opinfo_put(struct oplock_info *opinfo);
int lease_read_to_write(struct oplock_info *opinfo);
struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
int opinfo_write_to_read(struct oplock_info *opinfo);
int opinfo_read_handle_to_read(struct oplock_info *opinfo);
int opinfo_write_to_none(struct oplock_info *opinfo);
int opinfo_read_to_none(struct oplock_info *opinfo);
struct oplock_info *opinfo;
struct oplock_info *opinfo = NULL;
struct oplock_info *opinfo;
struct oplock_info *op;
struct oplock_info *opinfo;
struct oplock_info *opinfo = opinfo_get(fp);
struct oplock_info *op;
struct oplock_info *m_opinfo;
struct oplock_info __rcu *f_opinfo;