diff options
author | pjd <pjd@FreeBSD.org> | 2004-04-26 15:44:42 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2004-04-26 15:44:42 +0000 |
commit | cf34985420c2567b012502c0ff5fade12ee558e4 (patch) | |
tree | 1b3790d384dbce32fef863b905dc9fec52757f0c /sys/kern | |
parent | 788a94ec838387260dd50d92bd05d96aff3db843 (diff) | |
download | FreeBSD-src-cf34985420c2567b012502c0ff5fade12ee558e4.zip FreeBSD-src-cf34985420c2567b012502c0ff5fade12ee558e4.tar.gz |
Always use nd.ni_vp->v_mount as an argument for VFS_QUOTACTL(), just like
in RELENG_4.
Pointed out by: Alex Lyashkov <umka@sevinter.net>
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/vfs_extattr.c | 9 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 9 |
2 files changed, 8 insertions, 10 deletions
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c index 593ec75..992325a 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -183,7 +183,7 @@ quotactl(td, uap) caddr_t arg; } */ *uap; { - struct mount *mp; + struct mount *mp, *vmp; int error; struct nameidata nd; @@ -193,14 +193,13 @@ quotactl(td, uap) if ((error = namei(&nd)) != 0) return (error); NDFREE(&nd, NDF_ONLY_PNBUF); - error = vn_start_write(nd.ni_vp, &mp, V_WAIT | PCATCH); + error = vn_start_write(nd.ni_vp, &vmp, V_WAIT | PCATCH); + mp = nd.ni_vp->v_mount; vrele(nd.ni_vp); if (error) return (error); - if (mp == NULL) - return (EOPNOTSUPP); error = VFS_QUOTACTL(mp, uap->cmd, uap->uid, uap->arg, td); - vn_finished_write(mp); + vn_finished_write(vmp); return (error); } diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 593ec75..992325a 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -183,7 +183,7 @@ quotactl(td, uap) caddr_t arg; } */ *uap; { - struct mount *mp; + struct mount *mp, *vmp; int error; struct nameidata nd; @@ -193,14 +193,13 @@ quotactl(td, uap) if ((error = namei(&nd)) != 0) return (error); NDFREE(&nd, NDF_ONLY_PNBUF); - error = vn_start_write(nd.ni_vp, &mp, V_WAIT | PCATCH); + error = vn_start_write(nd.ni_vp, &vmp, V_WAIT | PCATCH); + mp = nd.ni_vp->v_mount; vrele(nd.ni_vp); if (error) return (error); - if (mp == NULL) - return (EOPNOTSUPP); error = VFS_QUOTACTL(mp, uap->cmd, uap->uid, uap->arg, td); - vn_finished_write(mp); + vn_finished_write(vmp); return (error); } |