The refcnt field was never initialized and triggered a BUG() in
vfile_regular_release (vfile.c) when closing / releasing such a virtual
file.

Signed-off-by: Florian Bezdeka <[email protected]>
---
 kernel/cobalt/registry.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/cobalt/registry.c b/kernel/cobalt/registry.c
index 5cbebdc5b..476254e65 100644
--- a/kernel/cobalt/registry.c
+++ b/kernel/cobalt/registry.c
@@ -403,6 +403,7 @@ static int registry_export_vfreg(struct xnobject *object,
        object->vfile_u.vfreg.privsz = p->vfile.privsz;
        object->vfile_u.vfreg.ops = p->vfile.ops;
        object->vfile_u.vfreg.entry.lockops = p->vfile.lockops;
+       object->vfile_u.vfreg.entry.refcnt = 0;
 
        ret = xnvfile_init_regular(object->key, &object->vfile_u.vfreg,
                                   &pnode->vdir);
-- 
2.30.2


Reply via email to