When udf_symlink() fails, do not explicitly call udf_delete_node(), as
vrele() called next will do that again - avoids a double free of the bitmap, leading to a KASSERT failure (or worse in real life) in the udf_symlink_long in the fs/vfs::t_vnops test.
This commit is contained in:
parent
63e2bac990
commit
acbabd6a6a
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: udf_vnops.c,v 1.96 2015/01/04 14:23:37 reinoud Exp $ */
|
||||
/* $NetBSD: udf_vnops.c,v 1.97 2015/01/28 14:00:58 martin Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2006, 2008 Reinoud Zandijk
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#ifndef lint
|
||||
__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.96 2015/01/04 14:23:37 reinoud Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.97 2015/01/28 14:00:58 martin Exp $");
|
||||
#endif /* not lint */
|
||||
|
||||
|
||||
@ -1741,7 +1741,6 @@ udf_symlink(void *v)
|
||||
if (error) {
|
||||
/* remove node */
|
||||
udf_dir_detach(udf_node->ump, dir_node, udf_node, cnp);
|
||||
udf_delete_node(udf_node);
|
||||
vrele(*vpp);
|
||||
*vpp = NULL;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user