Lines Matching refs:cfile
456 struct cifsFileInfo *cfile;
461 cfile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
462 if (cfile == NULL)
463 return cfile;
467 kfree(cfile);
472 cfile->symlink_target = kstrdup(symlink_target, GFP_KERNEL);
473 if (!cfile->symlink_target) {
475 kfree(cfile);
481 fdlocks->cfile = cfile;
482 cfile->llist = fdlocks;
484 cfile->count = 1;
485 cfile->pid = current->tgid;
486 cfile->uid = current_fsuid();
487 cfile->dentry = dget(dentry);
488 cfile->f_flags = file->f_flags;
489 cfile->invalidHandle = false;
490 cfile->deferred_close_scheduled = false;
491 cfile->tlink = cifs_get_tlink(tlink);
492 INIT_WORK(&cfile->oplock_break, cifs_oplock_break);
493 INIT_WORK(&cfile->put, cifsFileInfo_put_work);
494 INIT_DELAYED_WORK(&cfile->deferred, smb2_deferred_work_close);
495 mutex_init(&cfile->fh_mutex);
496 spin_lock_init(&cfile->file_info_lock);
519 server->ops->set_fid(cfile, fid, oplock);
521 list_add(&cfile->tlist, &tcon->openFileList);
527 list_add(&cfile->flist, &cinode->openFileList);
529 list_add_tail(&cfile->flist, &cinode->openFileList);
536 file->private_data = cfile;
537 return cfile;
700 struct cifsFileInfo *cfile = NULL;
743 rc = cifs_get_readable_path(tcon, full_path, &cfile);
745 if (file->f_flags == cfile->f_flags) {
746 file->private_data = cfile;
748 cifs_del_deferred_close(cfile);
752 _cifsFileInfo_put(cfile, true, false);
805 cfile = cifs_new_fileinfo(&fid, file, tlink, oplock, data.symlink_target);
806 if (cfile == NULL) {
830 cfile->pid);
852 static int cifs_push_posix_locks(struct cifsFileInfo *cfile);
860 cifs_relock_file(struct cifsFileInfo *cfile)
862 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
863 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
866 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
880 rc = cifs_push_posix_locks(cfile);
883 rc = tcon->ses->server->ops->push_mand_locks(cfile);
890 cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
908 mutex_lock(&cfile->fh_mutex);
909 if (!cfile->invalidHandle) {
910 mutex_unlock(&cfile->fh_mutex);
915 inode = d_inode(cfile->dentry);
917 tcon = tlink_tcon(cfile->tlink);
927 full_path = build_path_from_dentry(cfile->dentry, page);
929 mutex_unlock(&cfile->fh_mutex);
936 inode, cfile->f_flags, full_path);
951 unsigned int oflags = cfile->f_flags &
956 oflags, &oplock, &cfile->fid.netfid, xid);
969 desired_access = cifs_convert_flags(cfile->f_flags);
972 if (cfile->f_flags & O_SYNC)
975 if (cfile->f_flags & O_DIRECT)
979 server->ops->get_lease_key(inode, &cfile->fid);
988 .fid = &cfile->fid,
1008 mutex_unlock(&cfile->fh_mutex);
1017 cfile->invalidHandle = false;
1018 mutex_unlock(&cfile->fh_mutex);
1051 server->ops->set_fid(cfile, &cfile->fid, oplock);
1053 cifs_relock_file(cfile);
1063 struct cifsFileInfo *cfile = container_of(work,
1066 spin_lock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock);
1067 cifs_del_deferred_close(cfile);
1068 cfile->deferred_close_scheduled = false;
1069 spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock);
1070 _cifsFileInfo_put(cfile, true, false);
1075 struct cifsFileInfo *cfile;
1083 cfile = file->private_data;
1095 cifs_add_deferred_close(cfile, dclose);
1096 if (cfile->deferred_close_scheduled &&
1097 delayed_work_pending(&cfile->deferred)) {
1103 &cfile->deferred, cifs_sb->ctx->closetimeo))
1104 cifsFileInfo_get(cfile);
1108 &cfile->deferred, cifs_sb->ctx->closetimeo);
1109 cfile->deferred_close_scheduled = true;
1114 _cifsFileInfo_put(cfile, true, false);
1116 _cifsFileInfo_put(cfile, true, false);
1161 struct cifsFileInfo *cfile = file->private_data;
1168 if (cfile == NULL)
1172 tcon = tlink_tcon(cfile->tlink);
1176 spin_lock(&cfile->file_info_lock);
1177 if (server->ops->dir_needs_close(cfile)) {
1178 cfile->invalidHandle = true;
1179 spin_unlock(&cfile->file_info_lock);
1181 rc = server->ops->close_dir(xid, tcon, &cfile->fid);
1188 spin_unlock(&cfile->file_info_lock);
1190 buf = cfile->srch_inf.ntwrk_buf_start;
1193 cfile->srch_inf.ntwrk_buf_start = NULL;
1194 if (cfile->srch_inf.smallBuf)
1200 cifs_put_tlink(cfile->tlink);
1243 struct cifsFileInfo *cfile,
1247 struct cifsFileInfo *cur_cfile = fdlocks->cfile;
1248 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
1255 server->ops->compare_fids(cfile, cur_cfile)) {
1262 ((server->ops->compare_fids(cfile, cur_cfile) &&
1267 server->ops->compare_fids(cfile, cur_cfile))
1277 cifs_find_lock_conflict(struct cifsFileInfo *cfile, __u64 offset, __u64 length,
1283 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1287 flags, cfile, conf_lock,
1304 cifs_lock_test(struct cifsFileInfo *cfile, __u64 offset, __u64 length,
1309 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1310 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
1315 exist = cifs_find_lock_conflict(cfile, offset, length, type,
1336 cifs_lock_add(struct cifsFileInfo *cfile, struct cifsLockInfo *lock)
1338 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1340 list_add_tail(&lock->llist, &cfile->llist->locks);
1351 cifs_lock_add_if(struct cifsFileInfo *cfile, struct cifsLockInfo *lock,
1355 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1363 exist = cifs_find_lock_conflict(cfile, lock->offset, lock->length,
1367 list_add_tail(&lock->llist, &cfile->llist->locks);
1450 cifs_push_mandatory_locks(struct cifsFileInfo *cfile)
1465 tcon = tlink_tcon(cfile->tlink);
1492 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) {
1502 cfile->fid.netfid,
1514 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid,
1544 cifs_push_posix_locks(struct cifsFileInfo *cfile)
1546 struct inode *inode = d_inode(cfile->dentry);
1547 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1601 lck->netfid = cfile->fid.netfid;
1633 cifs_push_locks(struct cifsFileInfo *cfile)
1635 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1636 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1639 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
1653 rc = cifs_push_posix_locks(cfile);
1656 rc = tcon->ses->server->ops->push_mand_locks(cfile);
1716 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
1717 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1720 __u16 netfid = cfile->fid.netfid;
1741 rc = cifs_lock_test(cfile, flock->fl_start, length, type, flock);
1746 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, type,
1749 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1765 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1769 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1802 cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
1813 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1814 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1843 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) {
1875 cfile->fid.netfid,
1884 &cfile->llist->locks);
1898 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid,
1902 &cfile->llist->locks);
1922 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
1923 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1925 struct inode *inode = d_inode(cfile->dentry);
1943 rc = CIFSSMBPosixLock(xid, tcon, cfile->fid.netfid,
1958 rc = cifs_lock_add_if(cfile, lock, wait_flag);
1981 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1988 cifs_lock_add(cfile, lock);
1990 rc = server->ops->mand_unlock_range(cfile, flock, xid);
2018 struct cifsFileInfo *cfile;
2029 cfile = (struct cifsFileInfo *)file->private_data;
2030 tcon = tlink_tcon(cfile->tlink);
2067 struct cifsFileInfo *cfile;
2077 cfile = (struct cifsFileInfo *)file->private_data;
2078 tcon = tlink_tcon(cfile->tlink);
2083 set_bit(CIFS_INO_CLOSE_ON_LOCK, &CIFS_I(d_inode(cfile->dentry))->flags);
2340 struct cifsFileInfo *cfile;
2343 rc = cifs_get_writable_file(cifs_inode, flags, &cfile);
2347 return cfile;
2355 struct cifsFileInfo *cfile;
2361 list_for_each_entry(cfile, &tcon->openFileList, tlist) {
2363 const char *full_path = build_path_from_dentry(cfile->dentry, page);
2372 cinode = CIFS_I(d_inode(cfile->dentry));
2387 struct cifsFileInfo *cfile;
2393 list_for_each_entry(cfile, &tcon->openFileList, tlist) {
2395 const char *full_path = build_path_from_dentry(cfile->dentry, page);
2404 cinode = CIFS_I(d_inode(cfile->dentry));
2428 if (wdata->cfile)
2429 cifsFileInfo_put(wdata->cfile);
2442 struct inode *inode = d_inode(wdata->cfile->dentry);
2447 server = tlink_tcon(wdata->cfile->tlink)->ses->server;
2486 &wdata2->cfile);
2487 if (!wdata2->cfile) {
2493 wdata2->pid = wdata2->cfile->pid;
2525 struct inode *inode = d_inode(wdata->cfile->dentry);
2531 cifs_stats_bytes_written(tlink_tcon(wdata->cfile->tlink),
2747 struct cifsFileInfo *cfile = NULL;
2764 rc = cifs_get_writable_file(CIFS_I(inode), FIND_WR_ANY, &cfile);
2783 wdata->pid = cfile->pid;
2785 wdata->cfile = cfile;
2787 cfile = NULL;
2833 if (wdata->cfile->invalidHandle)
2853 if (cfile)
2854 cifsFileInfo_put(cfile);
3080 struct cifsFileInfo *cfile = file->private_data;
3081 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
3086 pid = cfile->pid;
3112 rc = cifs_write(cfile, pid, page_data + offset, copied, &pos);
3277 struct inode *inode = d_inode(wdata->cfile->dentry);
3302 if (wdata->cfile->invalidHandle) {
3303 rc = cifs_reopen_file(wdata->cfile, false);
3332 if (wdata->cfile->invalidHandle)
3476 wdata->cfile = cifsFileInfo_get(open_file);
3490 if (wdata->cfile->invalidHandle)
3521 struct dentry *dentry = ctx->cfile->dentry;
3524 tcon = tlink_tcon(ctx->cfile->tlink);
3570 ctx->cfile, cifs_sb, &tmp_list,
3603 struct cifsFileInfo *cfile;
3614 cfile = file->private_data;
3615 tcon = tlink_tcon(cfile->tlink);
3624 ctx->cfile = cifsFileInfo_get(cfile);
3678 cfile, cifs_sb, &ctx->list, ctx);
3738 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
3741 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
3755 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(from),
3776 struct cifsFileInfo *cfile = (struct cifsFileInfo *)
3778 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
3849 if (rdata->cfile)
3850 cifsFileInfo_put(rdata->cfile);
3882 if (rdata->cfile->invalidHandle) {
3883 rc = cifs_reopen_file(rdata->cfile, true);
3911 if (rdata->cfile->invalidHandle)
4006 rdata->cfile = cifsFileInfo_get(open_file);
4020 if (rdata->cfile->invalidHandle)
4050 cifs_sb = CIFS_SB(ctx->cfile->dentry->d_sb);
4089 rdata->cfile, cifs_sb,
4132 struct cifsFileInfo *cfile;
4143 cfile = file->private_data;
4144 tcon = tlink_tcon(cfile->tlink);
4159 ctx->cfile = cifsFileInfo_get(cfile);
4217 rc = cifs_send_async_read(offset, len, cfile, cifs_sb, &ctx->list, ctx);
4271 struct cifsFileInfo *cfile = (struct cifsFileInfo *)
4273 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
4297 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(to),
4637 rdata->cfile = cifsFileInfo_get(open_file);
4655 if (rdata->cfile->invalidHandle)
4914 struct cifsFileInfo *cfile = container_of(work, struct cifsFileInfo,
4916 struct inode *inode = d_inode(cfile->dentry);
4936 server->ops->downgrade_oplock(server, cinode, cfile->oplock_level,
4937 cfile->oplock_epoch, &purge_cache);
4962 rc = cifs_push_locks(cfile);
4976 persistent_fid = cfile->fid.persistent_fid;
4977 volatile_fid = cfile->fid.volatile_fid;
4978 net_fid = cfile->fid.netfid;
4979 oplock_break_cancelled = cfile->oplock_break_cancelled;
4981 _cifsFileInfo_put(cfile, false /* do not wait for ourself */, false);
5023 struct cifsFileInfo *cfile = swap_file->private_data;
5054 if (cfile)
5055 cfile->swapfile = true;
5068 struct cifsFileInfo *cfile = file->private_data;
5074 if (cfile)
5075 cfile->swapfile = false;