diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2008-01-25 10:12:33 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-01-25 10:12:33 +0000 |
commit | c75d7f815cd083fa0d40f00e64bd0d61904ff50d (patch) | |
tree | 1a655aac98c0a9b5e70396e0ebc379a79765b7d8 | |
parent | 4a3bf0c53a424ef67666056ea1957bc13f883c7c (diff) |
Notes
-rw-r--r-- | sys/fs/udf/udf_vfsops.c | 3 |
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; |