Lines Matching refs:fp

2466 					       struct ksmbd_file *fp,  in smb2_set_stream_name_xattr()  argument
2481 fp->stream.name = xattr_stream_name; in smb2_set_stream_name_xattr()
2482 fp->stream.size = xattr_stream_size; in smb2_set_stream_name_xattr()
2492 if (fp->cdoption == FILE_OPEN_LE) { in smb2_set_stream_name_xattr()
2557 struct ksmbd_file *fp) in smb2_new_xattrs() argument
2567 da.attr = le32_to_cpu(fp->f_ci->m_fattr); in smb2_new_xattrs()
2568 da.itime = da.create_time = fp->create_time; in smb2_new_xattrs()
2578 const struct path *path, struct ksmbd_file *fp) in smb2_update_xattrs() argument
2583 fp->f_ci->m_fattr &= ~(FILE_ATTRIBUTE_HIDDEN_LE | FILE_ATTRIBUTE_SYSTEM_LE); in smb2_update_xattrs()
2593 fp->f_ci->m_fattr = cpu_to_le32(da.attr); in smb2_update_xattrs()
2594 fp->create_time = da.create_time; in smb2_update_xattrs()
2595 fp->itime = da.itime; in smb2_update_xattrs()
2693 struct ksmbd_file *fp; member
2744 dh_info->fp = ksmbd_lookup_durable_fd(persistent_id); in parse_durable_handle_context()
2745 if (!dh_info->fp) { in parse_durable_handle_context()
2751 if (memcmp(dh_info->fp->create_guid, recon_v2->CreateGuid, in parse_durable_handle_context()
2754 ksmbd_put_durable_fd(dh_info->fp); in parse_durable_handle_context()
2784 dh_info->fp = ksmbd_lookup_durable_fd(persistent_id); in parse_durable_handle_context()
2785 if (!dh_info->fp) { in parse_durable_handle_context()
2817 dh_info->fp = ksmbd_lookup_fd_cguid(durable_v2_blob->CreateGuid); in parse_durable_handle_context()
2818 if (dh_info->fp) { in parse_durable_handle_context()
2819 if (!memcmp(conn->ClientGUID, dh_info->fp->client_guid, in parse_durable_handle_context()
2826 dh_info->fp->conn = conn; in parse_durable_handle_context()
2880 struct ksmbd_file *fp = NULL; in smb2_open() local
2997 rc = smb2_check_durable_oplock(conn, share, dh_info.fp, lc, name); in smb2_open()
2999 ksmbd_put_durable_fd(dh_info.fp); in smb2_open()
3003 rc = ksmbd_reopen_durable_fd(work, dh_info.fp); in smb2_open()
3005 ksmbd_put_durable_fd(dh_info.fp); in smb2_open()
3011 ksmbd_put_durable_fd(dh_info.fp); in smb2_open()
3015 fp = dh_info.fp; in smb2_open()
3018 rc = ksmbd_vfs_getattr(&fp->filp->f_path, &stat); in smb2_open()
3022 ksmbd_put_durable_fd(fp); in smb2_open()
3337 fp = ksmbd_open_fd(work, filp); in smb2_open()
3338 if (IS_ERR(fp)) { in smb2_open()
3340 rc = PTR_ERR(fp); in smb2_open()
3341 fp = NULL; in smb2_open()
3346 ksmbd_open_durable_fd(fp); in smb2_open()
3347 if (!has_file_id(fp->persistent_id)) { in smb2_open()
3352 fp->cdoption = req->CreateDisposition; in smb2_open()
3353 fp->daccess = daccess; in smb2_open()
3354 fp->saccess = req->ShareAccess; in smb2_open()
3355 fp->coption = req->CreateOptions; in smb2_open()
3435 fp, in smb2_open()
3443 fp->attrib_only = !(req->DesiredAccess & ~(FILE_READ_ATTRIBUTES_LE | in smb2_open()
3450 down_write(&fp->f_ci->m_lock); in smb2_open()
3451 list_add(&fp->node, &fp->f_ci->m_fp_list); in smb2_open()
3452 up_write(&fp->f_ci->m_lock); in smb2_open()
3455 if (ksmbd_inode_pending_delete(fp)) { in smb2_open()
3464 !fp->attrib_only && !stream_name) { in smb2_open()
3465 smb_break_all_oplock(work, fp); in smb2_open()
3469 share_ret = ksmbd_smb_check_shared_mode(fp->filp, fp); in smb2_open()
3473 if (share_ret < 0 && !S_ISDIR(file_inode(fp->filp)->i_mode)) { in smb2_open()
3489 smb_send_parent_lease_break_noti(fp, lc); in smb2_open()
3495 rc = find_same_lease_key(sess, fp->f_ci, lc); in smb2_open()
3504 fp->persistent_id, fp, in smb2_open()
3512 ksmbd_fd_set_delete_on_close(fp, file_info); in smb2_open()
3515 rc = smb2_create_truncate(&fp->filp->f_path); in smb2_open()
3542 smb_break_all_levII_oplock(work, fp, 1); in smb2_open()
3543 err = vfs_fallocate(fp->filp, FALLOC_FL_KEEP_SIZE, 0, in smb2_open()
3575 fp->create_time = ksmbd_UnixTimeToNT(stat.btime); in smb2_open()
3577 fp->create_time = ksmbd_UnixTimeToNT(stat.ctime); in smb2_open()
3578 if (req->FileAttributes || fp->f_ci->m_fattr == 0) in smb2_open()
3579 fp->f_ci->m_fattr = in smb2_open()
3583 smb2_update_xattrs(tcon, &path, fp); in smb2_open()
3585 smb2_new_xattrs(tcon, &path, fp); in smb2_open()
3587 memcpy(fp->client_guid, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE); in smb2_open()
3593 fp->is_persistent = true; in smb2_open()
3595 fp->is_durable = true; in smb2_open()
3598 memcpy(fp->create_guid, dh_info.CreateGuid, in smb2_open()
3601 fp->durable_timeout = in smb2_open()
3605 fp->durable_timeout = 60; in smb2_open()
3612 opinfo = rcu_dereference(fp->f_opinfo); in smb2_open()
3617 rsp->CreationTime = cpu_to_le64(fp->create_time); in smb2_open()
3627 rsp->FileAttributes = fp->f_ci->m_fattr; in smb2_open()
3631 rsp->PersistentFileId = fp->persistent_id; in smb2_open()
3632 rsp->VolatileFileId = fp->volatile_id; in smb2_open()
3711 fp); in smb2_open()
3727 fp); in smb2_open()
3749 ksmbd_update_fstate(&work->sess->file_table, fp, FP_INITED); in smb2_open()
3778 if (fp) in smb2_open()
3779 ksmbd_fd_put(work, fp); in smb2_open()
4659 static int smb2_get_ea(struct ksmbd_work *work, struct ksmbd_file *fp, in smb2_get_ea() argument
4669 struct mnt_idmap *idmap = file_mnt_idmap(fp->filp); in smb2_get_ea()
4671 if (!(fp->daccess & FILE_READ_EA_LE)) { in smb2_get_ea()
4673 fp->daccess); in smb2_get_ea()
4677 path = &fp->filp->f_path; in smb2_get_ea()
4814 struct ksmbd_file *fp, void *rsp_org) in get_file_access_info() argument
4819 file_info->AccessFlags = fp->daccess; in get_file_access_info()
4825 struct ksmbd_file *fp, void *rsp_org) in get_file_basic_info() argument
4832 if (!(fp->daccess & FILE_READ_ATTRIBUTES_LE)) { in get_file_basic_info()
4834 fp->daccess); in get_file_basic_info()
4838 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_basic_info()
4844 basic_info->CreationTime = cpu_to_le64(fp->create_time); in get_file_basic_info()
4851 basic_info->Attributes = fp->f_ci->m_fattr; in get_file_basic_info()
4859 struct ksmbd_file *fp, void *rsp_org) in get_file_standard_info() argument
4866 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_standard_info()
4872 delete_pending = ksmbd_inode_pending_delete(fp); in get_file_standard_info()
4874 if (ksmbd_stream_fd(fp) == false) { in get_file_standard_info()
4878 sinfo->AllocationSize = cpu_to_le64(fp->stream.size); in get_file_standard_info()
4879 sinfo->EndOfFile = cpu_to_le64(fp->stream.size); in get_file_standard_info()
4903 struct ksmbd_file *fp, in get_file_all_info() argument
4915 if (!(fp->daccess & FILE_READ_ATTRIBUTES_LE)) { in get_file_all_info()
4917 fp->daccess); in get_file_all_info()
4921 filename = convert_to_nt_pathname(work->tcon->share_conf, &fp->filp->f_path); in get_file_all_info()
4925 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_all_info()
4931 delete_pending = ksmbd_inode_pending_delete(fp); in get_file_all_info()
4934 file_info->CreationTime = cpu_to_le64(fp->create_time); in get_file_all_info()
4941 file_info->Attributes = fp->f_ci->m_fattr; in get_file_all_info()
4943 if (ksmbd_stream_fd(fp) == false) { in get_file_all_info()
4948 file_info->AllocationSize = cpu_to_le64(fp->stream.size); in get_file_all_info()
4949 file_info->EndOfFile = cpu_to_le64(fp->stream.size); in get_file_all_info()
4958 file_info->AccessFlags = fp->daccess; in get_file_all_info()
4959 if (ksmbd_stream_fd(fp) == false) in get_file_all_info()
4960 file_info->CurrentByteOffset = cpu_to_le64(fp->filp->f_pos); in get_file_all_info()
4962 file_info->CurrentByteOffset = cpu_to_le64(fp->stream.pos); in get_file_all_info()
4963 file_info->Mode = fp->coption; in get_file_all_info()
4977 struct ksmbd_file *fp, in get_file_alternate_info() argument
4982 struct dentry *dentry = fp->filp->f_path.dentry; in get_file_alternate_info()
4998 struct ksmbd_file *fp, in get_file_stream_info() argument
5005 const struct path *path = &fp->filp->f_path; in get_file_stream_info()
5012 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_stream_info()
5102 struct ksmbd_file *fp, void *rsp_org) in get_file_internal_info() argument
5108 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_internal_info()
5122 struct ksmbd_file *fp, void *rsp_org) in get_file_network_open_info() argument
5129 if (!(fp->daccess & FILE_READ_ATTRIBUTES_LE)) { in get_file_network_open_info()
5131 fp->daccess); in get_file_network_open_info()
5135 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_network_open_info()
5142 file_info->CreationTime = cpu_to_le64(fp->create_time); in get_file_network_open_info()
5149 file_info->Attributes = fp->f_ci->m_fattr; in get_file_network_open_info()
5150 if (ksmbd_stream_fd(fp) == false) { in get_file_network_open_info()
5154 file_info->AllocationSize = cpu_to_le64(fp->stream.size); in get_file_network_open_info()
5155 file_info->EndOfFile = cpu_to_le64(fp->stream.size); in get_file_network_open_info()
5174 struct ksmbd_file *fp, void *rsp_org) in get_file_position_info() argument
5179 if (ksmbd_stream_fd(fp) == false) in get_file_position_info()
5180 file_info->CurrentByteOffset = cpu_to_le64(fp->filp->f_pos); in get_file_position_info()
5182 file_info->CurrentByteOffset = cpu_to_le64(fp->stream.pos); in get_file_position_info()
5189 struct ksmbd_file *fp, void *rsp_org) in get_file_mode_info() argument
5194 file_info->Mode = fp->coption & FILE_MODE_INFO_MASK; in get_file_mode_info()
5200 struct ksmbd_file *fp, void *rsp_org) in get_file_compression_info() argument
5206 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in get_file_compression_info()
5226 struct ksmbd_file *fp, void *rsp_org) in get_file_attribute_tag_info() argument
5230 if (!(fp->daccess & FILE_READ_ATTRIBUTES_LE)) { in get_file_attribute_tag_info()
5232 fp->daccess); in get_file_attribute_tag_info()
5237 file_info->FileAttributes = fp->f_ci->m_fattr; in get_file_attribute_tag_info()
5245 struct ksmbd_file *fp, void *rsp_org) in find_file_posix_info() argument
5248 struct inode *inode = file_inode(fp->filp); in find_file_posix_info()
5249 struct mnt_idmap *idmap = file_mnt_idmap(fp->filp); in find_file_posix_info()
5257 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in find_file_posix_info()
5263 file_info->CreationTime = cpu_to_le64(fp->create_time); in find_file_posix_info()
5270 file_info->DosAttributes = fp->f_ci->m_fattr; in find_file_posix_info()
5272 if (ksmbd_stream_fd(fp) == false) { in find_file_posix_info()
5276 file_info->EndOfFile = cpu_to_le64(fp->stream.size); in find_file_posix_info()
5277 file_info->AllocationSize = cpu_to_le64(fp->stream.size); in find_file_posix_info()
5322 struct ksmbd_file *fp; in smb2_get_info_file() local
5348 fp = ksmbd_lookup_fd_slow(work, id, pid); in smb2_get_info_file()
5349 if (!fp) in smb2_get_info_file()
5356 get_file_access_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5360 rc = get_file_basic_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5364 rc = get_file_standard_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5372 rc = get_file_all_info(work, rsp, fp, work->response_buf); in smb2_get_info_file()
5376 get_file_alternate_info(work, rsp, fp, work->response_buf); in smb2_get_info_file()
5380 rc = get_file_stream_info(work, rsp, fp, work->response_buf); in smb2_get_info_file()
5384 rc = get_file_internal_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5388 rc = get_file_network_open_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5396 rc = smb2_get_ea(work, fp, req, rsp, work->response_buf); in smb2_get_info_file()
5400 get_file_position_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5404 get_file_mode_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5408 rc = get_file_compression_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5412 rc = get_file_attribute_tag_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5419 rc = find_file_posix_info(rsp, fp, work->response_buf); in smb2_get_info_file()
5430 ksmbd_fd_put(work, fp); in smb2_get_info_file()
5656 struct ksmbd_file *fp; in smb2_get_info_sec() local
5699 fp = ksmbd_lookup_fd_slow(work, id, pid); in smb2_get_info_sec()
5700 if (!fp) in smb2_get_info_sec()
5703 idmap = file_mnt_idmap(fp->filp); in smb2_get_info_sec()
5704 inode = file_inode(fp->filp); in smb2_get_info_sec()
5710 fp->filp->f_path.dentry, in smb2_get_info_sec()
5720 ksmbd_fd_put(work, fp); in smb2_get_info_sec()
5843 struct ksmbd_file *fp; in smb2_close() local
5903 fp = ksmbd_lookup_fd_fast(work, volatile_id); in smb2_close()
5904 if (!fp) { in smb2_close()
5909 ret = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in smb2_close()
5912 ksmbd_fd_put(work, fp); in smb2_close()
5920 rsp->Attributes = fp->f_ci->m_fattr; in smb2_close()
5921 rsp->CreationTime = cpu_to_le64(fp->create_time); in smb2_close()
5928 ksmbd_fd_put(work, fp); in smb2_close()
5976 struct ksmbd_file *fp, in smb2_rename() argument
5980 struct ksmbd_share_config *share = fp->tcon->share_conf; in smb2_rename()
6015 rc = ksmbd_vfs_setxattr(file_mnt_idmap(fp->filp), in smb2_rename()
6016 &fp->filp->f_path, in smb2_rename()
6039 rc = ksmbd_vfs_rename(work, &fp->filp->f_path, new_name, flags); in smb2_rename()
6041 smb_break_all_levII_oplock(work, fp, 0); in smb2_rename()
6114 static int set_file_basic_info(struct ksmbd_file *fp, in set_file_basic_info() argument
6124 if (!(fp->daccess & FILE_WRITE_ATTRIBUTES_LE)) in set_file_basic_info()
6128 filp = fp->filp; in set_file_basic_info()
6133 fp->create_time = le64_to_cpu(file_info->CreationTime); in set_file_basic_info()
6157 fp->f_ci->m_fattr = file_info->Attributes | in set_file_basic_info()
6158 (fp->f_ci->m_fattr & FILE_ATTRIBUTE_DIRECTORY_LE); in set_file_basic_info()
6166 da.itime = fp->itime; in set_file_basic_info()
6167 da.create_time = fp->create_time; in set_file_basic_info()
6168 da.attr = le32_to_cpu(fp->f_ci->m_fattr); in set_file_basic_info()
6195 struct ksmbd_file *fp, in set_file_allocation_info() argument
6209 if (!(fp->daccess & FILE_WRITE_DATA_LE)) in set_file_allocation_info()
6212 if (ksmbd_stream_fd(fp) == true) in set_file_allocation_info()
6215 rc = vfs_getattr(&fp->filp->f_path, &stat, STATX_BASIC_STATS, in set_file_allocation_info()
6221 inode = file_inode(fp->filp); in set_file_allocation_info()
6224 smb_break_all_levII_oplock(work, fp, 1); in set_file_allocation_info()
6225 rc = vfs_fallocate(fp->filp, FALLOC_FL_KEEP_SIZE, 0, in set_file_allocation_info()
6242 rc = ksmbd_vfs_truncate(work, fp, alloc_blks * 512); in set_file_allocation_info()
6253 static int set_end_of_file_info(struct ksmbd_work *work, struct ksmbd_file *fp, in set_end_of_file_info() argument
6260 if (!(fp->daccess & FILE_WRITE_DATA_LE)) in set_end_of_file_info()
6264 inode = file_inode(fp->filp); in set_end_of_file_info()
6274 ksmbd_stream_fd(fp) == false) { in set_end_of_file_info()
6276 rc = ksmbd_vfs_truncate(work, fp, newsize); in set_end_of_file_info()
6287 static int set_rename_info(struct ksmbd_work *work, struct ksmbd_file *fp, in set_rename_info() argument
6291 if (!(fp->daccess & FILE_DELETE_LE)) { in set_rename_info()
6292 pr_err("no right to delete : 0x%x\n", fp->daccess); in set_rename_info()
6303 return smb2_rename(work, fp, rename_info, work->conn->local_nls); in set_rename_info()
6306 static int set_file_disposition_info(struct ksmbd_file *fp, in set_file_disposition_info() argument
6311 if (!(fp->daccess & FILE_DELETE_LE)) { in set_file_disposition_info()
6312 pr_err("no right to delete : 0x%x\n", fp->daccess); in set_file_disposition_info()
6316 inode = file_inode(fp->filp); in set_file_disposition_info()
6319 ksmbd_vfs_empty_dir(fp) == -ENOTEMPTY) in set_file_disposition_info()
6321 ksmbd_set_inode_pending_delete(fp); in set_file_disposition_info()
6323 ksmbd_clear_inode_pending_delete(fp); in set_file_disposition_info()
6328 static int set_file_position_info(struct ksmbd_file *fp, in set_file_position_info() argument
6335 inode = file_inode(fp->filp); in set_file_position_info()
6340 (fp->coption == FILE_NO_INTERMEDIATE_BUFFERING_LE && in set_file_position_info()
6347 if (ksmbd_stream_fd(fp) == false) in set_file_position_info()
6348 fp->filp->f_pos = current_byte_offset; in set_file_position_info()
6352 fp->stream.pos = current_byte_offset; in set_file_position_info()
6357 static int set_file_mode_info(struct ksmbd_file *fp, in set_file_mode_info() argument
6373 ksmbd_vfs_set_fadvise(fp->filp, mode); in set_file_mode_info()
6374 fp->coption = mode; in set_file_mode_info()
6388 static int smb2_set_info_file(struct ksmbd_work *work, struct ksmbd_file *fp, in smb2_set_info_file() argument
6401 return set_file_basic_info(fp, (struct smb2_file_basic_info *)buffer, share); in smb2_set_info_file()
6408 return set_file_allocation_info(work, fp, in smb2_set_info_file()
6416 return set_end_of_file_info(work, fp, in smb2_set_info_file()
6424 return set_rename_info(work, fp, in smb2_set_info_file()
6435 buf_len, fp->filp, in smb2_set_info_file()
6443 return set_file_disposition_info(fp, in smb2_set_info_file()
6448 if (!(fp->daccess & FILE_WRITE_EA_LE)) { in smb2_set_info_file()
6450 fp->daccess); in smb2_set_info_file()
6458 buf_len, &fp->filp->f_path, true); in smb2_set_info_file()
6465 return set_file_position_info(fp, (struct smb2_file_pos_info *)buffer); in smb2_set_info_file()
6472 return set_file_mode_info(fp, (struct smb2_file_mode_info *)buffer); in smb2_set_info_file()
6480 static int smb2_set_info_sec(struct ksmbd_file *fp, int addition_info, in smb2_set_info_sec() argument
6485 fp->saccess |= FILE_SHARE_DELETE_LE; in smb2_set_info_sec()
6487 return set_info_sec(fp->conn, fp->tcon, &fp->filp->f_path, pntsd, in smb2_set_info_sec()
6501 struct ksmbd_file *fp = NULL; in smb2_set_info() local
6533 fp = ksmbd_lookup_fd_slow(work, id, pid); in smb2_set_info()
6534 if (!fp) { in smb2_set_info()
6543 rc = smb2_set_info_file(work, fp, req, work->tcon->share_conf); in smb2_set_info()
6551 rc = smb2_set_info_sec(fp, in smb2_set_info()
6569 ksmbd_fd_put(work, fp); in smb2_set_info()
6592 ksmbd_fd_put(work, fp); in smb2_set_info()
6721 struct ksmbd_file *fp = NULL; in smb2_read() local
6780 fp = ksmbd_lookup_fd_slow(work, id, pid); in smb2_read()
6781 if (!fp) { in smb2_read()
6786 if (!(fp->daccess & (FILE_READ_DATA_LE | FILE_READ_ATTRIBUTES_LE))) { in smb2_read()
6787 pr_err("Not permitted to read : 0x%x\n", fp->daccess); in smb2_read()
6808 fp->filp, offset, length); in smb2_read()
6816 nbytes = ksmbd_vfs_read(work, fp, length, &offset, aux_payload_buf); in smb2_read()
6826 ksmbd_fd_put(work, fp); in smb2_read()
6860 ksmbd_fd_put(work, fp); in smb2_read()
6882 ksmbd_fd_put(work, fp); in smb2_read()
6955 struct ksmbd_file *fp, in smb2_write_rdma_channel() argument
6975 ret = ksmbd_vfs_write(work, fp, data_buf, length, &offset, sync, &nbytes); in smb2_write_rdma_channel()
6993 struct ksmbd_file *fp = NULL; in smb2_write() local
7046 fp = ksmbd_lookup_fd_slow(work, req->VolatileFileId, req->PersistentFileId); in smb2_write()
7047 if (!fp) { in smb2_write()
7052 if (!(fp->daccess & (FILE_WRITE_DATA_LE | FILE_READ_ATTRIBUTES_LE))) { in smb2_write()
7053 pr_err("Not permitted to write : 0x%x\n", fp->daccess); in smb2_write()
7080 fp->filp, offset, length); in smb2_write()
7081 err = ksmbd_vfs_write(work, fp, data_buf, length, &offset, in smb2_write()
7089 nbytes = smb2_write_rdma_channel(work, req, fp, offset, length, in smb2_write()
7106 ksmbd_fd_put(work, fp); in smb2_write()
7126 ksmbd_fd_put(work, fp); in smb2_write()
7339 struct ksmbd_file *fp = NULL; in smb2_lock() local
7357 fp = ksmbd_lookup_fd_slow(work, req->VolatileFileId, req->PersistentFileId); in smb2_lock()
7358 if (!fp) { in smb2_lock()
7364 filp = fp->filp; in smb2_lock()
7578 spin_lock(&fp->f_lock); in smb2_lock()
7579 list_add(&work->fp_entry, &fp->blocked_works); in smb2_lock()
7580 spin_unlock(&fp->f_lock); in smb2_lock()
7586 spin_lock(&fp->f_lock); in smb2_lock()
7588 spin_unlock(&fp->f_lock); in smb2_lock()
7619 &fp->lock_list); in smb2_lock()
7628 if (atomic_read(&fp->f_ci->op_count) > 1) in smb2_lock()
7629 smb_break_all_oplock(work, fp); in smb2_lock()
7639 ksmbd_fd_put(work, fp); in smb2_lock()
7687 ksmbd_fd_put(work, fp); in smb2_lock()
7978 struct ksmbd_file *fp; in fsctl_query_allocated_ranges() local
7992 fp = ksmbd_lookup_fd_fast(work, id); in fsctl_query_allocated_ranges()
7993 if (!fp) in fsctl_query_allocated_ranges()
7996 ret = ksmbd_vfs_fqar_lseek(fp, start, length, in fsctl_query_allocated_ranges()
8001 ksmbd_fd_put(work, fp); in fsctl_query_allocated_ranges()
8053 struct ksmbd_file *fp; in fsctl_set_sparse() local
8058 fp = ksmbd_lookup_fd_fast(work, id); in fsctl_set_sparse()
8059 if (!fp) in fsctl_set_sparse()
8061 idmap = file_mnt_idmap(fp->filp); in fsctl_set_sparse()
8063 old_fattr = fp->f_ci->m_fattr; in fsctl_set_sparse()
8065 fp->f_ci->m_fattr |= FILE_ATTRIBUTE_SPARSE_FILE_LE; in fsctl_set_sparse()
8067 fp->f_ci->m_fattr &= ~FILE_ATTRIBUTE_SPARSE_FILE_LE; in fsctl_set_sparse()
8069 if (fp->f_ci->m_fattr != old_fattr && in fsctl_set_sparse()
8075 fp->filp->f_path.dentry, &da); in fsctl_set_sparse()
8079 da.attr = le32_to_cpu(fp->f_ci->m_fattr); in fsctl_set_sparse()
8081 &fp->filp->f_path, in fsctl_set_sparse()
8084 fp->f_ci->m_fattr = old_fattr; in fsctl_set_sparse()
8088 ksmbd_fd_put(work, fp); in fsctl_set_sparse()
8096 struct ksmbd_file *fp; in fsctl_request_resume_key() local
8098 fp = ksmbd_lookup_fd_slow(work, req->VolatileFileId, req->PersistentFileId); in fsctl_request_resume_key()
8099 if (!fp) in fsctl_request_resume_key()
8105 ksmbd_fd_put(work, fp); in fsctl_request_resume_key()
8281 struct ksmbd_file *fp; in smb2_ioctl() local
8308 fp = ksmbd_lookup_fd_fast(work, id); in smb2_ioctl()
8309 if (!fp) { in smb2_ioctl()
8314 ret = ksmbd_vfs_zero_data(work, fp, off, len); in smb2_ioctl()
8315 ksmbd_fd_put(work, fp); in smb2_ioctl()
8344 struct ksmbd_file *fp; in smb2_ioctl() local
8347 fp = ksmbd_lookup_fd_fast(work, id); in smb2_ioctl()
8348 if (!fp) { in smb2_ioctl()
8355 smb2_get_reparse_tag_special_file(file_inode(fp->filp)->i_mode); in smb2_ioctl()
8357 ksmbd_fd_put(work, fp); in smb2_ioctl()
8470 struct ksmbd_file *fp; in smb20_oplock_break_ack() local
8486 fp = ksmbd_lookup_fd_slow(work, volatile_id, persistent_id); in smb20_oplock_break_ack()
8487 if (!fp) { in smb20_oplock_break_ack()
8493 opinfo = opinfo_get(fp); in smb20_oplock_break_ack()
8498 ksmbd_fd_put(work, fp); in smb20_oplock_break_ack()
8582 ksmbd_fd_put(work, fp); in smb20_oplock_break_ack()