Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2011 08:05:17 +0000 (UTC)
From:      Zack Kirsch <zack@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r224078 - in head/sys/fs: nfs nfsserver
Message-ID:  <201107160805.p6G85HjG016238@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: zack
Date: Sat Jul 16 08:05:17 2011
New Revision: 224078
URL: http://svn.freebsd.org/changeset/base/224078

Log:
  Move nfsvno_pathconf to be accessible to sys/fs/nfs; no functionality change.
  
  Reviewed by:    rmacklem
  Approved by:    zml (mentor)
  MFC after:      2 weeks

Modified:
  head/sys/fs/nfs/nfs_commonport.c
  head/sys/fs/nfs/nfs_var.h
  head/sys/fs/nfsserver/nfs_nfsdport.c

Modified: head/sys/fs/nfs/nfs_commonport.c
==============================================================================
--- head/sys/fs/nfs/nfs_commonport.c	Sat Jul 16 08:04:57 2011	(r224077)
+++ head/sys/fs/nfs/nfs_commonport.c	Sat Jul 16 08:05:17 2011	(r224078)
@@ -289,6 +289,49 @@ nfsvno_getfs(struct nfsfsinfo *sip, int 
 	    NFSV3FSINFO_CANSETTIME);
 }
 
+/*
+ * Do the pathconf vnode op.
+ */
+int
+nfsvno_pathconf(struct vnode *vp, int flag, register_t *retf,
+    struct ucred *cred, struct thread *p)
+{
+	int error;
+
+	error = VOP_PATHCONF(vp, flag, retf);
+	if (error == EOPNOTSUPP || error == EINVAL) {
+		/*
+		 * Some file systems return EINVAL for name arguments not
+		 * supported and some return EOPNOTSUPP for this case.
+		 * So the NFSv3 Pathconf RPC doesn't fail for these cases,
+		 * just fake them.
+		 */
+		switch (flag) {
+		case _PC_LINK_MAX:
+			*retf = LINK_MAX;
+			break;
+		case _PC_NAME_MAX:
+			*retf = NAME_MAX;
+			break;
+		case _PC_CHOWN_RESTRICTED:
+			*retf = 1;
+			break;
+		case _PC_NO_TRUNC:
+			*retf = 1;
+			break;
+		default:
+			/*
+			 * Only happens if a _PC_xxx is added to the server,
+			 * but this isn't updated.
+			 */
+			*retf = 0;
+			printf("nfsrvd pathconf flag=%d not supp\n", flag);
+		};
+		error = 0;
+	}
+	return (error);
+}
+
 /* Fake nfsrv_atroot. Just return 0 */
 int
 nfsrv_atroot(struct vnode *vp, long *retp)

Modified: head/sys/fs/nfs/nfs_var.h
==============================================================================
--- head/sys/fs/nfs/nfs_var.h	Sat Jul 16 08:04:57 2011	(r224077)
+++ head/sys/fs/nfs/nfs_var.h	Sat Jul 16 08:05:17 2011	(r224078)
@@ -325,6 +325,8 @@ struct ucred *newnfs_getcred(void);
 void newnfs_setroot(struct ucred *);
 int nfs_catnap(int, int, const char *);
 struct nfsreferral *nfsv4root_getreferral(vnode_t, vnode_t, u_int32_t);
+int nfsvno_pathconf(vnode_t, int, register_t *, struct ucred *,
+    NFSPROC_T *);
 int nfsrv_atroot(vnode_t, long *);
 void newnfs_timer(void *);
 int nfs_supportsnfsv4acls(vnode_t);
@@ -569,8 +571,6 @@ int nfsvno_checkexp(mount_t, NFSSOCKADDR
     struct ucred **);
 int nfsvno_fhtovp(mount_t, fhandle_t *, NFSSOCKADDR_T, int,
     vnode_t *, struct nfsexstuff *, struct ucred **);
-int nfsvno_pathconf(vnode_t, int, register_t *, struct ucred *,
-    NFSPROC_T *);
 vnode_t nfsvno_getvp(fhandle_t *);
 int nfsvno_advlock(vnode_t, int, u_int64_t, u_int64_t, NFSPROC_T *);
 int nfsrv_v4rootexport(void *, struct ucred *, NFSPROC_T *);

Modified: head/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdport.c	Sat Jul 16 08:04:57 2011	(r224077)
+++ head/sys/fs/nfsserver/nfs_nfsdport.c	Sat Jul 16 08:05:17 2011	(r224078)
@@ -2583,49 +2583,6 @@ nfsvno_fhtovp(struct mount *mp, fhandle_
 }
 
 /*
- * Do the pathconf vnode op.
- */
-int
-nfsvno_pathconf(struct vnode *vp, int flag, register_t *retf,
-    struct ucred *cred, struct thread *p)
-{
-	int error;
-
-	error = VOP_PATHCONF(vp, flag, retf);
-	if (error == EOPNOTSUPP || error == EINVAL) {
-		/*
-		 * Some file systems return EINVAL for name arguments not
-		 * supported and some return EOPNOTSUPP for this case.
-		 * So the NFSv3 Pathconf RPC doesn't fail for these cases,
-		 * just fake them.
-		 */
-		switch (flag) {
-		case _PC_LINK_MAX:
-			*retf = LINK_MAX;
-			break;
-		case _PC_NAME_MAX:
-			*retf = NAME_MAX;
-			break;
-		case _PC_CHOWN_RESTRICTED:
-			*retf = 1;
-			break;
-		case _PC_NO_TRUNC:
-			*retf = 1;
-			break;
-		default:
-			/*
-			 * Only happens if a _PC_xxx is added to the server,
-			 * but this isn't updated.
-			 */
-			*retf = 0;
-			printf("nfsrvd pathconf flag=%d not supp\n", flag);
-		};
-		error = 0;
-	}
-	return (error);
-}
-
-/*
  * nfsd_fhtovp() - convert a fh to a vnode ptr
  * 	- look up fsid in mount list (if not found ret error)
  *	- get vp and export rights by calling nfsvno_fhtovp()



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107160805.p6G85HjG016238>