diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2008-01-18 12:09:54 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-01-18 12:09:54 +0000 |
| commit | 61af195933079a0c0c75c9c091462757546dc794 (patch) | |
| tree | ba4f2a63e1dd6178da08588fbf4dea277f143805 /sys/fs/udf/udf_vfsops.c | |
| parent | 445f595a98499fe1618c0cbdcc98b737a429bfcf (diff) | |
Notes
Diffstat (limited to 'sys/fs/udf/udf_vfsops.c')
| -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 8810061225b0..362a33789ab4 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; |
