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()
184 static ssize_t kernfs_file_direct_read(struct kernfs_open_file *of, in kernfs_file_direct_read() argument
192 buf = of->prealloc_buf; in kernfs_file_direct_read()
194 mutex_lock(&of->prealloc_mutex); in kernfs_file_direct_read()
204 mutex_lock(&of->mutex); in kernfs_file_direct_read()
205 if (!kernfs_get_active(of->kn)) { in kernfs_file_direct_read()
207 mutex_unlock(&of->mutex); in kernfs_file_direct_read()
211 of->event = atomic_read(&of->kn->attr.open->event); in kernfs_file_direct_read()
212 ops = kernfs_ops(of->kn); in kernfs_file_direct_read()
214 len = ops->read(of, buf, len, *ppos); in kernfs_file_direct_read()
218 kernfs_put_active(of->kn); in kernfs_file_direct_read()
219 mutex_unlock(&of->mutex); in kernfs_file_direct_read()
232 if (buf == of->prealloc_buf) in kernfs_file_direct_read()
233 mutex_unlock(&of->prealloc_mutex); in kernfs_file_direct_read()
249 struct kernfs_open_file *of = kernfs_of(file); in kernfs_fop_read() local
251 if (of->kn->flags & KERNFS_HAS_SEQ_SHOW) in kernfs_fop_read()
254 return kernfs_file_direct_read(of, user_buf, count, ppos); in kernfs_fop_read()
276 struct kernfs_open_file *of = kernfs_of(file); in kernfs_fop_write() local
281 if (of->atomic_write_len) { in kernfs_fop_write()
283 if (len > of->atomic_write_len) in kernfs_fop_write()
289 buf = of->prealloc_buf; in kernfs_fop_write()
291 mutex_lock(&of->prealloc_mutex); in kernfs_fop_write()
307 mutex_lock(&of->mutex); in kernfs_fop_write()
308 if (!kernfs_get_active(of->kn)) { in kernfs_fop_write()
309 mutex_unlock(&of->mutex); in kernfs_fop_write()
314 ops = kernfs_ops(of->kn); in kernfs_fop_write()
316 len = ops->write(of, buf, len, *ppos); in kernfs_fop_write()
320 kernfs_put_active(of->kn); in kernfs_fop_write()
321 mutex_unlock(&of->mutex); in kernfs_fop_write()
327 if (buf == of->prealloc_buf) in kernfs_fop_write()
328 mutex_unlock(&of->prealloc_mutex); in kernfs_fop_write()
337 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_open() local
339 if (!of->vm_ops) in kernfs_vma_open()
342 if (!kernfs_get_active(of->kn)) in kernfs_vma_open()
345 if (of->vm_ops->open) in kernfs_vma_open()
346 of->vm_ops->open(vma); in kernfs_vma_open()
348 kernfs_put_active(of->kn); in kernfs_vma_open()
354 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_fault() local
357 if (!of->vm_ops) in kernfs_vma_fault()
360 if (!kernfs_get_active(of->kn)) in kernfs_vma_fault()
364 if (of->vm_ops->fault) in kernfs_vma_fault()
365 ret = of->vm_ops->fault(vmf); in kernfs_vma_fault()
367 kernfs_put_active(of->kn); in kernfs_vma_fault()
374 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_page_mkwrite() local
377 if (!of->vm_ops) in kernfs_vma_page_mkwrite()
380 if (!kernfs_get_active(of->kn)) in kernfs_vma_page_mkwrite()
384 if (of->vm_ops->page_mkwrite) in kernfs_vma_page_mkwrite()
385 ret = of->vm_ops->page_mkwrite(vmf); in kernfs_vma_page_mkwrite()
389 kernfs_put_active(of->kn); in kernfs_vma_page_mkwrite()
397 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_access() local
400 if (!of->vm_ops) in kernfs_vma_access()
403 if (!kernfs_get_active(of->kn)) in kernfs_vma_access()
407 if (of->vm_ops->access) in kernfs_vma_access()
408 ret = of->vm_ops->access(vma, addr, buf, len, write); in kernfs_vma_access()
410 kernfs_put_active(of->kn); in kernfs_vma_access()
419 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_set_policy() local
422 if (!of->vm_ops) in kernfs_vma_set_policy()
425 if (!kernfs_get_active(of->kn)) in kernfs_vma_set_policy()
429 if (of->vm_ops->set_policy) in kernfs_vma_set_policy()
430 ret = of->vm_ops->set_policy(vma, new); in kernfs_vma_set_policy()
432 kernfs_put_active(of->kn); in kernfs_vma_set_policy()
440 struct kernfs_open_file *of = kernfs_of(file); in kernfs_vma_get_policy() local
443 if (!of->vm_ops) in kernfs_vma_get_policy()
446 if (!kernfs_get_active(of->kn)) in kernfs_vma_get_policy()
450 if (of->vm_ops->get_policy) in kernfs_vma_get_policy()
451 pol = of->vm_ops->get_policy(vma, addr); in kernfs_vma_get_policy()
453 kernfs_put_active(of->kn); in kernfs_vma_get_policy()
472 struct kernfs_open_file *of = kernfs_of(file); in kernfs_fop_mmap() local
483 if (!(of->kn->flags & KERNFS_HAS_MMAP)) in kernfs_fop_mmap()
486 mutex_lock(&of->mutex); in kernfs_fop_mmap()
489 if (!kernfs_get_active(of->kn)) in kernfs_fop_mmap()
492 ops = kernfs_ops(of->kn); in kernfs_fop_mmap()
493 rc = ops->mmap(of, vma); in kernfs_fop_mmap()
506 if (of->mmapped && of->vm_ops != vma->vm_ops) in kernfs_fop_mmap()
518 of->mmapped = true; in kernfs_fop_mmap()
519 of->vm_ops = vma->vm_ops; in kernfs_fop_mmap()
522 kernfs_put_active(of->kn); in kernfs_fop_mmap()
524 mutex_unlock(&of->mutex); in kernfs_fop_mmap()
544 struct kernfs_open_file *of) in kernfs_get_open_node() argument
560 list_add_tail(&of->list, &on->files); in kernfs_get_open_node()
595 struct kernfs_open_file *of) in kernfs_put_open_node() argument
603 if (of) in kernfs_put_open_node()
604 list_del(&of->list); in kernfs_put_open_node()
622 struct kernfs_open_file *of; in kernfs_fop_open() local
648 of = kzalloc(sizeof(struct kernfs_open_file), GFP_KERNEL); in kernfs_fop_open()
649 if (!of) in kernfs_fop_open()
668 mutex_init(&of->mutex); in kernfs_fop_open()
670 mutex_init(&of->mutex); in kernfs_fop_open()
672 of->kn = kn; in kernfs_fop_open()
673 of->file = file; in kernfs_fop_open()
679 of->atomic_write_len = ops->atomic_write_len; in kernfs_fop_open()
690 int len = of->atomic_write_len ?: PAGE_SIZE; in kernfs_fop_open()
691 of->prealloc_buf = kmalloc(len + 1, GFP_KERNEL); in kernfs_fop_open()
693 if (!of->prealloc_buf) in kernfs_fop_open()
695 mutex_init(&of->prealloc_mutex); in kernfs_fop_open()
710 of->seq_file = file->private_data; in kernfs_fop_open()
711 of->seq_file->private = of; in kernfs_fop_open()
718 error = kernfs_get_open_node(kn, of); in kernfs_fop_open()
724 error = ops->open(of); in kernfs_fop_open()
734 kernfs_put_open_node(kn, of); in kernfs_fop_open()
738 kfree(of->prealloc_buf); in kernfs_fop_open()
739 kfree(of); in kernfs_fop_open()
747 struct kernfs_open_file *of) in kernfs_release_file() argument
758 if (!of->released) { in kernfs_release_file()
764 kn->attr.ops->release(of); in kernfs_release_file()
765 of->released = true; in kernfs_release_file()
772 struct kernfs_open_file *of = kernfs_of(filp); in kernfs_fop_release() local
776 kernfs_release_file(kn, of); in kernfs_fop_release()
780 kernfs_put_open_node(kn, of); in kernfs_fop_release()
782 kfree(of->prealloc_buf); in kernfs_fop_release()
783 kfree(of); in kernfs_fop_release()
791 struct kernfs_open_file *of; in kernfs_drain_open_files() local
806 list_for_each_entry(of, &on->files, list) { in kernfs_drain_open_files()
807 struct inode *inode = file_inode(of->file); in kernfs_drain_open_files()
813 kernfs_release_file(kn, of); in kernfs_drain_open_files()
837 struct kernfs_open_file *of = kernfs_of(filp); in kernfs_fop_poll() local
848 if (of->event != atomic_read(&on->event)) in kernfs_fop_poll()