Lines Matching refs:cvm_ops
98 struct coda_vm_ops *cvm_ops = in coda_vm_open() local
101 atomic_inc(&cvm_ops->refcnt); in coda_vm_open()
103 if (cvm_ops->host_vm_ops && cvm_ops->host_vm_ops->open) in coda_vm_open()
104 cvm_ops->host_vm_ops->open(vma); in coda_vm_open()
110 struct coda_vm_ops *cvm_ops = in coda_vm_close() local
113 if (cvm_ops->host_vm_ops && cvm_ops->host_vm_ops->close) in coda_vm_close()
114 cvm_ops->host_vm_ops->close(vma); in coda_vm_close()
116 if (atomic_dec_and_test(&cvm_ops->refcnt)) { in coda_vm_close()
117 vma->vm_ops = cvm_ops->host_vm_ops; in coda_vm_close()
118 fput(cvm_ops->coda_file); in coda_vm_close()
119 kfree(cvm_ops); in coda_vm_close()
131 struct coda_vm_ops *cvm_ops; in coda_file_mmap() local
151 cvm_ops = kmalloc(sizeof(struct coda_vm_ops), GFP_KERNEL); in coda_file_mmap()
152 if (!cvm_ops) in coda_file_mmap()
165 kfree(cvm_ops); in coda_file_mmap()
182 kfree(cvm_ops); in coda_file_mmap()
185 cvm_ops->host_vm_ops = vma->vm_ops; in coda_file_mmap()
187 cvm_ops->vm_ops = *vma->vm_ops; in coda_file_mmap()
189 cvm_ops->vm_ops.open = coda_vm_open; in coda_file_mmap()
190 cvm_ops->vm_ops.close = coda_vm_close; in coda_file_mmap()
191 cvm_ops->coda_file = coda_file; in coda_file_mmap()
192 atomic_set(&cvm_ops->refcnt, 1); in coda_file_mmap()
194 vma->vm_ops = &cvm_ops->vm_ops; in coda_file_mmap()