Lines Matching refs:cfile
453 struct cifsFileInfo *cfile; in cifs_new_fileinfo() local
458 cfile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL); in cifs_new_fileinfo()
459 if (cfile == NULL) in cifs_new_fileinfo()
460 return cfile; in cifs_new_fileinfo()
464 kfree(cfile); in cifs_new_fileinfo()
469 cfile->symlink_target = kstrdup(symlink_target, GFP_KERNEL); in cifs_new_fileinfo()
470 if (!cfile->symlink_target) { in cifs_new_fileinfo()
472 kfree(cfile); in cifs_new_fileinfo()
478 fdlocks->cfile = cfile; in cifs_new_fileinfo()
479 cfile->llist = fdlocks; in cifs_new_fileinfo()
481 cfile->count = 1; in cifs_new_fileinfo()
482 cfile->pid = current->tgid; in cifs_new_fileinfo()
483 cfile->uid = current_fsuid(); in cifs_new_fileinfo()
484 cfile->dentry = dget(dentry); in cifs_new_fileinfo()
485 cfile->f_flags = file->f_flags; in cifs_new_fileinfo()
486 cfile->invalidHandle = false; in cifs_new_fileinfo()
487 cfile->deferred_close_scheduled = false; in cifs_new_fileinfo()
488 cfile->tlink = cifs_get_tlink(tlink); in cifs_new_fileinfo()
489 INIT_WORK(&cfile->oplock_break, cifs_oplock_break); in cifs_new_fileinfo()
490 INIT_WORK(&cfile->put, cifsFileInfo_put_work); in cifs_new_fileinfo()
491 INIT_DELAYED_WORK(&cfile->deferred, smb2_deferred_work_close); in cifs_new_fileinfo()
492 mutex_init(&cfile->fh_mutex); in cifs_new_fileinfo()
493 spin_lock_init(&cfile->file_info_lock); in cifs_new_fileinfo()
516 server->ops->set_fid(cfile, fid, oplock); in cifs_new_fileinfo()
518 list_add(&cfile->tlist, &tcon->openFileList); in cifs_new_fileinfo()
524 list_add(&cfile->flist, &cinode->openFileList); in cifs_new_fileinfo()
526 list_add_tail(&cfile->flist, &cinode->openFileList); in cifs_new_fileinfo()
533 file->private_data = cfile; in cifs_new_fileinfo()
534 return cfile; in cifs_new_fileinfo()
697 struct cifsFileInfo *cfile = NULL; in cifs_open() local
740 rc = cifs_get_readable_path(tcon, full_path, &cfile); in cifs_open()
742 if (file->f_flags == cfile->f_flags) { in cifs_open()
743 file->private_data = cfile; in cifs_open()
745 cifs_del_deferred_close(cfile); in cifs_open()
749 _cifsFileInfo_put(cfile, true, false); in cifs_open()
802 cfile = cifs_new_fileinfo(&fid, file, tlink, oplock, data.symlink_target); in cifs_open()
803 if (cfile == NULL) { in cifs_open()
827 cfile->pid); in cifs_open()
849 static int cifs_push_posix_locks(struct cifsFileInfo *cfile);
857 cifs_relock_file(struct cifsFileInfo *cfile) in cifs_relock_file() argument
859 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_relock_file()
860 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_relock_file()
863 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb); in cifs_relock_file()
877 rc = cifs_push_posix_locks(cfile); in cifs_relock_file()
880 rc = tcon->ses->server->ops->push_mand_locks(cfile); in cifs_relock_file()
887 cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush) in cifs_reopen_file() argument
905 mutex_lock(&cfile->fh_mutex); in cifs_reopen_file()
906 if (!cfile->invalidHandle) { in cifs_reopen_file()
907 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
912 inode = d_inode(cfile->dentry); in cifs_reopen_file()
914 tcon = tlink_tcon(cfile->tlink); in cifs_reopen_file()
924 full_path = build_path_from_dentry(cfile->dentry, page); in cifs_reopen_file()
926 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
933 inode, cfile->f_flags, full_path); in cifs_reopen_file()
948 unsigned int oflags = cfile->f_flags & in cifs_reopen_file()
953 oflags, &oplock, &cfile->fid.netfid, xid); in cifs_reopen_file()
966 desired_access = cifs_convert_flags(cfile->f_flags); in cifs_reopen_file()
969 if (cfile->f_flags & O_SYNC) in cifs_reopen_file()
972 if (cfile->f_flags & O_DIRECT) in cifs_reopen_file()
976 server->ops->get_lease_key(inode, &cfile->fid); in cifs_reopen_file()
985 .fid = &cfile->fid, in cifs_reopen_file()
1005 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
1014 cfile->invalidHandle = false; in cifs_reopen_file()
1015 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
1048 server->ops->set_fid(cfile, &cfile->fid, oplock); in cifs_reopen_file()
1050 cifs_relock_file(cfile); in cifs_reopen_file()
1060 struct cifsFileInfo *cfile = container_of(work, in smb2_deferred_work_close() local
1063 spin_lock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); in smb2_deferred_work_close()
1064 cifs_del_deferred_close(cfile); in smb2_deferred_work_close()
1065 cfile->deferred_close_scheduled = false; in smb2_deferred_work_close()
1066 spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); in smb2_deferred_work_close()
1067 _cifsFileInfo_put(cfile, true, false); in smb2_deferred_work_close()
1072 struct cifsFileInfo *cfile; in cifs_close() local
1080 cfile = file->private_data; in cifs_close()
1091 cifs_add_deferred_close(cfile, dclose); in cifs_close()
1092 if (cfile->deferred_close_scheduled && in cifs_close()
1093 delayed_work_pending(&cfile->deferred)) { in cifs_close()
1099 &cfile->deferred, cifs_sb->ctx->closetimeo)) in cifs_close()
1100 cifsFileInfo_get(cfile); in cifs_close()
1104 &cfile->deferred, cifs_sb->ctx->closetimeo); in cifs_close()
1105 cfile->deferred_close_scheduled = true; in cifs_close()
1110 _cifsFileInfo_put(cfile, true, false); in cifs_close()
1112 _cifsFileInfo_put(cfile, true, false); in cifs_close()
1157 struct cifsFileInfo *cfile = file->private_data; in cifs_closedir() local
1164 if (cfile == NULL) in cifs_closedir()
1168 tcon = tlink_tcon(cfile->tlink); in cifs_closedir()
1172 spin_lock(&cfile->file_info_lock); in cifs_closedir()
1173 if (server->ops->dir_needs_close(cfile)) { in cifs_closedir()
1174 cfile->invalidHandle = true; in cifs_closedir()
1175 spin_unlock(&cfile->file_info_lock); in cifs_closedir()
1177 rc = server->ops->close_dir(xid, tcon, &cfile->fid); in cifs_closedir()
1184 spin_unlock(&cfile->file_info_lock); in cifs_closedir()
1186 buf = cfile->srch_inf.ntwrk_buf_start; in cifs_closedir()
1189 cfile->srch_inf.ntwrk_buf_start = NULL; in cifs_closedir()
1190 if (cfile->srch_inf.smallBuf) in cifs_closedir()
1196 cifs_put_tlink(cfile->tlink); in cifs_closedir()
1239 struct cifsFileInfo *cfile, in cifs_find_fid_lock_conflict() argument
1243 struct cifsFileInfo *cur_cfile = fdlocks->cfile; in cifs_find_fid_lock_conflict()
1244 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in cifs_find_fid_lock_conflict()
1251 server->ops->compare_fids(cfile, cur_cfile)) { in cifs_find_fid_lock_conflict()
1258 ((server->ops->compare_fids(cfile, cur_cfile) && in cifs_find_fid_lock_conflict()
1263 server->ops->compare_fids(cfile, cur_cfile)) in cifs_find_fid_lock_conflict()
1273 cifs_find_lock_conflict(struct cifsFileInfo *cfile, __u64 offset, __u64 length, in cifs_find_lock_conflict() argument
1279 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_find_lock_conflict()
1283 flags, cfile, conf_lock, in cifs_find_lock_conflict()
1300 cifs_lock_test(struct cifsFileInfo *cfile, __u64 offset, __u64 length, in cifs_lock_test() argument
1305 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_lock_test()
1306 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in cifs_lock_test()
1311 exist = cifs_find_lock_conflict(cfile, offset, length, type, in cifs_lock_test()
1332 cifs_lock_add(struct cifsFileInfo *cfile, struct cifsLockInfo *lock) in cifs_lock_add() argument
1334 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_lock_add()
1336 list_add_tail(&lock->llist, &cfile->llist->locks); in cifs_lock_add()
1347 cifs_lock_add_if(struct cifsFileInfo *cfile, struct cifsLockInfo *lock, in cifs_lock_add_if() argument
1351 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_lock_add_if()
1359 exist = cifs_find_lock_conflict(cfile, lock->offset, lock->length, in cifs_lock_add_if()
1363 list_add_tail(&lock->llist, &cfile->llist->locks); in cifs_lock_add_if()
1446 cifs_push_mandatory_locks(struct cifsFileInfo *cfile) in cifs_push_mandatory_locks() argument
1461 tcon = tlink_tcon(cfile->tlink); in cifs_push_mandatory_locks()
1488 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) { in cifs_push_mandatory_locks()
1498 cfile->fid.netfid, in cifs_push_mandatory_locks()
1510 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid, in cifs_push_mandatory_locks()
1540 cifs_push_posix_locks(struct cifsFileInfo *cfile) in cifs_push_posix_locks() argument
1542 struct inode *inode = d_inode(cfile->dentry); in cifs_push_posix_locks()
1543 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_push_posix_locks()
1597 lck->netfid = cfile->fid.netfid; in cifs_push_posix_locks()
1629 cifs_push_locks(struct cifsFileInfo *cfile) in cifs_push_locks() argument
1631 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_push_locks()
1632 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_push_locks()
1635 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb); in cifs_push_locks()
1649 rc = cifs_push_posix_locks(cfile); in cifs_push_locks()
1652 rc = tcon->ses->server->ops->push_mand_locks(cfile); in cifs_push_locks()
1712 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data; in cifs_getlk() local
1713 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_getlk()
1716 __u16 netfid = cfile->fid.netfid; in cifs_getlk()
1737 rc = cifs_lock_test(cfile, flock->fl_start, length, type, flock); in cifs_getlk()
1742 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, type, in cifs_getlk()
1745 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_getlk()
1761 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_getlk()
1765 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_getlk()
1798 cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock, in cifs_unlock_range() argument
1809 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_unlock_range()
1810 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_unlock_range()
1839 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) { in cifs_unlock_range()
1871 cfile->fid.netfid, in cifs_unlock_range()
1880 &cfile->llist->locks); in cifs_unlock_range()
1894 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid, in cifs_unlock_range()
1898 &cfile->llist->locks); in cifs_unlock_range()
1918 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data; in cifs_setlk() local
1919 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_setlk()
1921 struct inode *inode = d_inode(cfile->dentry); in cifs_setlk()
1939 rc = CIFSSMBPosixLock(xid, tcon, cfile->fid.netfid, in cifs_setlk()
1954 rc = cifs_lock_add_if(cfile, lock, wait_flag); in cifs_setlk()
1977 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_setlk()
1984 cifs_lock_add(cfile, lock); in cifs_setlk()
1986 rc = server->ops->mand_unlock_range(cfile, flock, xid); in cifs_setlk()
2014 struct cifsFileInfo *cfile; in cifs_flock() local
2025 cfile = (struct cifsFileInfo *)file->private_data; in cifs_flock()
2026 tcon = tlink_tcon(cfile->tlink); in cifs_flock()
2063 struct cifsFileInfo *cfile; in cifs_lock() local
2073 cfile = (struct cifsFileInfo *)file->private_data; in cifs_lock()
2074 tcon = tlink_tcon(cfile->tlink); in cifs_lock()
2079 set_bit(CIFS_INO_CLOSE_ON_LOCK, &CIFS_I(d_inode(cfile->dentry))->flags); in cifs_lock()
2336 struct cifsFileInfo *cfile; in find_writable_file() local
2339 rc = cifs_get_writable_file(cifs_inode, flags, &cfile); in find_writable_file()
2343 return cfile; in find_writable_file()
2351 struct cifsFileInfo *cfile; in cifs_get_writable_path() local
2357 list_for_each_entry(cfile, &tcon->openFileList, tlist) { in cifs_get_writable_path()
2359 const char *full_path = build_path_from_dentry(cfile->dentry, page); in cifs_get_writable_path()
2368 cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_get_writable_path()
2383 struct cifsFileInfo *cfile; in cifs_get_readable_path() local
2389 list_for_each_entry(cfile, &tcon->openFileList, tlist) { in cifs_get_readable_path()
2391 const char *full_path = build_path_from_dentry(cfile->dentry, page); in cifs_get_readable_path()
2400 cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_get_readable_path()
2424 if (wdata->cfile) in cifs_writedata_release()
2425 cifsFileInfo_put(wdata->cfile); in cifs_writedata_release()
2438 struct inode *inode = d_inode(wdata->cfile->dentry); in cifs_writev_requeue()
2443 server = tlink_tcon(wdata->cfile->tlink)->ses->server; in cifs_writev_requeue()
2482 &wdata2->cfile); in cifs_writev_requeue()
2483 if (!wdata2->cfile) { in cifs_writev_requeue()
2489 wdata2->pid = wdata2->cfile->pid; in cifs_writev_requeue()
2521 struct inode *inode = d_inode(wdata->cfile->dentry); in cifs_writev_complete()
2527 cifs_stats_bytes_written(tlink_tcon(wdata->cfile->tlink), in cifs_writev_complete()
2736 struct cifsFileInfo *cfile = NULL; in cifs_write_back_from_locked_folio() local
2753 rc = cifs_get_writable_file(CIFS_I(inode), FIND_WR_ANY, &cfile); in cifs_write_back_from_locked_folio()
2772 wdata->pid = cfile->pid; in cifs_write_back_from_locked_folio()
2774 wdata->cfile = cfile; in cifs_write_back_from_locked_folio()
2776 cfile = NULL; in cifs_write_back_from_locked_folio()
2822 if (wdata->cfile->invalidHandle) in cifs_write_back_from_locked_folio()
2842 if (cfile) in cifs_write_back_from_locked_folio()
2843 cifsFileInfo_put(cfile); in cifs_write_back_from_locked_folio()
3047 struct cifsFileInfo *cfile = file->private_data; in cifs_write_end() local
3048 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb); in cifs_write_end()
3053 pid = cfile->pid; in cifs_write_end()
3079 rc = cifs_write(cfile, pid, page_data + offset, copied, &pos); in cifs_write_end()
3244 struct inode *inode = d_inode(wdata->cfile->dentry); in cifs_uncached_writev_complete()
3269 if (wdata->cfile->invalidHandle) { in cifs_resend_wdata()
3270 rc = cifs_reopen_file(wdata->cfile, false); in cifs_resend_wdata()
3299 if (wdata->cfile->invalidHandle) in cifs_resend_wdata()
3442 wdata->cfile = cifsFileInfo_get(open_file); in cifs_write_from_iter()
3456 if (wdata->cfile->invalidHandle) in cifs_write_from_iter()
3487 struct dentry *dentry = ctx->cfile->dentry; in collect_uncached_write_data()
3490 tcon = tlink_tcon(ctx->cfile->tlink); in collect_uncached_write_data()
3536 ctx->cfile, cifs_sb, &tmp_list, in collect_uncached_write_data()
3569 struct cifsFileInfo *cfile; in __cifs_writev() local
3580 cfile = file->private_data; in __cifs_writev()
3581 tcon = tlink_tcon(cfile->tlink); in __cifs_writev()
3590 ctx->cfile = cifsFileInfo_get(cfile); in __cifs_writev()
3644 cfile, cifs_sb, &ctx->list, ctx); in __cifs_writev()
3704 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data; in cifs_writev() local
3707 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in cifs_writev()
3721 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(from), in cifs_writev()
3742 struct cifsFileInfo *cfile = (struct cifsFileInfo *) in cifs_strict_writev() local
3744 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_strict_writev()
3815 if (rdata->cfile) in cifs_readdata_release()
3816 cifsFileInfo_put(rdata->cfile); in cifs_readdata_release()
3848 if (rdata->cfile->invalidHandle) { in cifs_resend_rdata()
3849 rc = cifs_reopen_file(rdata->cfile, true); in cifs_resend_rdata()
3877 if (rdata->cfile->invalidHandle) in cifs_resend_rdata()
3972 rdata->cfile = cifsFileInfo_get(open_file); in cifs_send_async_read()
3986 if (rdata->cfile->invalidHandle) in cifs_send_async_read()
4017 cifs_sb = CIFS_SB(ctx->cfile->dentry->d_sb); in collect_uncached_read_data()
4056 rdata->cfile, cifs_sb, in collect_uncached_read_data()
4102 struct cifsFileInfo *cfile; in __cifs_readv() local
4113 cfile = file->private_data; in __cifs_readv()
4114 tcon = tlink_tcon(cfile->tlink); in __cifs_readv()
4129 ctx->cfile = cifsFileInfo_get(cfile); in __cifs_readv()
4187 rc = cifs_send_async_read(offset, len, cfile, cifs_sb, &ctx->list, ctx); in __cifs_readv()
4241 struct cifsFileInfo *cfile = (struct cifsFileInfo *) in cifs_strict_readv() local
4243 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_strict_readv()
4267 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(to), in cifs_strict_readv()
4607 rdata->cfile = cifsFileInfo_get(open_file); in cifs_readahead()
4625 if (rdata->cfile->invalidHandle) in cifs_readahead()
4881 struct cifsFileInfo *cfile = container_of(work, struct cifsFileInfo, in cifs_oplock_break() local
4883 struct inode *inode = d_inode(cfile->dentry); in cifs_oplock_break()
4885 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_oplock_break()
4893 server->ops->downgrade_oplock(server, cinode, cfile->oplock_level, in cifs_oplock_break()
4894 cfile->oplock_epoch, &purge_cache); in cifs_oplock_break()
4919 rc = cifs_push_locks(cfile); in cifs_oplock_break()
4930 if (!cfile->oplock_break_cancelled) { in cifs_oplock_break()
4931 rc = tcon->ses->server->ops->oplock_response(tcon, &cfile->fid, in cifs_oplock_break()
4936 _cifsFileInfo_put(cfile, false /* do not wait for ourself */, false); in cifs_oplock_break()
4962 struct cifsFileInfo *cfile = swap_file->private_data; in cifs_swap_activate() local
4993 if (cfile) in cifs_swap_activate()
4994 cfile->swapfile = true; in cifs_swap_activate()
5007 struct cifsFileInfo *cfile = file->private_data; in cifs_swap_deactivate() local
5013 if (cfile) in cifs_swap_deactivate()
5014 cfile->swapfile = false; in cifs_swap_deactivate()