Remove redundant m_path field
Subsystems (2)
PATCH 1/1 Remove redundant m_path field
From: J. Bruce Fields <[email protected]>
Contrary to the comment above its definition, the field m_path always has the same value as e_path: the *only* modifications of m_path are all of the form:
strncpy(exp->m_export.m_path, exp->m_export.e_path, sizeof (exp->m_export.m_path) - 1); exp->m_export.m_path[sizeof (exp->m_export.m_path) - 1] = '\0';
So m_path is always just a copy of e_path. In places where we need to store a path to a submount of a CROSSMNT-exported filesystem, as in cache.c, we just use a local variable.
Signed-off-by J. Bruce Fields <[email protected]>
--- support/export/export.c | 12 ------------ support/export/nfsctl.c | 4 ++-- support/include/nfslib.h | 5 ----- support/nfs/exports.c | 6 ------ utils/mountd/mountd.c | 12 ++---------- utils/mountd/rmtab.c | 4 +--- 6 files changed, 5 insertions(+), 38 deletions(-)
Looks obviously correct, but I haven't tested it!
support/export/export.c +0 -12
@@ -255,15 +255,3 @@ export_freeall(void) }client_freeall (); } - -void -export_reset (nfs_export *exp) -{ -if (!exp) -return ; - -/* Restore m_path. */ -strncpy (exp->m_export.m_path, exp->m_export.e_path, -sizeof (exp->m_export.m_path) -1 ); - exp->m_export.m_path[sizeof (exp->m_export.m_path) -1 ] ='\0' ; -}
support/export/nfsctl.c +2 -2
@@ -89,11 +89,11 @@ expsetup(struct nfsctl_export *exparg, nfs_export *exp, int unexport)nfs_client *clp = exp->m_client;struct stat stb; -if (stat (exp->m_export.m_path, &stb) <0 ) +if (stat (exp->m_export.e_path, &stb) <0 )return 0 ;memset (exparg,0 ,sizeof (*exparg)); -strncpy (exparg->ex_path, exp->m_export.m_path, +strncpy (exparg->ex_path, exp->m_export.e_path,sizeof (exparg->ex_path) -1 );strncpy (exparg->ex_client, clp->m_hostname,sizeof (exparg->ex_client) -1 );
support/include/nfslib.h +0 -5
@@ -67,11 +67,6 @@ struct sec_entry {struct exportent {char * e_hostname;char e_path[NFS_MAXPATHLEN +1 ]; -/* The mount path may be different from the exported path due -to submount. It may change for every mount. The idea is we -set m_path every time when we process a mount. We should not -use it for anything else. */ -char m_path[NFS_MAXPATHLEN +1 ];int e_flags;int e_anonuid;int e_anongid;
support/nfs/exports.c +0 -6
@@ -127,8 +127,6 @@ getexportent(int fromkernel, int fromexports)if (ok <=0 )return NULL ; -strncpy (def_ee.m_path, def_ee.e_path,sizeof (def_ee.m_path) -1 ); - def_ee.m_path [sizeof (def_ee.m_path) -1 ] ='\0' ; ok =getexport (exp,sizeof (exp)); }if (ok <0 ) {
@@ -187,8 +185,6 @@ getexportent(int fromkernel, int fromexports) rpath[sizeof (rpath) -1 ] ='\0' ;strncpy (ee.e_path, rpath,sizeof (ee.e_path) -1 ); ee.e_path[sizeof (ee.e_path) -1 ] ='\0' ; -strncpy (ee.m_path, ee.e_path,sizeof (ee.m_path) -1 ); - ee.m_path [sizeof (ee.m_path) -1 ] ='\0' ; }return ⅇ
@@ -360,8 +356,6 @@ mkexportent(char *hname, char *path, char *options) }strncpy (ee.e_path, path,sizeof (ee.e_path)); ee.e_path[sizeof (ee.e_path) -1 ] ='\0' ; -strncpy (ee.m_path, ee.e_path,sizeof (ee.m_path) -1 ); - ee.m_path [sizeof (ee.m_path) -1 ] ='\0' ;if (parseopts (options, &ee,0 ,NULL ) <0 )return NULL ;return ⅇ
utils/mountd/mountd.c +2 -10
@@ -230,9 +230,6 @@ mount_umnt_1_svc(struct svc_req *rqstp, dirpath *argp, void *resp)return 1 ; } -if (!new_cache) -export_reset (exp); -mountlist_del (inet_ntoa (sin->sin_addr), p);return 1 ; }
@@ -312,7 +309,6 @@ mount_pathconf_2_svc(struct svc_req *rqstp, dirpath *path, ppathcnf *res) }else if (stat (p, &stb) <0 ) {xlog (L_WARNING ,"can't stat exported dir %s: %s" , p,strerror (errno)); -export_reset (exp);return 1 ; }
@@ -328,8 +324,6 @@ mount_pathconf_2_svc(struct svc_req *rqstp, dirpath *path, ppathcnf *res) res->pc_mask[0 ] =0 ; res->pc_mask[1 ] =0 ; -export_reset (exp); -return 1 ; }
@@ -457,13 +451,11 @@ get_rootfh(struct svc_req *rqstp, dirpath *path, mountstat3 *error, int v3)if (fh !=NULL ) {mountlist_add (inet_ntoa (sin->sin_addr), p); *error =NFS_OK ; -export_reset (exp);return fh; }xlog (L_WARNING ,"getfh failed: %s" ,strerror (errno)); *error =NFSERR_ACCES ; } -export_reset (exp);return NULL ; }
@@ -499,14 +491,14 @@ get_exportlist(void)for (i =0 ; i <MCL_MAXTYPES ; i++) {for (exp = exportlist[i]; exp; exp = exp->m_next) {for (e = elist; e !=NULL ; e = e->ex_next) { -if (!strcmp (exp->m_export.m_path, e->ex_dir)) +if (!strcmp (exp->m_export.e_path, e->ex_dir))break ; }if (!e) { e = (struct exportnode *)xmalloc (sizeof (*e)); e->ex_next = elist; e->ex_groups =NULL ; - e->ex_dir =xstrdup (exp->m_export.m_path); + e->ex_dir =xstrdup (exp->m_export.e_path); elist = e; }
utils/mountd/rmtab.c +1 -3
@@ -162,10 +162,8 @@ mountlist_del_all(struct sockaddr_in *sin) }while ((rep =getrmtabent (1 ,NULL )) !=NULL ) {if (strcmp (rep->r_client, hp->h_name) ==0 && - (exp =auth_authenticate ("umountall" , sin, rep->r_path))) { -export_reset (exp); + (exp =auth_authenticate ("umountall" , sin, rep->r_path)))continue ; - }fputrmtabent (fp, rep,NULL ); }if (slink_safe_rename (_PATH_RMTABTMP, _PATH_RMTAB) <0 ) {
Signature · 1 line
1.5.5.rc1