Lines Matching refs:cfile

299 	struct cifsFileInfo *cfile;
304 cfile = kzalloc(sizeof(struct cifsFileInfo), GFP_KERNEL);
305 if (cfile == NULL)
306 return cfile;
310 kfree(cfile);
315 fdlocks->cfile = cfile;
316 cfile->llist = fdlocks;
318 cfile->count = 1;
319 cfile->pid = current->tgid;
320 cfile->uid = current_fsuid();
321 cfile->dentry = dget(dentry);
322 cfile->f_flags = file->f_flags;
323 cfile->invalidHandle = false;
324 cfile->tlink = cifs_get_tlink(tlink);
325 INIT_WORK(&cfile->oplock_break, cifs_oplock_break);
326 INIT_WORK(&cfile->put, cifsFileInfo_put_work);
327 mutex_init(&cfile->fh_mutex);
328 spin_lock_init(&cfile->file_info_lock);
351 server->ops->set_fid(cfile, fid, oplock);
353 list_add(&cfile->tlist, &tcon->openFileList);
359 list_add(&cfile->flist, &cinode->openFileList);
361 list_add_tail(&cfile->flist, &cinode->openFileList);
368 file->private_data = cfile;
369 return cfile;
526 struct cifsFileInfo *cfile = NULL;
607 cfile = cifs_new_fileinfo(&fid, file, tlink, oplock);
608 if (cfile == NULL) {
633 cfile->pid);
643 static int cifs_push_posix_locks(struct cifsFileInfo *cfile);
650 cifs_relock_file(struct cifsFileInfo *cfile)
652 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
653 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
654 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
667 rc = cifs_push_posix_locks(cfile);
669 rc = tcon->ses->server->ops->push_mand_locks(cfile);
676 cifs_reopen_file(struct cifsFileInfo *cfile, bool can_flush)
693 mutex_lock(&cfile->fh_mutex);
694 if (!cfile->invalidHandle) {
695 mutex_unlock(&cfile->fh_mutex);
701 inode = d_inode(cfile->dentry);
703 tcon = tlink_tcon(cfile->tlink);
712 full_path = build_path_from_dentry(cfile->dentry);
715 mutex_unlock(&cfile->fh_mutex);
721 inode, cfile->f_flags, full_path);
735 unsigned int oflags = cfile->f_flags &
740 oflags, &oplock, &cfile->fid.netfid, xid);
752 desired_access = cifs_convert_flags(cfile->f_flags);
755 if (cfile->f_flags & O_SYNC)
758 if (cfile->f_flags & O_DIRECT)
762 server->ops->get_lease_key(inode, &cfile->fid);
770 oparms.fid = &cfile->fid;
789 mutex_unlock(&cfile->fh_mutex);
796 cfile->invalidHandle = false;
797 mutex_unlock(&cfile->fh_mutex);
830 server->ops->set_fid(cfile, &cfile->fid, oplock);
832 cifs_relock_file(cfile);
891 struct cifsFileInfo *cfile = file->private_data;
898 if (cfile == NULL)
902 tcon = tlink_tcon(cfile->tlink);
906 spin_lock(&cfile->file_info_lock);
907 if (server->ops->dir_needs_close(cfile)) {
908 cfile->invalidHandle = true;
909 spin_unlock(&cfile->file_info_lock);
911 rc = server->ops->close_dir(xid, tcon, &cfile->fid);
918 spin_unlock(&cfile->file_info_lock);
920 buf = cfile->srch_inf.ntwrk_buf_start;
923 cfile->srch_inf.ntwrk_buf_start = NULL;
924 if (cfile->srch_inf.smallBuf)
930 cifs_put_tlink(cfile->tlink);
973 struct cifsFileInfo *cfile,
977 struct cifsFileInfo *cur_cfile = fdlocks->cfile;
978 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
985 server->ops->compare_fids(cfile, cur_cfile)) {
992 ((server->ops->compare_fids(cfile, cur_cfile) &&
997 server->ops->compare_fids(cfile, cur_cfile))
1007 cifs_find_lock_conflict(struct cifsFileInfo *cfile, __u64 offset, __u64 length,
1013 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1017 flags, cfile, conf_lock,
1034 cifs_lock_test(struct cifsFileInfo *cfile, __u64 offset, __u64 length,
1039 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1040 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
1045 exist = cifs_find_lock_conflict(cfile, offset, length, type,
1066 cifs_lock_add(struct cifsFileInfo *cfile, struct cifsLockInfo *lock)
1068 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1070 list_add_tail(&lock->llist, &cfile->llist->locks);
1081 cifs_lock_add_if(struct cifsFileInfo *cfile, struct cifsLockInfo *lock,
1085 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1093 exist = cifs_find_lock_conflict(cfile, lock->offset, lock->length,
1097 list_add_tail(&lock->llist, &cfile->llist->locks);
1179 cifs_push_mandatory_locks(struct cifsFileInfo *cfile)
1194 tcon = tlink_tcon(cfile->tlink);
1221 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) {
1231 cfile->fid.netfid,
1243 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid,
1271 cifs_push_posix_locks(struct cifsFileInfo *cfile)
1273 struct inode *inode = d_inode(cfile->dentry);
1274 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1328 lck->netfid = cfile->fid.netfid;
1359 cifs_push_locks(struct cifsFileInfo *cfile)
1361 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
1362 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1363 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1376 rc = cifs_push_posix_locks(cfile);
1378 rc = tcon->ses->server->ops->push_mand_locks(cfile);
1438 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
1439 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1441 __u16 netfid = cfile->fid.netfid;
1461 rc = cifs_lock_test(cfile, flock->fl_start, length, type, flock);
1466 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, type,
1469 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1485 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1489 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1521 cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
1532 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1533 struct cifsInodeInfo *cinode = CIFS_I(d_inode(cfile->dentry));
1562 list_for_each_entry_safe(li, tmp, &cfile->llist->locks, llist) {
1594 cfile->fid.netfid,
1603 &cfile->llist->locks);
1617 stored_rc = cifs_lockv(xid, tcon, cfile->fid.netfid,
1621 &cfile->llist->locks);
1640 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
1641 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
1643 struct inode *inode = d_inode(cfile->dentry);
1660 rc = CIFSSMBPosixLock(xid, tcon, cfile->fid.netfid,
1675 rc = cifs_lock_add_if(cfile, lock, wait_flag);
1698 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1705 cifs_lock_add(cfile, lock);
1707 rc = server->ops->mand_unlock_range(cfile, flock, xid);
1735 struct cifsFileInfo *cfile;
1746 cfile = (struct cifsFileInfo *)file->private_data;
1747 tcon = tlink_tcon(cfile->tlink);
1784 struct cifsFileInfo *cfile;
1794 cfile = (struct cifsFileInfo *)file->private_data;
1795 tcon = tlink_tcon(cfile->tlink);
2054 struct cifsFileInfo *cfile;
2057 rc = cifs_get_writable_file(cifs_inode, flags, &cfile);
2061 return cfile;
2070 struct cifsFileInfo *cfile;
2078 cfile = list_entry(tmp, struct cifsFileInfo,
2080 full_path = build_path_from_dentry(cfile->dentry);
2091 cinode = CIFS_I(d_inode(cfile->dentry));
2105 struct cifsFileInfo *cfile;
2113 cfile = list_entry(tmp, struct cifsFileInfo,
2115 full_path = build_path_from_dentry(cfile->dentry);
2126 cinode = CIFS_I(d_inode(cfile->dentry));
2304 wdata->pid = wdata->cfile->pid;
2310 if (wdata->cfile->invalidHandle)
2328 struct cifsFileInfo *cfile = NULL;
2361 if (cfile)
2362 cifsFileInfo_put(cfile);
2364 rc = cifs_get_writable_file(CIFS_I(inode), FIND_WR_ANY, &cfile);
2405 wdata->cfile = cfile;
2407 cfile = NULL;
2409 if (!wdata->cfile) {
2476 if (cfile)
2477 cifsFileInfo_put(cfile);
2536 struct cifsFileInfo *cfile = file->private_data;
2537 struct cifs_sb_info *cifs_sb = CIFS_SB(cfile->dentry->d_sb);
2541 pid = cfile->pid;
2567 rc = cifs_write(cfile, pid, page_data + offset, copied, &pos);
2769 struct inode *inode = d_inode(wdata->cfile->dentry);
2836 if (wdata->cfile->invalidHandle) {
2837 rc = cifs_reopen_file(wdata->cfile, false);
2866 if (wdata->cfile->invalidHandle)
3022 wdata->cfile = cifsFileInfo_get(open_file);
3034 if (wdata->cfile->invalidHandle)
3067 struct dentry *dentry = ctx->cfile->dentry;
3070 tcon = tlink_tcon(ctx->cfile->tlink);
3116 ctx->cfile, cifs_sb, &tmp_list,
3149 struct cifsFileInfo *cfile;
3172 cfile = file->private_data;
3173 tcon = tlink_tcon(cfile->tlink);
3182 ctx->cfile = cifsFileInfo_get(cfile);
3205 cfile, cifs_sb, &ctx->list, ctx);
3265 struct cifsFileInfo *cfile = (struct cifsFileInfo *)file->private_data;
3268 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server;
3282 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(from),
3303 struct cifsFileInfo *cfile = (struct cifsFileInfo *)
3305 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
3391 if (rdata->cfile)
3392 cifsFileInfo_put(rdata->cfile);
3574 if (rdata->cfile->invalidHandle) {
3575 rc = cifs_reopen_file(rdata->cfile, true);
3603 if (rdata->cfile->invalidHandle)
3735 rdata->cfile = cifsFileInfo_get(open_file);
3750 if (rdata->cfile->invalidHandle)
3783 cifs_sb = CIFS_SB(ctx->cfile->dentry->d_sb);
3838 rdata->cfile, cifs_sb,
3886 struct cifsFileInfo *cfile;
3907 cfile = file->private_data;
3908 tcon = tlink_tcon(cfile->tlink);
3920 ctx->cfile = cifsFileInfo_get(cfile);
3954 rc = cifs_send_async_read(offset, len, cfile, cifs_sb, &ctx->list, ctx);
4008 struct cifsFileInfo *cfile = (struct cifsFileInfo *)
4010 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
4034 if (!cifs_find_lock_conflict(cfile, iocb->ki_pos, iov_iter_count(to),
4488 rdata->cfile = cifsFileInfo_get(open_file);
4508 if (rdata->cfile->invalidHandle)
4774 struct cifsFileInfo *cfile = container_of(work, struct cifsFileInfo,
4776 struct inode *inode = d_inode(cfile->dentry);
4778 struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
4786 server->ops->downgrade_oplock(server, cinode, cfile->oplock_level,
4787 cfile->oplock_epoch, &purge_cache);
4812 rc = cifs_push_locks(cfile);
4823 if (!cfile->oplock_break_cancelled) {
4824 rc = tcon->ses->server->ops->oplock_response(tcon, &cfile->fid,
4828 _cifsFileInfo_put(cfile, false /* do not wait for ourself */, false);
4854 struct cifsFileInfo *cfile = swap_file->private_data;
4881 if (cfile)
4882 cfile->swapfile = true;
4894 struct cifsFileInfo *cfile = file->private_data;
4900 if (cfile)
4901 cfile->swapfile = false;