diff options
| author | Sebastien Roy <seb@delphix.com> | 2017-01-31 17:53:32 -0500 |
|---|---|---|
| committer | Prakash Surya <prakash.surya@delphix.com> | 2018-02-13 08:28:04 -0800 |
| commit | d9a54dd1ef75248420c035ec1d240674f8d1f4fb (patch) | |
| tree | 6dff8e23c5877980c56ed5e5b89bc99c27c3086a /usr/src/uts/common/fs/vfs.c | |
| parent | 213fcdcbdccbdeb7d33fbae7ba8d2639a6f8fd01 (diff) | |
| download | illumos-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.c | 8 |
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; } |
