summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2008-01-25 10:12:33 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2008-01-25 10:12:33 +0000
commitc75d7f815cd083fa0d40f00e64bd0d61904ff50d (patch)
tree1a655aac98c0a9b5e70396e0ebc379a79765b7d8
parent4a3bf0c53a424ef67666056ea1957bc13f883c7c (diff)
Notes
-rw-r--r--sys/fs/udf/udf_vfsops.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c
index 262e605a3ac72..8f36a147cd2d8 100644
--- a/sys/fs/udf/udf_vfsops.c
+++ b/sys/fs/udf/udf_vfsops.c
@@ -630,6 +630,7 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
devvp = udfmp->im_devvp;
if ((error = RDSECTOR(devvp, sector, udfmp->bsize, &bp)) != 0) {
printf("Cannot read sector %d\n", sector);
+ vgone(vp);
vput(vp);
brelse(bp);
*vpp = NULL;
@@ -639,6 +640,7 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
fe = (struct file_entry *)bp->b_data;
if (udf_checktag(&fe->tag, TAGID_FENTRY)) {
printf("Invalid file entry!\n");
+ vgone(vp);
vput(vp);
brelse(bp);
*vpp = NULL;
@@ -649,6 +651,7 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
M_NOWAIT | M_ZERO);
if (unode->fentry == NULL) {
printf("Cannot allocate file entry block\n");
+ vgone(vp);
vput(vp);
brelse(bp);
*vpp = NULL;