opensolaris_vfs.c (180652) | opensolaris_vfs.c (182542) |
---|---|
1/*- 2 * Copyright (c) 2006-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2006-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> |
28__FBSDID("$FreeBSD: head/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c 180652 2008-07-21 09:45:44Z pjd $"); | 28__FBSDID("$FreeBSD: head/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c 182542 2008-08-31 14:26:08Z attilio $"); |
29 30#include <sys/param.h> 31#include <sys/kernel.h> 32#include <sys/systm.h> 33#include <sys/mount.h> 34#include <sys/cred.h> 35#include <sys/vfs.h> 36#include <sys/priv.h> --- 151 unchanged lines hidden (view full) --- 188 } 189 vp->v_iflag |= VI_MOUNT; 190 VI_UNLOCK(vp); 191 192 /* 193 * Allocate and initialize the filesystem. 194 */ 195 vn_lock(vp, LK_SHARED | LK_RETRY); | 29 30#include <sys/param.h> 31#include <sys/kernel.h> 32#include <sys/systm.h> 33#include <sys/mount.h> 34#include <sys/cred.h> 35#include <sys/vfs.h> 36#include <sys/priv.h> --- 151 unchanged lines hidden (view full) --- 188 } 189 vp->v_iflag |= VI_MOUNT; 190 VI_UNLOCK(vp); 191 192 /* 193 * Allocate and initialize the filesystem. 194 */ 195 vn_lock(vp, LK_SHARED | LK_RETRY); |
196 mp = vfs_mount_alloc(vp, vfsp, fspath, td); | 196 mp = vfs_mount_alloc(vp, vfsp, fspath, td->td_ucred); |
197 VOP_UNLOCK(vp, 0); 198 199 mp->mnt_optnew = NULL; 200 vfs_setmntopt(mp, "from", fspec, 0); 201 mp->mnt_optnew = mp->mnt_opt; 202 mp->mnt_opt = NULL; 203 204 /* --- 53 unchanged lines hidden (view full) --- 258 vfs_event_signal(NULL, VQ_MOUNT, 0); 259 if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp, td)) 260 panic("mount: lost mount"); 261 mountcheckdirs(vp, mvp); 262 vput(mvp); 263 VOP_UNLOCK(vp, 0); 264 if ((mp->mnt_flag & MNT_RDONLY) == 0) 265 error = vfs_allocate_syncvnode(mp); | 197 VOP_UNLOCK(vp, 0); 198 199 mp->mnt_optnew = NULL; 200 vfs_setmntopt(mp, "from", fspec, 0); 201 mp->mnt_optnew = mp->mnt_opt; 202 mp->mnt_opt = NULL; 203 204 /* --- 53 unchanged lines hidden (view full) --- 258 vfs_event_signal(NULL, VQ_MOUNT, 0); 259 if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp, td)) 260 panic("mount: lost mount"); 261 mountcheckdirs(vp, mvp); 262 vput(mvp); 263 VOP_UNLOCK(vp, 0); 264 if ((mp->mnt_flag & MNT_RDONLY) == 0) 265 error = vfs_allocate_syncvnode(mp); |
266 vfs_unbusy(mp, td); | 266 vfs_unbusy(mp); |
267 if (error) 268 vrele(vp); 269 else 270 vfs_mountedfrom(mp, fspec); 271 } else { 272 VI_LOCK(vp); 273 vp->v_iflag &= ~VI_MOUNT; 274 VI_UNLOCK(vp); 275 VOP_UNLOCK(vp, 0); | 267 if (error) 268 vrele(vp); 269 else 270 vfs_mountedfrom(mp, fspec); 271 } else { 272 VI_LOCK(vp); 273 vp->v_iflag &= ~VI_MOUNT; 274 VI_UNLOCK(vp); 275 VOP_UNLOCK(vp, 0); |
276 vfs_unbusy(mp, td); | 276 vfs_unbusy(mp); |
277 vfs_mount_destroy(mp); 278 } 279 return (error); 280} | 277 vfs_mount_destroy(mp); 278 } 279 return (error); 280} |