Lines Matching refs:cifs_file

373 cifsFileInfo_get(struct cifsFileInfo *cifs_file)
375 spin_lock(&cifs_file->file_info_lock);
376 cifsFileInfo_get_locked(cifs_file);
377 spin_unlock(&cifs_file->file_info_lock);
378 return cifs_file;
381 static void cifsFileInfo_put_final(struct cifsFileInfo *cifs_file)
383 struct inode *inode = d_inode(cifs_file->dentry);
393 list_for_each_entry_safe(li, tmp, &cifs_file->llist->locks, llist) {
398 list_del(&cifs_file->llist->llist);
399 kfree(cifs_file->llist);
402 cifs_put_tlink(cifs_file->tlink);
403 dput(cifs_file->dentry);
405 kfree(cifs_file);
410 struct cifsFileInfo *cifs_file = container_of(work,
413 cifsFileInfo_put_final(cifs_file);
421 void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
423 _cifsFileInfo_put(cifs_file, true, true);
429 * This may involve closing the filehandle @cifs_file out on the
431 * cinode->open_file_lock and cifs_file->file_info_lock.
439 void _cifsFileInfo_put(struct cifsFileInfo *cifs_file,
442 struct inode *inode = d_inode(cifs_file->dentry);
443 struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink);
454 spin_lock(&cifs_file->file_info_lock);
455 if (--cifs_file->count > 0) {
456 spin_unlock(&cifs_file->file_info_lock);
461 spin_unlock(&cifs_file->file_info_lock);
467 cifs_add_pending_open_locked(&fid, cifs_file->tlink, &open);
470 list_del(&cifs_file->flist);
471 list_del(&cifs_file->tlist);
476 d_inode(cifs_file->dentry));
491 cancel_work_sync(&cifs_file->oplock_break) : false;
493 if (!tcon->need_reconnect && !cifs_file->invalidHandle) {
499 server->ops->close_getattr(xid, tcon, cifs_file);
501 server->ops->close(xid, tcon, &cifs_file->fid);
511 queue_work(fileinfo_put_wq, &cifs_file->put);
513 cifsFileInfo_put_final(cifs_file);