summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/libautofs/libautofs.36
-rw-r--r--lib/libautofs/libautofs.c16
-rw-r--r--lib/libautofs/libautofs.h5
3 files changed, 22 insertions, 5 deletions
diff --git a/lib/libautofs/libautofs.3 b/lib/libautofs/libautofs.3
index 784813e..fd9f1c3 100644
--- a/lib/libautofs/libautofs.3
+++ b/lib/libautofs/libautofs.3
@@ -63,6 +63,8 @@
.Ft void
.Fn autoreq_getoffset "autoreq_t req" "off_t *offp"
.Ft void
+.Fn autoreq_getxid "autoreq_t req" "int *xidp"
+.Ft void
.Fn autoreq_setino "autoreq_t req" "autoino_t ino"
.Ft void
.Fn autoreq_seterrno "autoreq_t req" "int errno"
@@ -176,6 +178,10 @@ return the auxilliray data associated with the request
return the offset request associated with the request
.Fa req .
(used for readdir request)
+.It Fn autoreq_getxid
+return the transaction id associated with an autofs request, these
+are unique per mount point, but not system wide. They can be used
+for debugging to ensure requests are being accepted by the kernel.
.El
.Pp
The following functions allow one to set the response sent to
diff --git a/lib/libautofs/libautofs.c b/lib/libautofs/libautofs.c
index a47535a..459b32d 100644
--- a/lib/libautofs/libautofs.c
+++ b/lib/libautofs/libautofs.c
@@ -206,10 +206,13 @@ err:
void
autoh_freeall(autoh_t *ah)
{
+ autoh_t *ahp;
- while (*ah != NULL) {
- autoh_free(*ah);
- ah++;
+ ahp = ah;
+
+ while (*ahp != NULL) {
+ autoh_free(*ahp);
+ ahp++;
}
safe_free(ah);
}
@@ -396,6 +399,13 @@ autoreq_getoffset(autoreq_t req, off_t *offp)
*offp = req->au_offset - AUTOFS_USEROFF;
}
+void
+autoreq_getxid(autoreq_t req, int *xid)
+{
+
+ *xid = req->au_xid;
+}
+
/* toggle by path. args = handle, AUTO_?, pid (-1 to disable), path. */
int
autoh_togglepath(autoh_t ah, int op, pid_t pid, const char *path)
diff --git a/lib/libautofs/libautofs.h b/lib/libautofs/libautofs.h
index 5fb29a9..f391bad 100644
--- a/lib/libautofs/libautofs.h
+++ b/lib/libautofs/libautofs.h
@@ -92,8 +92,9 @@ autoino_t autoreq_getdirino(autoreq_t);
void autoreq_seterrno(autoreq_t, int);
void autoreq_setaux(autoreq_t, void *, size_t);
void autoreq_getaux(autoreq_t, void **, size_t *);
-void autoreq_seteof(autoreq_t req, int eof);
-void autoreq_getoffset(autoreq_t req, off_t *offp);
+void autoreq_seteof(autoreq_t, int);
+void autoreq_getoffset(autoreq_t, off_t *);
+void autoreq_getxid(autoreq_t, int *);
/* toggle by path. args = handle, AUTO_?, pid (-1 to disable), path. */
int autoh_togglepath(autoh_t, int, pid_t, const char *);
OpenPOWER on IntegriCloud