Lines Matching defs:cfile

471 	struct cifsFileInfo *cfile;
476 cfile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
477 if (cfile == NULL)
478 return cfile;
482 kfree(cfile);
487 cfile->symlink_target = kstrdup(symlink_target, GFP_KERNEL);
488 if (!cfile->symlink_target) {
490 kfree(cfile);
496 fdlocks->cfile = cfile;
497 cfile->llist = fdlocks;
499 cfile->count = 1;
500 cfile->pid = current->tgid;
501 cfile->uid = current_fsuid();
502 cfile->dentry = dget(dentry);
503 cfile->f_flags = file->f_flags;
504 cfile->invalidHandle = false;
505 cfile->deferred_close_scheduled = false;
506 cfile->tlink = cifs_get_tlink(tlink);
507 INIT_WORK(&cfile->oplock_break, cifs_oplock_break);
508 INIT_WORK(&cfile->put, cifsFileInfo_put_work);
509 INIT_WORK(&cfile->serverclose, serverclose_work);
510 INIT_DELAYED_WORK(&cfile->deferred, smb2_deferred_work_close);
511 mutex_init(&cfile->fh_mutex);
512 spin_lock_init(&cfile->file_info_lock);
535 server->ops->set_fid(cfile, fid, oplock);
537 list_add(&cfile->tlist, &tcon->openFileList);
543 list_add(&cfile->flist, &cinode->openFileList);
545 list_add_tail(&cfile->flist, &cinode->openFileList);
552 file->private_data = cfile;
553 return cfile;
765 struct cifsFileInfo *cfile = NULL;
808 rc = cifs_get_readable_path(tcon, full_path, &cfile);
810 if (file->f_flags == cfile->f_flags) {
811 file->private_data = cfile;
813 cifs_del_deferred_close(cfile);
817 _cifsFileInfo_put(cfile, true, false);
870 cfile = cifs_new_fileinfo(&fid, file, tlink, oplock, data.symlink_target);
871 if (cfile == NULL) {
895 cfile->pid);
917 static int cifs_push_posix_locks(struct cifsFileInfo *cfile);
925 cifs_relock_file(struct cifsFileInfo *cfile)
927 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
928 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
931 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
945 rc = cifs_push_posix_locks(cfile);
948 rc = tcon->ses->server->ops->push_mand_locks(cfile);
955 cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
974 mutex_lock(&cfile->fh_mutex);
975 if (!cfile->invalidHandle) {
976 mutex_unlock(&cfile->fh_mutex);
981 inode = d_inode(cfile->dentry);
983 tcon = tlink_tcon(cfile->tlink);
993 full_path = build_path_from_dentry(cfile->dentry, page);
995 mutex_unlock(&cfile->fh_mutex);
1002 inode, cfile->f_flags, full_path);
1017 unsigned int oflags = cfile->f_flags &
1022 oflags, &oplock, &cfile->fid.netfid, xid);
1036 if (cifs_fscache_enabled(inode) && (cfile->f_flags & O_ACCMODE) == O_WRONLY)
1039 desired_access = cifs_convert_flags(cfile->f_flags, rdwr_for_fscache);
1042 if (cfile->f_flags & O_SYNC)
1045 if (cfile->f_flags & O_DIRECT)
1049 server->ops->get_lease_key(inode, &cfile->fid);
1059 .fid = &cfile->fid,
1078 desired_access = cifs_convert_flags(cfile->f_flags, 0);
1084 mutex_unlock(&cfile->fh_mutex);
1096 cfile->invalidHandle = false;
1097 mutex_unlock(&cfile->fh_mutex);
1132 server->ops->set_fid(cfile, &cfile->fid, oplock);
1134 cifs_relock_file(cfile);
1144 struct cifsFileInfo *cfile = container_of(work,
1147 spin_lock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock);
1148 cifs_del_deferred_close(cfile);
1149 cfile->deferred_close_scheduled = false;
1150 spin_unlock(&CIFS_I(d_inode(cfile->dentry))->deferred_lock);
1151 _cifsFileInfo_put(cfile, true, false);
1169 struct cifsFileInfo *cfile;
1177 cfile = file->private_data;
1180 if ((cfile->status_file_deleted == false) &&
1187 cifs_add_deferred_close(cfile, dclose);
1188 if (cfile->deferred_close_scheduled &&
1189 delayed_work_pending(&cfile->deferred)) {
1195 &cfile->deferred, cifs_sb->ctx->closetimeo))
1196 cifsFileInfo_get(cfile);
1200 &cfile->deferred, cifs_sb->ctx->closetimeo);
1201 cfile->deferred_close_scheduled = true;
1206 _cifsFileInfo_put(cfile, true, false);
1208 _cifsFileInfo_put(cfile, true, false);
1253 struct cifsFileInfo *cfile = file->private_data;
1260 if (cfile == NULL)
1264 tcon = tlink_tcon(cfile->tlink);
1268 spin_lock(&cfile->file_info_lock);
1269 if (server->ops->dir_needs_close(cfile)) {
1270 cfile->invalidHandle = true;
1271 spin_unlock(&cfile->file_info_lock);
1273 rc = server->ops->close_dir(xid, tcon, &cfile->fid);
1280 spin_unlock(&cfile->file_info_lock);
1282 buf = cfile->srch_inf.ntwrk_buf_start;
1285 cfile->srch_inf.ntwrk_buf_start = NULL;
1286 if (cfile->srch_inf.smallBuf)
1292 cifs_put_tlink(cfile->tlink);
1335 struct cifsFileInfo *cfile,
1339 struct cifsFileInfo *cur_cfile = fdlocks->cfile;
1340 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
1347 server->ops->compare_fids(cfile, cur_cfile)) {
1354 ((server->ops->compare_fids(cfile, cur_cfile) &&
1359 server->ops->compare_fids(cfile, cur_cfile))
1369 cifs_find_lock_conflict(struct cifsFileInfo *cfile, __u64 offset, __u64 length,
1375 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1379 flags, cfile, conf_lock,
1396 cifs_lock_test(struct cifsFileInfo *cfile, __u64 offset, __u64 length,
1401 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1402 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
1407 exist = cifs_find_lock_conflict(cfile, offset, length, type,
1428 cifs_lock_add(struct cifsFileInfo *cfile, struct cifsLockInfo *lock)
1430 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1432 list_add_tail(&lock->llist, &cfile->llist->locks);
1443 cifs_lock_add_if(struct cifsFileInfo *cfile, struct cifsLockInfo *lock,
1447 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1455 exist = cifs_find_lock_conflict(cfile, lock->offset, lock->length,
1459 list_add_tail(&lock->llist, &cfile->llist->locks);
1542 cifs_push_mandatory_locks(struct cifsFileInfo *cfile)
1557 tcon = tlink_tcon(cfile->tlink);
1584 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) {
1594 cfile->fid.netfid,
1606 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid,
1636 cifs_push_posix_locks(struct cifsFileInfo *cfile)
1638 struct inode *inode = d_inode(cfile->dentry);
1639 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1695 lck->netfid = cfile->fid.netfid;
1727 cifs_push_locks(struct cifsFileInfo *cfile)
1729 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1730 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1733 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
1747 rc = cifs_push_posix_locks(cfile);
1750 rc = tcon->ses->server->ops->push_mand_locks(cfile);
1811 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
1812 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1815 __u16 netfid = cfile->fid.netfid;
1836 rc = cifs_lock_test(cfile, flock->fl_start, length, type, flock);
1841 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, type,
1844 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1860 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1864 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1897 cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
1908 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1909 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1938 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) {
1970 cfile->fid.netfid,
1979 &cfile->llist->locks);
1993 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid,
1997 &cfile->llist->locks);
2017 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
2018 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
2020 struct inode *inode = d_inode(cfile->dentry);
2038 rc = CIFSSMBPosixLock(xid, tcon, cfile->fid.netfid,
2053 rc = cifs_lock_add_if(cfile, lock, wait_flag);
2076 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
2083 cifs_lock_add(cfile, lock);
2085 rc = server->ops->mand_unlock_range(cfile, flock, xid);
2113 struct cifsFileInfo *cfile;
2124 cfile = (struct cifsFileInfo *)file->private_data;
2125 tcon = tlink_tcon(cfile->tlink);
2162 struct cifsFileInfo *cfile;
2173 cfile = (struct cifsFileInfo *)file->private_data;
2174 tcon = tlink_tcon(cfile->tlink);
2179 set_bit(CIFS_INO_CLOSE_ON_LOCK, &CIFS_I(d_inode(cfile->dentry))->flags);
2436 struct cifsFileInfo *cfile;
2439 rc = cifs_get_writable_file(cifs_inode, flags, &cfile);
2443 return cfile;
2451 struct cifsFileInfo *cfile;
2457 list_for_each_entry(cfile, &tcon->openFileList, tlist) {
2459 const char *full_path = build_path_from_dentry(cfile->dentry, page);
2468 cinode = CIFS_I(d_inode(cfile->dentry));
2483 struct cifsFileInfo *cfile;
2489 list_for_each_entry(cfile, &tcon->openFileList, tlist) {
2491 const char *full_path = build_path_from_dentry(cfile->dentry, page);
2500 cinode = CIFS_I(d_inode(cfile->dentry));
2524 if (wdata->cfile)
2525 cifsFileInfo_put(wdata->cfile);
2538 struct inode *inode = d_inode(wdata->cfile->dentry);
2543 server = tlink_tcon(wdata->cfile->tlink)->ses->server;
2582 &wdata2->cfile);
2583 if (!wdata2->cfile) {
2589 wdata2->pid = wdata2->cfile->pid;
2621 struct inode *inode = d_inode(wdata->cfile->dentry);
2627 cifs_stats_bytes_written(tlink_tcon(wdata->cfile->tlink),
2843 struct cifsFileInfo *cfile = NULL;
2860 rc = cifs_get_writable_file(CIFS_I(inode), FIND_WR_ANY, &cfile);
2879 wdata->pid = cfile->pid;
2881 wdata->cfile = cfile;
2883 cfile = NULL;
2929 if (wdata->cfile->invalidHandle)
2949 if (cfile)
2950 cifsFileInfo_put(cfile);
3176 struct cifsFileInfo *cfile = file->private_data;
3177 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
3182 pid = cfile->pid;
3208 rc = cifs_write(cfile, pid, page_data + offset, copied, &pos);
3380 struct inode *inode = d_inode(wdata->cfile->dentry);
3405 if (wdata->cfile->invalidHandle) {
3406 rc = cifs_reopen_file(wdata->cfile, false);
3435 if (wdata->cfile->invalidHandle)
3580 wdata->cfile = cifsFileInfo_get(open_file);
3594 if (wdata->cfile->invalidHandle)
3625 struct dentry *dentry = ctx->cfile->dentry;
3628 tcon = tlink_tcon(ctx->cfile->tlink);
3674 ctx->cfile, cifs_sb, &tmp_list,
3707 struct cifsFileInfo *cfile;
3718 cfile = file->private_data;
3719 tcon = tlink_tcon(cfile->tlink);
3728 ctx->cfile = cifsFileInfo_get(cfile);
3782 cfile, cifs_sb, &ctx->list, ctx);
3842 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
3845 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
3859 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(from),
3880 struct cifsFileInfo *cfile = (struct cifsFileInfo *)
3882 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
3953 if (rdata->cfile)
3954 cifsFileInfo_put(rdata->cfile);
3986 if (rdata->cfile->invalidHandle) {
3987 rc = cifs_reopen_file(rdata->cfile, true);
4015 if (rdata->cfile->invalidHandle)
4110 rdata->cfile = cifsFileInfo_get(open_file);
4124 if (rdata->cfile->invalidHandle)
4154 cifs_sb = CIFS_SB(ctx->cfile->dentry->d_sb);
4193 rdata->cfile, cifs_sb,
4236 struct cifsFileInfo *cfile;
4247 cfile = file->private_data;
4248 tcon = tlink_tcon(cfile->tlink);
4263 ctx->cfile = cifsFileInfo_get(cfile);
4321 rc = cifs_send_async_read(offset, len, cfile, cifs_sb, &ctx->list, ctx);
4375 struct cifsFileInfo *cfile = (struct cifsFileInfo *)
4377 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
4401 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(to),
4741 rdata->cfile = cifsFileInfo_get(open_file);
4759 if (rdata->cfile->invalidHandle)
5018 struct cifsFileInfo *cfile = container_of(work, struct cifsFileInfo,
5020 struct inode *inode = d_inode(cfile->dentry);
5040 server->ops->downgrade_oplock(server, cinode, cfile->oplock_level,
5041 cfile->oplock_epoch, &purge_cache);
5066 rc = cifs_push_locks(cfile);
5080 persistent_fid = cfile->fid.persistent_fid;
5081 volatile_fid = cfile->fid.volatile_fid;
5082 net_fid = cfile->fid.netfid;
5083 oplock_break_cancelled = cfile->oplock_break_cancelled;
5085 _cifsFileInfo_put(cfile, false /* do not wait for ourself */, false);
5127 struct cifsFileInfo *cfile = swap_file->private_data;
5158 if (cfile)
5159 cfile->swapfile = true;
5172 struct cifsFileInfo *cfile = file->private_data;
5178 if (cfile)
5179 cfile->swapfile = false;