From: Ben Gras Date: Fri, 11 Jun 2010 11:41:56 +0000 (+0000) Subject: vfs: don't use a mountpoint if it's in use for anything else. X-Git-Tag: v3.1.8~453 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/index.html?a=commitdiff_plain;h=19b790eb53a81c853bc7dccf05e49b0bb3b37633;p=minix.git vfs: don't use a mountpoint if it's in use for anything else. (this avoids data structure confusion if a mountpoint is reused as a mountpoint until that's properly fixed.) --- diff --git a/servers/vfs/mount.c b/servers/vfs/mount.c index 7da620c7a..9cddb884e 100644 --- a/servers/vfs/mount.c +++ b/servers/vfs/mount.c @@ -253,6 +253,12 @@ PRIVATE int mount_fs(endpoint_t fs_e) /* Get vnode of mountpoint */ if ((vp = eat_path(PATH_NOFLAGS)) == NULL) return(err_code); + if (vp->v_ref_count != 1) { + put_vnode(vp); + return(EBUSY); + } + + /* Tell FS on which vnode it is mounted (glue into mount tree) */ if ((r = req_mountpoint(vp->v_fs_e, vp->v_inode_nr)) != OK) { put_vnode(vp);