Disable unused pathname::pn_path* (unneeded in Linux)

struct pathname is originally from Solaris VFS, and it has been used
in ZoL to merely call VOP from Linux VFS interface without API change,
therefore pathname::pn_path* are unused and unneeded. Technically,
struct pathname is a wrapper for C string in ZoL.

Saves stack a bit on lookup and unlink.

(#if0'd members instead of removing since comments refer to them.)

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com>
Closes #9025
This commit is contained in:
Tomohiro Kusumi 2019-07-16 05:57:56 +09:00 committed by Tony Hutter
parent cf966cb19a
commit 0a223246e1
2 changed files with 13 additions and 4 deletions

View File

@ -54,8 +54,10 @@ extern "C" {
*/ */
typedef struct pathname { typedef struct pathname {
char *pn_buf; /* underlying storage */ char *pn_buf; /* underlying storage */
#if 0 /* unused in ZoL */
char *pn_path; /* remaining pathname */ char *pn_path; /* remaining pathname */
size_t pn_pathlen; /* remaining length */ size_t pn_pathlen; /* remaining length */
#endif
size_t pn_bufsize; /* total size of pn_buf */ size_t pn_bufsize; /* total size of pn_buf */
} pathname_t; } pathname_t;

View File

@ -71,9 +71,12 @@ pn_alloc(struct pathname *pnp)
void void
pn_alloc_sz(struct pathname *pnp, size_t sz) pn_alloc_sz(struct pathname *pnp, size_t sz)
{ {
pnp->pn_path = pnp->pn_buf = kmem_alloc(sz, KM_SLEEP); pnp->pn_buf = kmem_alloc(sz, KM_SLEEP);
pnp->pn_pathlen = 0;
pnp->pn_bufsize = sz; pnp->pn_bufsize = sz;
#if 0 /* unused in ZoL */
pnp->pn_path = pnp->pn_buf;
pnp->pn_pathlen = 0;
#endif
} }
/* /*
@ -84,6 +87,10 @@ pn_free(struct pathname *pnp)
{ {
/* pn_bufsize is usually MAXPATHLEN, but may not be */ /* pn_bufsize is usually MAXPATHLEN, but may not be */
kmem_free(pnp->pn_buf, pnp->pn_bufsize); kmem_free(pnp->pn_buf, pnp->pn_bufsize);
pnp->pn_path = pnp->pn_buf = NULL; pnp->pn_buf = NULL;
pnp->pn_pathlen = pnp->pn_bufsize = 0; pnp->pn_bufsize = 0;
#if 0 /* unused in ZoL */
pnp->pn_path = NULL;
pnp->pn_pathlen = 0;
#endif
} }