summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/vfs.c
diff options
context:
space:
mode:
authorSebastien Roy <seb@delphix.com>2017-01-31 17:53:32 -0500
committerPrakash Surya <prakash.surya@delphix.com>2018-02-13 08:28:04 -0800
commitd9a54dd1ef75248420c035ec1d240674f8d1f4fb (patch)
tree6dff8e23c5877980c56ed5e5b89bc99c27c3086a /usr/src/uts/common/fs/vfs.c
parent213fcdcbdccbdeb7d33fbae7ba8d2639a6f8fd01 (diff)
downloadillumos-joyent-d9a54dd1ef75248420c035ec1d240674f8d1f4fb.tar.gz
9074 domount() interprets ZFS filesystem names as relative paths
Reviewed by: Paul Dagnelie <pcd@delphix.com> Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Diffstat (limited to 'usr/src/uts/common/fs/vfs.c')
-rw-r--r--usr/src/uts/common/fs/vfs.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr/src/uts/common/fs/vfs.c b/usr/src/uts/common/fs/vfs.c
index 9d54e2b1bd..42198e2388 100644
--- a/usr/src/uts/common/fs/vfs.c
+++ b/usr/src/uts/common/fs/vfs.c
@@ -23,7 +23,7 @@
* Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2016 Joyent, Inc.
* Copyright 2016 Toomas Soome <tsoome@me.com>
- * Copyright (c) 2016 by Delphix. All rights reserved.
+ * Copyright (c) 2016, 2017 by Delphix. All rights reserved.
* Copyright 2016 Nexenta Systems, Inc.
* Copyright 2017 RackTop Systems.
*/
@@ -1291,7 +1291,8 @@ domount(char *fsname, struct mounta *uap, vnode_t *vp, struct cred *credp,
* successful for later cleanup and addition to
* the mount in progress table.
*/
- if ((uap->flags & MS_GLOBAL) == 0 &&
+ if ((vswp->vsw_flag & VSW_MOUNTDEV) &&
+ (uap->flags & MS_GLOBAL) == 0 &&
lookupname(uap->spec, fromspace,
FOLLOW, NULL, &bvp) == 0) {
addmip = 1;
@@ -1507,7 +1508,8 @@ domount(char *fsname, struct mounta *uap, vnode_t *vp, struct cred *credp,
* wlock above. This case is for a non-spliced, non-global filesystem.
*/
if (!addmip) {
- if ((uap->flags & MS_GLOBAL) == 0 &&
+ if ((vswp->vsw_flag & VSW_MOUNTDEV) &&
+ (uap->flags & MS_GLOBAL) == 0 &&
lookupname(uap->spec, fromspace, FOLLOW, NULL, &bvp) == 0) {
addmip = 1;
}