ksmbd_file
struct ksmbd_file;
void smb_send_parent_lease_break_noti(struct ksmbd_file *fp,
void smb_lazy_parent_lease_break_close(struct ksmbd_file *fp)
struct ksmbd_file *fp, __u16 tid,
struct ksmbd_file *fp, int is_trunc)
void smb_break_all_levII_oplock(struct ksmbd_work *work, struct ksmbd_file *fp,
void smb_break_all_oplock(struct ksmbd_work *work, struct ksmbd_file *fp)
struct oplock_info *opinfo_get(struct ksmbd_file *fp)
void create_durable_v2_rsp_buf(char *cc, struct ksmbd_file *fp)
void create_posix_rsp_buf(char *cc, struct ksmbd_file *fp)
struct ksmbd_file *fp,
static void opinfo_add(struct oplock_info *opinfo, struct ksmbd_file *fp)
static unsigned long opinfo_count(struct ksmbd_file *fp)
static void opinfo_count_inc(struct ksmbd_file *fp)
static void opinfo_count_dec(struct ksmbd_file *fp)
void close_id_del_oplock(struct ksmbd_file *fp)
struct ksmbd_file *fp;
void smb_break_all_oplock(struct ksmbd_work *work, struct ksmbd_file *fp);
struct oplock_info *opinfo_get(struct ksmbd_file *fp);
void create_durable_v2_rsp_buf(char *cc, struct ksmbd_file *fp);
void create_posix_rsp_buf(char *cc, struct ksmbd_file *fp);
void smb_send_parent_lease_break_noti(struct ksmbd_file *fp,
void smb_lazy_parent_lease_break_close(struct ksmbd_file *fp);
struct ksmbd_file *fp,
struct ksmbd_file *o_fp;
u64 pid, struct ksmbd_file *fp, __u16 tid,
struct ksmbd_file *fp, int is_trunc);
void close_id_del_oplock(struct ksmbd_file *fp);
struct ksmbd_file *fp,
struct ksmbd_file *fp)
const struct path *path, struct ksmbd_file *fp)
struct ksmbd_file *fp;
struct ksmbd_file *fp = NULL;
struct ksmbd_file *dir_fp;
struct ksmbd_file *dir_fp = NULL;
static int smb2_get_ea(struct ksmbd_work *work, struct ksmbd_file *fp,
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp,
struct ksmbd_file *fp,
struct ksmbd_file *fp,
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp, void *rsp_org)
struct ksmbd_file *fp;
struct ksmbd_file *fp;
struct ksmbd_file *fp;
struct ksmbd_file *fp,
static int set_file_basic_info(struct ksmbd_file *fp,
struct ksmbd_file *fp,
static int set_end_of_file_info(struct ksmbd_work *work, struct ksmbd_file *fp,
static int set_rename_info(struct ksmbd_work *work, struct ksmbd_file *fp,
static int set_file_disposition_info(struct ksmbd_file *fp,
static int set_file_position_info(struct ksmbd_file *fp,
static int set_file_mode_info(struct ksmbd_file *fp,
static int smb2_set_info_file(struct ksmbd_work *work, struct ksmbd_file *fp,
static int smb2_set_info_sec(struct ksmbd_file *fp, int addition_info,
struct ksmbd_file *fp = NULL;
struct ksmbd_file *fp = NULL;
struct ksmbd_file *fp,
struct ksmbd_file *fp = NULL;
struct ksmbd_file *fp = NULL;
struct ksmbd_file *src_fp = NULL, *dst_fp = NULL;
struct ksmbd_file *fp;
struct ksmbd_file *fp;
struct ksmbd_file *fp;
struct ksmbd_file *fp;
struct ksmbd_file *fp;
struct ksmbd_file *fp_in, *fp_out = NULL;
struct ksmbd_file *fp;
struct ksmbd_file *dir,
static void smb_shared_mode_error(int error, struct ksmbd_file *prev_fp,
struct ksmbd_file *curr_fp)
int ksmbd_smb_check_shared_mode(struct file *filp, struct ksmbd_file *curr_fp)
struct ksmbd_file *prev_fp;
struct ksmbd_file *dir,
int ksmbd_smb_check_shared_mode(struct file *filp, struct ksmbd_file *curr_fp);
int ksmbd_vfs_empty_dir(struct ksmbd_file *fp)
struct ksmbd_file *src_fp,
struct ksmbd_file *dst_fp,
static int ksmbd_vfs_stream_read(struct ksmbd_file *fp, char *buf, loff_t *pos,
int ksmbd_vfs_read(struct ksmbd_work *work, struct ksmbd_file *fp, size_t count,
static int ksmbd_vfs_stream_write(struct ksmbd_file *fp, char *buf, loff_t *pos,
int ksmbd_vfs_write(struct ksmbd_work *work, struct ksmbd_file *fp,
struct ksmbd_file *fp;
struct ksmbd_file *parent_fp;
struct ksmbd_file *fp, loff_t size)
int ksmbd_vfs_zero_data(struct ksmbd_work *work, struct ksmbd_file *fp,
int ksmbd_vfs_fqar_lseek(struct ksmbd_file *fp, loff_t start, loff_t length,
int ksmbd_vfs_empty_dir(struct ksmbd_file *fp);
int ksmbd_vfs_zero_data(struct ksmbd_work *work, struct ksmbd_file *fp,
int ksmbd_vfs_fqar_lseek(struct ksmbd_file *fp, loff_t start, loff_t length,
struct ksmbd_file;
int ksmbd_vfs_read(struct ksmbd_work *work, struct ksmbd_file *fp, size_t count,
int ksmbd_vfs_write(struct ksmbd_work *work, struct ksmbd_file *fp,
struct ksmbd_file *fp, loff_t size);
struct ksmbd_file *src_fp,
struct ksmbd_file *dst_fp,
struct ksmbd_file *fp = NULL;
struct ksmbd_file *fp, char *name)
int ksmbd_reopen_durable_fd(struct ksmbd_work *work, struct ksmbd_file *fp)
sizeof(struct ksmbd_file), 0,
static struct ksmbd_inode *ksmbd_inode_lookup(struct ksmbd_file *fp)
bool ksmbd_inode_pending_delete(struct ksmbd_file *fp)
void ksmbd_set_inode_pending_delete(struct ksmbd_file *fp)
void ksmbd_clear_inode_pending_delete(struct ksmbd_file *fp)
void ksmbd_fd_set_delete_on_close(struct ksmbd_file *fp,
static int ksmbd_inode_init(struct ksmbd_inode *ci, struct ksmbd_file *fp)
static struct ksmbd_inode *ksmbd_inode_get(struct ksmbd_file *fp)
static void __ksmbd_inode_close(struct ksmbd_file *fp)
static void __ksmbd_remove_durable_fd(struct ksmbd_file *fp)
static void ksmbd_remove_durable_fd(struct ksmbd_file *fp)
static void __ksmbd_remove_fd(struct ksmbd_file_table *ft, struct ksmbd_file *fp)
static void __ksmbd_close_fd(struct ksmbd_file_table *ft, struct ksmbd_file *fp)
static struct ksmbd_file *ksmbd_fp_get(struct ksmbd_file *fp)
static struct ksmbd_file *__ksmbd_lookup_fd(struct ksmbd_file_table *ft,
struct ksmbd_file *fp;
static void __put_fd_final(struct ksmbd_work *work, struct ksmbd_file *fp)
static void set_close_state_blocked_works(struct ksmbd_file *fp)
struct ksmbd_file *fp;
void ksmbd_fd_put(struct ksmbd_work *work, struct ksmbd_file *fp)
static bool __sanity_check(struct ksmbd_tree_connect *tcon, struct ksmbd_file *fp)
struct ksmbd_file *ksmbd_lookup_foreign_fd(struct ksmbd_work *work, u64 id)
struct ksmbd_file *ksmbd_lookup_fd_fast(struct ksmbd_work *work, u64 id)
struct ksmbd_file *fp = __ksmbd_lookup_fd(&work->sess->file_table, id);
struct ksmbd_file *ksmbd_lookup_fd_slow(struct ksmbd_work *work, u64 id,
struct ksmbd_file *fp;
struct ksmbd_file *ksmbd_lookup_global_fd(unsigned long long id)
struct ksmbd_file *ksmbd_lookup_durable_fd(unsigned long long id)
struct ksmbd_file *fp;
void ksmbd_put_durable_fd(struct ksmbd_file *fp)
struct ksmbd_file *ksmbd_lookup_fd_cguid(char *cguid)
struct ksmbd_file *fp = NULL;
struct ksmbd_file *ksmbd_lookup_fd_inode(struct dentry *dentry)
struct ksmbd_file *lfp;
static void __open_id_set(struct ksmbd_file *fp, u64 id, int type)
static int __open_id(struct ksmbd_file_table *ft, struct ksmbd_file *fp,
struct ksmbd_file *fp = NULL;
unsigned int ksmbd_open_durable_fd(struct ksmbd_file *fp)
struct ksmbd_file *ksmbd_open_fd(struct ksmbd_work *work, struct file *filp)
struct ksmbd_file *fp;
void ksmbd_update_fstate(struct ksmbd_file_table *ft, struct ksmbd_file *fp,
struct ksmbd_file *fp))
struct ksmbd_file *fp;
static inline bool is_reconnectable(struct ksmbd_file *fp)
struct ksmbd_file *fp)
struct ksmbd_file *fp;
fp = list_first_entry(head, struct ksmbd_file, node);
struct ksmbd_file *fp = NULL;
struct ksmbd_file *fp)
static inline bool ksmbd_stream_fd(struct ksmbd_file *fp)
struct ksmbd_file *ksmbd_lookup_fd_fast(struct ksmbd_work *work, u64 id);
struct ksmbd_file *ksmbd_lookup_foreign_fd(struct ksmbd_work *work, u64 id);
struct ksmbd_file *ksmbd_lookup_fd_slow(struct ksmbd_work *work, u64 id,
void ksmbd_fd_put(struct ksmbd_work *work, struct ksmbd_file *fp);
struct ksmbd_file *ksmbd_lookup_global_fd(unsigned long long id);
struct ksmbd_file *ksmbd_lookup_durable_fd(unsigned long long id);
void ksmbd_put_durable_fd(struct ksmbd_file *fp);
struct ksmbd_file *ksmbd_lookup_fd_cguid(char *cguid);
struct ksmbd_file *ksmbd_lookup_fd_inode(struct dentry *dentry);
unsigned int ksmbd_open_durable_fd(struct ksmbd_file *fp);
struct ksmbd_file *ksmbd_open_fd(struct ksmbd_work *work, struct file *filp);
void ksmbd_update_fstate(struct ksmbd_file_table *ft, struct ksmbd_file *fp,
bool ksmbd_inode_pending_delete(struct ksmbd_file *fp);
void ksmbd_set_inode_pending_delete(struct ksmbd_file *fp);
void ksmbd_clear_inode_pending_delete(struct ksmbd_file *fp);
void ksmbd_fd_set_delete_on_close(struct ksmbd_file *fp,
int ksmbd_reopen_durable_fd(struct ksmbd_work *work, struct ksmbd_file *fp);
struct ksmbd_file *fp, char *name);