Author: avg
Date: Wed Jul 13 11:14:11 2016
New Revision: 302764
URL: https://svnweb.freebsd.org/changeset/base/302764

Log:
  MFC r300134: move zfsctl_freebsd_root_lookup right next to
  zfsctl_root_lookup

Modified:
  stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
==============================================================================
--- stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c       
Wed Jul 13 11:08:50 2016        (r302763)
+++ stable/10/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c       
Wed Jul 13 11:14:11 2016        (r302764)
@@ -557,6 +557,50 @@ zfsctl_root_lookup(vnode_t *dvp, char *n
 }
 
 static int
+zfsctl_freebsd_root_lookup(ap)
+       struct vop_lookup_args /* {
+               struct vnode *a_dvp;
+               struct vnode **a_vpp;
+               struct componentname *a_cnp;
+       } */ *ap;
+{
+       vnode_t *dvp = ap->a_dvp;
+       vnode_t **vpp = ap->a_vpp;
+       cred_t *cr = ap->a_cnp->cn_cred;
+       int flags = ap->a_cnp->cn_flags;
+       int lkflags = ap->a_cnp->cn_lkflags;
+       int nameiop = ap->a_cnp->cn_nameiop;
+       char nm[NAME_MAX + 1];
+       int err;
+
+       if ((flags & ISLASTCN) && (nameiop == RENAME || nameiop == CREATE))
+               return (EOPNOTSUPP);
+
+       ASSERT(ap->a_cnp->cn_namelen < sizeof(nm));
+       strlcpy(nm, ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen + 1);
+relookup:
+       err = zfsctl_root_lookup(dvp, nm, vpp, NULL, 0, NULL, cr, NULL, NULL, 
NULL);
+       if (err == 0 && (nm[0] != '.' || nm[1] != '\0')) {
+               if (flags & ISDOTDOT) {
+                       VOP_UNLOCK(dvp, 0);
+                       err = vn_lock(*vpp, lkflags);
+                       if (err != 0) {
+                               vrele(*vpp);
+                               *vpp = NULL;
+                       }
+                       vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
+               } else {
+                       err = vn_lock(*vpp, LK_EXCLUSIVE);
+                       if (err != 0) {
+                               VERIFY3S(err, ==, ENOENT);
+                               goto relookup;
+                       }
+               }
+       }
+       return (err);
+}
+
+static int
 zfsctl_root_print(ap)
        struct vop_print_args /* {
                struct vnode *a_vp;
@@ -602,54 +646,6 @@ static const fs_operation_def_t zfsctl_t
 };
 #endif /* illumos */
 
-/*
- * Special case the handling of "..".
- */
-/* ARGSUSED */
-int
-zfsctl_freebsd_root_lookup(ap)
-       struct vop_lookup_args /* {
-               struct vnode *a_dvp;
-               struct vnode **a_vpp;
-               struct componentname *a_cnp;
-       } */ *ap;
-{
-       vnode_t *dvp = ap->a_dvp;
-       vnode_t **vpp = ap->a_vpp;
-       cred_t *cr = ap->a_cnp->cn_cred;
-       int flags = ap->a_cnp->cn_flags;
-       int lkflags = ap->a_cnp->cn_lkflags;
-       int nameiop = ap->a_cnp->cn_nameiop;
-       char nm[NAME_MAX + 1];
-       int err;
-
-       if ((flags & ISLASTCN) && (nameiop == RENAME || nameiop == CREATE))
-               return (EOPNOTSUPP);
-
-       ASSERT(ap->a_cnp->cn_namelen < sizeof(nm));
-       strlcpy(nm, ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen + 1);
-relookup:
-       err = zfsctl_root_lookup(dvp, nm, vpp, NULL, 0, NULL, cr, NULL, NULL, 
NULL);
-       if (err == 0 && (nm[0] != '.' || nm[1] != '\0')) {
-               if (flags & ISDOTDOT) {
-                       VOP_UNLOCK(dvp, 0);
-                       err = vn_lock(*vpp, lkflags);
-                       if (err != 0) {
-                               vrele(*vpp);
-                               *vpp = NULL;
-                       }
-                       vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY);
-               } else {
-                       err = vn_lock(*vpp, LK_EXCLUSIVE);
-                       if (err != 0) {
-                               VERIFY3S(err, ==, ENOENT);
-                               goto relookup;
-                       }
-               }
-       }
-       return (err);
-}
-
 static struct vop_vector zfsctl_ops_root = {
        .vop_default =  &default_vnodeops,
        .vop_open =     zfsctl_common_open,
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "[email protected]"

Reply via email to