Lines Matching refs:cfile

288 	struct cifsFileInfo *cfile;  in cifs_new_fileinfo()  local
293 cfile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL); in cifs_new_fileinfo()
294 if (cfile == NULL) in cifs_new_fileinfo()
295 return cfile; in cifs_new_fileinfo()
299 kfree(cfile); in cifs_new_fileinfo()
304 fdlocks->cfile = cfile; in cifs_new_fileinfo()
305 cfile->llist = fdlocks; in cifs_new_fileinfo()
307 cfile->count = 1; in cifs_new_fileinfo()
308 cfile->pid = current->tgid; in cifs_new_fileinfo()
309 cfile->uid = current_fsuid(); in cifs_new_fileinfo()
310 cfile->dentry = dget(dentry); in cifs_new_fileinfo()
311 cfile->f_flags = file->f_flags; in cifs_new_fileinfo()
312 cfile->invalidHandle = false; in cifs_new_fileinfo()
313 cfile->deferred_close_scheduled = false; in cifs_new_fileinfo()
314 cfile->tlink = cifs_get_tlink(tlink); in cifs_new_fileinfo()
315 INIT_WORK(&cfile->oplock_break, cifs_oplock_break); in cifs_new_fileinfo()
316 INIT_WORK(&cfile->put, cifsFileInfo_put_work); in cifs_new_fileinfo()
317 INIT_DELAYED_WORK(&cfile->deferred, smb2_deferred_work_close); in cifs_new_fileinfo()
318 mutex_init(&cfile->fh_mutex); in cifs_new_fileinfo()
319 spin_lock_init(&cfile->file_info_lock); in cifs_new_fileinfo()
342 server->ops->set_fid(cfile, fid, oplock); in cifs_new_fileinfo()
344 list_add(&cfile->tlist, &tcon->openFileList); in cifs_new_fileinfo()
350 list_add(&cfile->flist, &cinode->openFileList); in cifs_new_fileinfo()
352 list_add_tail(&cfile->flist, &cinode->openFileList); in cifs_new_fileinfo()
359 file->private_data = cfile; in cifs_new_fileinfo()
360 return cfile; in cifs_new_fileinfo()
524 struct cifsFileInfo *cfile = NULL; in cifs_open() local
566 rc = cifs_get_readable_path(tcon, full_path, &cfile); in cifs_open()
568 if (file->f_flags == cfile->f_flags) { in cifs_open()
569 file->private_data = cfile; in cifs_open()
571 cifs_del_deferred_close(cfile); in cifs_open()
575 _cifsFileInfo_put(cfile, true, false); in cifs_open()
626 cfile = cifs_new_fileinfo(&fid, file, tlink, oplock); in cifs_open()
627 if (cfile == NULL) { in cifs_open()
652 cfile->pid); in cifs_open()
662 static int cifs_push_posix_locks(struct cifsFileInfo *cfile);
669 cifs_relock_file(struct cifsFileInfo *cfile) in cifs_relock_file() argument
671 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb); in cifs_relock_file()
672 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_relock_file()
673 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_relock_file()
686 rc = cifs_push_posix_locks(cfile); in cifs_relock_file()
688 rc = tcon->ses->server->ops->push_mand_locks(cfile); in cifs_relock_file()
695 cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush) in cifs_reopen_file() argument
713 mutex_lock(&cfile->fh_mutex); in cifs_reopen_file()
714 if (!cfile->invalidHandle) { in cifs_reopen_file()
715 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
720 inode = d_inode(cfile->dentry); in cifs_reopen_file()
722 tcon = tlink_tcon(cfile->tlink); in cifs_reopen_file()
732 full_path = build_path_from_dentry(cfile->dentry, page); in cifs_reopen_file()
734 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
741 inode, cfile->f_flags, full_path); in cifs_reopen_file()
755 unsigned int oflags = cfile->f_flags & in cifs_reopen_file()
760 oflags, &oplock, &cfile->fid.netfid, xid); in cifs_reopen_file()
772 desired_access = cifs_convert_flags(cfile->f_flags); in cifs_reopen_file()
775 if (cfile->f_flags & O_SYNC) in cifs_reopen_file()
778 if (cfile->f_flags & O_DIRECT) in cifs_reopen_file()
782 server->ops->get_lease_key(inode, &cfile->fid); in cifs_reopen_file()
790 oparms.fid = &cfile->fid; in cifs_reopen_file()
809 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
816 cfile->invalidHandle = false; in cifs_reopen_file()
817 mutex_unlock(&cfile->fh_mutex); in cifs_reopen_file()
850 server->ops->set_fid(cfile, &cfile->fid, oplock); in cifs_reopen_file()
852 cifs_relock_file(cfile); in cifs_reopen_file()
862 struct cifsFileInfo *cfile = container_of(work, in smb2_deferred_work_close() local
865 spin_lock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); in smb2_deferred_work_close()
866 cifs_del_deferred_close(cfile); in smb2_deferred_work_close()
867 cfile->deferred_close_scheduled = false; in smb2_deferred_work_close()
868 spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock); in smb2_deferred_work_close()
869 _cifsFileInfo_put(cfile, true, false); in smb2_deferred_work_close()
874 struct cifsFileInfo *cfile; in cifs_close() local
880 cfile = file->private_data; in cifs_close()
892 cifs_add_deferred_close(cfile, dclose); in cifs_close()
893 if (cfile->deferred_close_scheduled && in cifs_close()
894 delayed_work_pending(&cfile->deferred)) { in cifs_close()
900 &cfile->deferred, cifs_sb->ctx->acregmax)) in cifs_close()
901 cifsFileInfo_get(cfile); in cifs_close()
905 &cfile->deferred, cifs_sb->ctx->acregmax); in cifs_close()
906 cfile->deferred_close_scheduled = true; in cifs_close()
911 _cifsFileInfo_put(cfile, true, false); in cifs_close()
913 _cifsFileInfo_put(cfile, true, false); in cifs_close()
962 struct cifsFileInfo *cfile = file->private_data; in cifs_closedir() local
969 if (cfile == NULL) in cifs_closedir()
973 tcon = tlink_tcon(cfile->tlink); in cifs_closedir()
977 spin_lock(&cfile->file_info_lock); in cifs_closedir()
978 if (server->ops->dir_needs_close(cfile)) { in cifs_closedir()
979 cfile->invalidHandle = true; in cifs_closedir()
980 spin_unlock(&cfile->file_info_lock); in cifs_closedir()
982 rc = server->ops->close_dir(xid, tcon, &cfile->fid); in cifs_closedir()
989 spin_unlock(&cfile->file_info_lock); in cifs_closedir()
991 buf = cfile->srch_inf.ntwrk_buf_start; in cifs_closedir()
994 cfile->srch_inf.ntwrk_buf_start = NULL; in cifs_closedir()
995 if (cfile->srch_inf.smallBuf) in cifs_closedir()
1001 cifs_put_tlink(cfile->tlink); in cifs_closedir()
1044 struct cifsFileInfo *cfile, in cifs_find_fid_lock_conflict() argument
1048 struct cifsFileInfo *cur_cfile = fdlocks->cfile; in cifs_find_fid_lock_conflict()
1049 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in cifs_find_fid_lock_conflict()
1056 server->ops->compare_fids(cfile, cur_cfile)) { in cifs_find_fid_lock_conflict()
1063 ((server->ops->compare_fids(cfile, cur_cfile) && in cifs_find_fid_lock_conflict()
1068 server->ops->compare_fids(cfile, cur_cfile)) in cifs_find_fid_lock_conflict()
1078 cifs_find_lock_conflict(struct cifsFileInfo *cfile, __u64 offset, __u64 length, in cifs_find_lock_conflict() argument
1084 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_find_lock_conflict()
1088 flags, cfile, conf_lock, in cifs_find_lock_conflict()
1105 cifs_lock_test(struct cifsFileInfo *cfile, __u64 offset, __u64 length, in cifs_lock_test() argument
1110 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_lock_test()
1111 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in cifs_lock_test()
1116 exist = cifs_find_lock_conflict(cfile, offset, length, type, in cifs_lock_test()
1137 cifs_lock_add(struct cifsFileInfo *cfile, struct cifsLockInfo *lock) in cifs_lock_add() argument
1139 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_lock_add()
1141 list_add_tail(&lock->llist, &cfile->llist->locks); in cifs_lock_add()
1152 cifs_lock_add_if(struct cifsFileInfo *cfile, struct cifsLockInfo *lock, in cifs_lock_add_if() argument
1156 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_lock_add_if()
1164 exist = cifs_find_lock_conflict(cfile, lock->offset, lock->length, in cifs_lock_add_if()
1168 list_add_tail(&lock->llist, &cfile->llist->locks); in cifs_lock_add_if()
1250 cifs_push_mandatory_locks(struct cifsFileInfo *cfile) in cifs_push_mandatory_locks() argument
1265 tcon = tlink_tcon(cfile->tlink); in cifs_push_mandatory_locks()
1292 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) { in cifs_push_mandatory_locks()
1302 cfile->fid.netfid, in cifs_push_mandatory_locks()
1314 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid, in cifs_push_mandatory_locks()
1342 cifs_push_posix_locks(struct cifsFileInfo *cfile) in cifs_push_posix_locks() argument
1344 struct inode *inode = d_inode(cfile->dentry); in cifs_push_posix_locks()
1345 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_push_posix_locks()
1399 lck->netfid = cfile->fid.netfid; in cifs_push_posix_locks()
1430 cifs_push_locks(struct cifsFileInfo *cfile) in cifs_push_locks() argument
1432 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb); in cifs_push_locks()
1433 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_push_locks()
1434 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_push_locks()
1447 rc = cifs_push_posix_locks(cfile); in cifs_push_locks()
1449 rc = tcon->ses->server->ops->push_mand_locks(cfile); in cifs_push_locks()
1509 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data; in cifs_getlk() local
1510 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_getlk()
1512 __u16 netfid = cfile->fid.netfid; in cifs_getlk()
1532 rc = cifs_lock_test(cfile, flock->fl_start, length, type, flock); in cifs_getlk()
1537 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, type, in cifs_getlk()
1540 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_getlk()
1556 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_getlk()
1560 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_getlk()
1592 cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock, in cifs_unlock_range() argument
1603 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_unlock_range()
1604 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_unlock_range()
1633 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) { in cifs_unlock_range()
1665 cfile->fid.netfid, in cifs_unlock_range()
1674 &cfile->llist->locks); in cifs_unlock_range()
1688 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid, in cifs_unlock_range()
1692 &cfile->llist->locks); in cifs_unlock_range()
1711 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data; in cifs_setlk() local
1712 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_setlk()
1714 struct inode *inode = d_inode(cfile->dentry); in cifs_setlk()
1731 rc = CIFSSMBPosixLock(xid, tcon, cfile->fid.netfid, in cifs_setlk()
1746 rc = cifs_lock_add_if(cfile, lock, wait_flag); in cifs_setlk()
1769 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, in cifs_setlk()
1776 cifs_lock_add(cfile, lock); in cifs_setlk()
1778 rc = server->ops->mand_unlock_range(cfile, flock, xid); in cifs_setlk()
1806 struct cifsFileInfo *cfile; in cifs_flock() local
1815 cfile = (struct cifsFileInfo *)file->private_data; in cifs_flock()
1816 tcon = tlink_tcon(cfile->tlink); in cifs_flock()
1852 struct cifsFileInfo *cfile; in cifs_lock() local
1862 cfile = (struct cifsFileInfo *)file->private_data; in cifs_lock()
1863 tcon = tlink_tcon(cfile->tlink); in cifs_lock()
1868 set_bit(CIFS_INO_CLOSE_ON_LOCK, &CIFS_I(d_inode(cfile->dentry))->flags); in cifs_lock()
2125 struct cifsFileInfo *cfile; in find_writable_file() local
2128 rc = cifs_get_writable_file(cifs_inode, flags, &cfile); in find_writable_file()
2132 return cfile; in find_writable_file()
2140 struct cifsFileInfo *cfile; in cifs_get_writable_path() local
2146 list_for_each_entry(cfile, &tcon->openFileList, tlist) { in cifs_get_writable_path()
2148 const char *full_path = build_path_from_dentry(cfile->dentry, page); in cifs_get_writable_path()
2157 cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_get_writable_path()
2172 struct cifsFileInfo *cfile; in cifs_get_readable_path() local
2178 list_for_each_entry(cfile, &tcon->openFileList, tlist) { in cifs_get_readable_path()
2180 const char *full_path = build_path_from_dentry(cfile->dentry, page); in cifs_get_readable_path()
2189 cinode = CIFS_I(d_inode(cfile->dentry)); in cifs_get_readable_path()
2369 wdata->pid = wdata->cfile->pid; in wdata_send_pages()
2375 if (wdata->cfile->invalidHandle) in wdata_send_pages()
2393 struct cifsFileInfo *cfile = NULL; in cifs_writepages() local
2426 if (cfile) in cifs_writepages()
2427 cifsFileInfo_put(cfile); in cifs_writepages()
2429 rc = cifs_get_writable_file(CIFS_I(inode), FIND_WR_ANY, &cfile); in cifs_writepages()
2470 wdata->cfile = cfile; in cifs_writepages()
2472 cfile = NULL; in cifs_writepages()
2474 if (!wdata->cfile) { in cifs_writepages()
2541 if (cfile) in cifs_writepages()
2542 cifsFileInfo_put(cfile); in cifs_writepages()
2603 struct cifsFileInfo *cfile = file->private_data; in cifs_write_end() local
2604 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb); in cifs_write_end()
2608 pid = cfile->pid; in cifs_write_end()
2634 rc = cifs_write(cfile, pid, page_data + offset, copied, &pos); in cifs_write_end()
2817 struct inode *inode = d_inode(wdata->cfile->dentry); in cifs_uncached_writev_complete()
2884 if (wdata->cfile->invalidHandle) { in cifs_resend_wdata()
2885 rc = cifs_reopen_file(wdata->cfile, false); in cifs_resend_wdata()
2914 if (wdata->cfile->invalidHandle) in cifs_resend_wdata()
3070 wdata->cfile = cifsFileInfo_get(open_file); in cifs_write_from_iter()
3082 if (wdata->cfile->invalidHandle) in cifs_write_from_iter()
3115 struct dentry *dentry = ctx->cfile->dentry; in collect_uncached_write_data()
3118 tcon = tlink_tcon(ctx->cfile->tlink); in collect_uncached_write_data()
3164 ctx->cfile, cifs_sb, &tmp_list, in collect_uncached_write_data()
3197 struct cifsFileInfo *cfile; in __cifs_writev() local
3220 cfile = file->private_data; in __cifs_writev()
3221 tcon = tlink_tcon(cfile->tlink); in __cifs_writev()
3230 ctx->cfile = cifsFileInfo_get(cfile); in __cifs_writev()
3253 cfile, cifs_sb, &ctx->list, ctx); in __cifs_writev()
3310 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data; in cifs_writev() local
3313 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in cifs_writev()
3327 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(from), in cifs_writev()
3348 struct cifsFileInfo *cfile = (struct cifsFileInfo *) in cifs_strict_writev() local
3350 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_strict_writev()
3436 if (rdata->cfile) in cifs_readdata_release()
3437 cifsFileInfo_put(rdata->cfile); in cifs_readdata_release()
3619 if (rdata->cfile->invalidHandle) { in cifs_resend_rdata()
3620 rc = cifs_reopen_file(rdata->cfile, true); in cifs_resend_rdata()
3648 if (rdata->cfile->invalidHandle) in cifs_resend_rdata()
3780 rdata->cfile = cifsFileInfo_get(open_file); in cifs_send_async_read()
3795 if (rdata->cfile->invalidHandle) in cifs_send_async_read()
3828 cifs_sb = CIFS_SB(ctx->cfile->dentry->d_sb); in collect_uncached_read_data()
3883 rdata->cfile, cifs_sb, in collect_uncached_read_data()
3931 struct cifsFileInfo *cfile; in __cifs_readv() local
3952 cfile = file->private_data; in __cifs_readv()
3953 tcon = tlink_tcon(cfile->tlink); in __cifs_readv()
3965 ctx->cfile = cifsFileInfo_get(cfile); in __cifs_readv()
3990 rc = cifs_send_async_read(offset, len, cfile, cifs_sb, &ctx->list, ctx); in __cifs_readv()
4044 struct cifsFileInfo *cfile = (struct cifsFileInfo *) in cifs_strict_readv() local
4046 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_strict_readv()
4070 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(to), in cifs_strict_readv()
4531 rdata->cfile = cifsFileInfo_get(open_file); in cifs_readpages()
4551 if (rdata->cfile->invalidHandle) in cifs_readpages()
4817 struct cifsFileInfo *cfile = container_of(work, struct cifsFileInfo, in cifs_oplock_break() local
4819 struct inode *inode = d_inode(cfile->dentry); in cifs_oplock_break()
4821 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink); in cifs_oplock_break()
4831 server->ops->downgrade_oplock(server, cinode, cfile->oplock_level, in cifs_oplock_break()
4832 cfile->oplock_epoch, &purge_cache); in cifs_oplock_break()
4857 rc = cifs_push_locks(cfile); in cifs_oplock_break()
4868 is_deferred = cifs_is_deferred_close(cfile, &dclose); in cifs_oplock_break()
4871 cfile->deferred_close_scheduled && in cifs_oplock_break()
4872 delayed_work_pending(&cfile->deferred)) { in cifs_oplock_break()
4873 if (cancel_delayed_work(&cfile->deferred)) { in cifs_oplock_break()
4874 _cifsFileInfo_put(cfile, false, false); in cifs_oplock_break()
4884 if (!cfile->oplock_break_cancelled) { in cifs_oplock_break()
4885 rc = tcon->ses->server->ops->oplock_response(tcon, &cfile->fid, in cifs_oplock_break()
4890 _cifsFileInfo_put(cfile, false /* do not wait for ourself */, false); in cifs_oplock_break()
4916 struct cifsFileInfo *cfile = swap_file->private_data; in cifs_swap_activate() local
4943 if (cfile) in cifs_swap_activate()
4944 cfile->swapfile = true; in cifs_swap_activate()
4956 struct cifsFileInfo *cfile = file->private_data; in cifs_swap_deactivate() local
4962 if (cfile) in cifs_swap_deactivate()
4963 cfile->swapfile = false; in cifs_swap_deactivate()