• Home
  • Raw
  • Download

Lines Matching refs:of

95 	struct kernfs_open_file *of = sf->private;  in kernfs_seq_stop_active()  local
96 const struct kernfs_ops *ops = kernfs_ops(of->kn); in kernfs_seq_stop_active()
100 kernfs_put_active(of->kn); in kernfs_seq_stop_active()
105 struct kernfs_open_file *of = sf->private; in kernfs_seq_start() local
112 mutex_lock(&of->mutex); in kernfs_seq_start()
113 if (!kernfs_get_active(of->kn)) in kernfs_seq_start()
116 ops = kernfs_ops(of->kn); in kernfs_seq_start()
134 struct kernfs_open_file *of = sf->private; in kernfs_seq_next() local
135 const struct kernfs_ops *ops = kernfs_ops(of->kn); in kernfs_seq_next()
155 struct kernfs_open_file *of = sf->private; in kernfs_seq_stop() local
159 mutex_unlock(&of->mutex); in kernfs_seq_stop()
164 struct kernfs_open_file *of = sf->private; in kernfs_seq_show() local
166 of->event = atomic_read(&of->kn->attr.open->event); in kernfs_seq_show()
168 return of->kn->attr.ops->seq_show(sf, v); in kernfs_seq_show()
186 struct kernfs_open_file *of = kernfs_of(iocb->ki_filp); in kernfs_file_read_iter() local
191 buf = of->prealloc_buf; in kernfs_file_read_iter()
193 mutex_lock(&of->prealloc_mutex); in kernfs_file_read_iter()
203 mutex_lock(&of->mutex); in kernfs_file_read_iter()
204 if (!kernfs_get_active(of->kn)) { in kernfs_file_read_iter()
206 mutex_unlock(&of->mutex); in kernfs_file_read_iter()
210 of->event = atomic_read(&of->kn->attr.open->event); in kernfs_file_read_iter()
211 ops = kernfs_ops(of->kn); in kernfs_file_read_iter()
213 len = ops->read(of, buf, len, iocb->ki_pos); in kernfs_file_read_iter()
217 kernfs_put_active(of->kn); in kernfs_file_read_iter()
218 mutex_unlock(&of->mutex); in kernfs_file_read_iter()
231 if (buf == of->prealloc_buf) in kernfs_file_read_iter()
232 mutex_unlock(&of->prealloc_mutex); in kernfs_file_read_iter()
257 struct kernfs_open_file *of = kernfs_of(iocb->ki_filp); in kernfs_fop_write_iter() local
262 if (of->atomic_write_len) { in kernfs_fop_write_iter()
263 if (len > of->atomic_write_len) in kernfs_fop_write_iter()
269 buf = of->prealloc_buf; in kernfs_fop_write_iter()
271 mutex_lock(&of->prealloc_mutex); in kernfs_fop_write_iter()
287 mutex_lock(&of->mutex); in kernfs_fop_write_iter()
288 if (!kernfs_get_active(of->kn)) { in kernfs_fop_write_iter()
289 mutex_unlock(&of->mutex); in kernfs_fop_write_iter()
294 ops = kernfs_ops(of->kn); in kernfs_fop_write_iter()
296 len = ops->write(of, buf, len, iocb->ki_pos); in kernfs_fop_write_iter()
300 kernfs_put_active(of->kn); in kernfs_fop_write_iter()
301 mutex_unlock(&of->mutex); in kernfs_fop_write_iter()
307 if (buf == of->prealloc_buf) in kernfs_fop_write_iter()
308 mutex_unlock(&of->prealloc_mutex); in kernfs_fop_write_iter()
317 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_open() local
319 if (!of->vm_ops) in kernfs_vma_open()
322 if (!kernfs_get_active(of->kn)) in kernfs_vma_open()
325 if (of->vm_ops->open) in kernfs_vma_open()
326 of->vm_ops->open(vma); in kernfs_vma_open()
328 kernfs_put_active(of->kn); in kernfs_vma_open()
334 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_fault() local
337 if (!of->vm_ops) in kernfs_vma_fault()
340 if (!kernfs_get_active(of->kn)) in kernfs_vma_fault()
344 if (of->vm_ops->fault) in kernfs_vma_fault()
345 ret = of->vm_ops->fault(vmf); in kernfs_vma_fault()
347 kernfs_put_active(of->kn); in kernfs_vma_fault()
354 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_page_mkwrite() local
357 if (!of->vm_ops) in kernfs_vma_page_mkwrite()
360 if (!kernfs_get_active(of->kn)) in kernfs_vma_page_mkwrite()
364 if (of->vm_ops->page_mkwrite) in kernfs_vma_page_mkwrite()
365 ret = of->vm_ops->page_mkwrite(vmf); in kernfs_vma_page_mkwrite()
369 kernfs_put_active(of->kn); in kernfs_vma_page_mkwrite()
377 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_access() local
380 if (!of->vm_ops) in kernfs_vma_access()
383 if (!kernfs_get_active(of->kn)) in kernfs_vma_access()
387 if (of->vm_ops->access) in kernfs_vma_access()
388 ret = of->vm_ops->access(vma, addr, buf, len, write); in kernfs_vma_access()
390 kernfs_put_active(of->kn); in kernfs_vma_access()
399 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_set_policy() local
402 if (!of->vm_ops) in kernfs_vma_set_policy()
405 if (!kernfs_get_active(of->kn)) in kernfs_vma_set_policy()
409 if (of->vm_ops->set_policy) in kernfs_vma_set_policy()
410 ret = of->vm_ops->set_policy(vma, new); in kernfs_vma_set_policy()
412 kernfs_put_active(of->kn); in kernfs_vma_set_policy()
420 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_get_policy() local
423 if (!of->vm_ops) in kernfs_vma_get_policy()
426 if (!kernfs_get_active(of->kn)) in kernfs_vma_get_policy()
430 if (of->vm_ops->get_policy) in kernfs_vma_get_policy()
431 pol = of->vm_ops->get_policy(vma, addr); in kernfs_vma_get_policy()
433 kernfs_put_active(of->kn); in kernfs_vma_get_policy()
452 struct kernfs_open_file *of = kernfs_of(file); in kernfs_fop_mmap() local
463 if (!(of->kn->flags & KERNFS_HAS_MMAP)) in kernfs_fop_mmap()
466 mutex_lock(&of->mutex); in kernfs_fop_mmap()
469 if (!kernfs_get_active(of->kn)) in kernfs_fop_mmap()
472 ops = kernfs_ops(of->kn); in kernfs_fop_mmap()
473 rc = ops->mmap(of, vma); in kernfs_fop_mmap()
486 if (of->mmapped && of->vm_ops != vma->vm_ops) in kernfs_fop_mmap()
498 of->mmapped = true; in kernfs_fop_mmap()
499 of->vm_ops = vma->vm_ops; in kernfs_fop_mmap()
502 kernfs_put_active(of->kn); in kernfs_fop_mmap()
504 mutex_unlock(&of->mutex); in kernfs_fop_mmap()
524 struct kernfs_open_file *of) in kernfs_get_open_node() argument
540 list_add_tail(&of->list, &on->files); in kernfs_get_open_node()
575 struct kernfs_open_file *of) in kernfs_put_open_node() argument
583 if (of) in kernfs_put_open_node()
584 list_del(&of->list); in kernfs_put_open_node()
602 struct kernfs_open_file *of; in kernfs_fop_open() local
628 of = kzalloc(sizeof(struct kernfs_open_file), GFP_KERNEL); in kernfs_fop_open()
629 if (!of) in kernfs_fop_open()
648 mutex_init(&of->mutex); in kernfs_fop_open()
650 mutex_init(&of->mutex); in kernfs_fop_open()
652 of->kn = kn; in kernfs_fop_open()
653 of->file = file; in kernfs_fop_open()
659 of->atomic_write_len = ops->atomic_write_len; in kernfs_fop_open()
670 int len = of->atomic_write_len ?: PAGE_SIZE; in kernfs_fop_open()
671 of->prealloc_buf = kmalloc(len + 1, GFP_KERNEL); in kernfs_fop_open()
673 if (!of->prealloc_buf) in kernfs_fop_open()
675 mutex_init(&of->prealloc_mutex); in kernfs_fop_open()
690 of->seq_file = file->private_data; in kernfs_fop_open()
691 of->seq_file->private = of; in kernfs_fop_open()
698 error = kernfs_get_open_node(kn, of); in kernfs_fop_open()
704 error = ops->open(of); in kernfs_fop_open()
714 kernfs_put_open_node(kn, of); in kernfs_fop_open()
718 kfree(of->prealloc_buf); in kernfs_fop_open()
719 kfree(of); in kernfs_fop_open()
727 struct kernfs_open_file *of) in kernfs_release_file() argument
738 if (!of->released) { in kernfs_release_file()
744 kn->attr.ops->release(of); in kernfs_release_file()
745 of->released = true; in kernfs_release_file()
752 struct kernfs_open_file *of = kernfs_of(filp); in kernfs_fop_release() local
756 kernfs_release_file(kn, of); in kernfs_fop_release()
760 kernfs_put_open_node(kn, of); in kernfs_fop_release()
762 kfree(of->prealloc_buf); in kernfs_fop_release()
763 kfree(of); in kernfs_fop_release()
771 struct kernfs_open_file *of; in kernfs_drain_open_files() local
786 list_for_each_entry(of, &on->files, list) { in kernfs_drain_open_files()
787 struct inode *inode = file_inode(of->file); in kernfs_drain_open_files()
793 kernfs_release_file(kn, of); in kernfs_drain_open_files()
815 __poll_t kernfs_generic_poll(struct kernfs_open_file *of, poll_table *wait) in kernfs_generic_poll() argument
817 struct kernfs_node *kn = kernfs_dentry_node(of->file->f_path.dentry); in kernfs_generic_poll()
820 poll_wait(of->file, &on->poll, wait); in kernfs_generic_poll()
822 if (of->event != atomic_read(&on->event)) in kernfs_generic_poll()
830 struct kernfs_open_file *of = kernfs_of(filp); in kernfs_fop_poll() local
838 ret = kn->attr.ops->poll(of, wait); in kernfs_fop_poll()
840 ret = kernfs_generic_poll(of, wait); in kernfs_fop_poll()