summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_syscalls.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/vfs_syscalls.c')
-rw-r--r--sys/kern/vfs_syscalls.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 6fd2c28..15afddc 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -253,10 +253,8 @@ kern_statfs(struct thread *td, char *path, enum uio_seg pathseg,
vput(nd.ni_vp);
#ifdef MAC
error = mac_check_mount_stat(td->td_ucred, mp);
- if (error) {
- vfs_rel(mp);
+ if (error)
goto out;
- }
#endif
/*
* Set these in case the underlying filesystem fails to do so.
@@ -335,17 +333,13 @@ kern_fstatfs(struct thread *td, int fd, struct statfs *buf)
VOP_UNLOCK(vp, 0, td);
fdrop(fp, td);
if (vp->v_iflag & VI_DOOMED) {
- if (mp)
- vfs_rel(mp);
error = EBADF;
goto out;
}
#ifdef MAC
error = mac_check_mount_stat(td->td_ucred, mp);
- if (error) {
- vfs_rel(mp);
+ if (error)
goto out;
- }
#endif
/*
* Set these in case the underlying filesystem fails to do so.
@@ -365,7 +359,8 @@ kern_fstatfs(struct thread *td, int fd, struct statfs *buf)
}
*buf = *sp;
out:
- vfs_rel(mp);
+ if (mp)
+ vfs_rel(mp);
VFS_UNLOCK_GIANT(vfslocked);
return (error);
}
OpenPOWER on IntegriCloud