autofs/SOURCES/autofs-5.1.5-log-mount-call...

223 lines
7.0 KiB
Diff

autofs-5.1.5 - log mount call arguments if mount_verbose is set
From: Lars R. Damerow <lars@pixar.com>
Override the debug log only setting if mount_verbose is set so that
mount parameter information is logged on mount.
Signed-off-by: Lars R. Damerow <lars@pixar.com>
Signed-off-by: Ian Kent <raven@themaw.net>
---
CHANGELOG | 1 +
modules/mount_afs.c | 6 +++++-
modules/mount_bind.c | 10 +++++++---
modules/mount_ext2.c | 16 ++++++++++------
modules/mount_generic.c | 14 +++++++++-----
modules/mount_nfs.c | 29 +++++++++++++++++------------
6 files changed, 49 insertions(+), 27 deletions(-)
--- autofs-5.1.4.orig/CHANGELOG
+++ autofs-5.1.4/CHANGELOG
@@ -49,6 +49,7 @@ xx/xx/2018 autofs-5.1.5
- use malloc(3) in spawn.c.
- add mount_verbose configuration option.
- optionally log mount requestor process info.
+- log mount call arguments if mount_verbose is set.
19/12/2017 autofs-5.1.4
- fix spec file url.
--- autofs-5.1.4.orig/modules/mount_afs.c
+++ autofs-5.1.4/modules/mount_afs.c
@@ -37,10 +37,14 @@ int mount_mount(struct autofs_point *ap,
char dest[PATH_MAX + 1];
size_t r_len = strlen(root);
size_t d_len = r_len + name_len + 2;
+ void (*mountlog)(unsigned int, const char*, ...) = &log_debug;
if (ap->flags & MOUNT_FLAG_REMOUNT)
return 0;
+ if (defaults_get_mount_verbose())
+ mountlog = &log_info;
+
if (d_len > PATH_MAX)
return 1;
@@ -53,7 +57,7 @@ int mount_mount(struct autofs_point *ap,
if (dest[strlen(dest)-1] == '/')
dest[strlen(dest)-1] = '\0';
- debug(ap->logopt, MODPREFIX "mounting AFS %s -> %s", dest, what);
+ mountlog(ap->logopt, MODPREFIX "mounting AFS %s -> %s", dest, what);
return symlink(what, dest); /* Try it. If it fails, return the error. */
}
--- autofs-5.1.4.orig/modules/mount_bind.c
+++ autofs-5.1.4/modules/mount_bind.c
@@ -81,10 +81,14 @@ int mount_mount(struct autofs_point *ap,
int err;
int i, len;
int symlnk = (*name != '/' && (ap->flags & MOUNT_FLAG_SYMLINK));
+ void (*mountlog)(unsigned int, const char*, ...) = &log_debug;
if (ap->flags & MOUNT_FLAG_REMOUNT)
return 0;
+ if (defaults_get_mount_verbose())
+ mountlog = &log_info;
+
/* Extract "symlink" pseudo-option which forces local filesystems
* to be symlinked instead of bound.
*/
@@ -164,9 +168,9 @@ int mount_mount(struct autofs_point *ap,
if (!status)
existed = 0;
- debug(ap->logopt, MODPREFIX
- "calling mount --bind -o %s %s %s",
- options, what, fullpath);
+ mountlog(ap->logopt, MODPREFIX
+ "calling mount --bind -o %s %s %s",
+ options, what, fullpath);
err = spawn_bind_mount(ap->logopt, "-o",
options, what, fullpath, NULL);
--- autofs-5.1.4.orig/modules/mount_ext2.c
+++ autofs-5.1.4/modules/mount_ext2.c
@@ -47,10 +47,14 @@ int mount_mount(struct autofs_point *ap,
int err, ro = 0;
const char *fsck_prog;
int len, status, existed = 1;
+ void (*mountlog)(unsigned int, const char*, ...) = &log_debug;
if (ap->flags & MOUNT_FLAG_REMOUNT)
return 0;
+ if (defaults_get_mount_verbose())
+ mountlog = &log_info;
+
/* Root offset of multi-mount */
len = strlen(root);
if (root[len - 1] == '/') {
@@ -121,15 +125,15 @@ int mount_mount(struct autofs_point *ap,
}
if (options) {
- debug(ap->logopt, MODPREFIX
- "calling mount -t %s -o %s %s %s",
- fstype, options, what, fullpath);
+ mountlog(ap->logopt, MODPREFIX
+ "calling mount -t %s -o %s %s %s",
+ fstype, options, what, fullpath);
err = spawn_mount(ap->logopt, "-t", fstype,
"-o", options, what, fullpath, NULL);
} else {
- debug(ap->logopt,
- MODPREFIX "calling mount -t %s %s %s",
- fstype, what, fullpath);
+ mountlog(ap->logopt,
+ MODPREFIX "calling mount -t %s %s %s",
+ fstype, what, fullpath);
err = spawn_mount(ap->logopt, "-t", fstype, what, fullpath, NULL);
}
--- autofs-5.1.4.orig/modules/mount_generic.c
+++ autofs-5.1.4/modules/mount_generic.c
@@ -46,10 +46,14 @@ int mount_mount(struct autofs_point *ap,
char buf[MAX_ERR_BUF];
int err;
int len, status, existed = 1;
+ void (*mountlog)(unsigned int, const char*, ...) = &log_debug;
if (ap->flags & MOUNT_FLAG_REMOUNT)
return 0;
+ if (defaults_get_mount_verbose())
+ mountlog = &log_info;
+
/* Root offset of multi-mount */
len = strlen(root);
if (root[len - 1] == '/') {
@@ -80,15 +84,15 @@ int mount_mount(struct autofs_point *ap,
existed = 0;
if (options && options[0]) {
- debug(ap->logopt,
- MODPREFIX "calling mount -t %s -o %s %s %s",
- fstype, options, what, fullpath);
+ mountlog(ap->logopt,
+ MODPREFIX "calling mount -t %s -o %s %s %s",
+ fstype, options, what, fullpath);
err = spawn_mount(ap->logopt, "-t", fstype,
"-o", options, what, fullpath, NULL);
} else {
- debug(ap->logopt, MODPREFIX "calling mount -t %s %s %s",
- fstype, what, fullpath);
+ mountlog(ap->logopt, MODPREFIX "calling mount -t %s %s %s",
+ fstype, what, fullpath);
err = spawn_mount(ap->logopt, "-t", fstype, what, fullpath, NULL);
}
--- autofs-5.1.4.orig/modules/mount_nfs.c
+++ autofs-5.1.4/modules/mount_nfs.c
@@ -77,13 +77,17 @@ int mount_mount(struct autofs_point *ap,
int port = -1;
int ro = 0; /* Set if mount bind should be read-only */
int rdma = 0;
+ void (*mountlog)(unsigned int, const char*, ...) = &log_debug;
if (ap->flags & MOUNT_FLAG_REMOUNT)
return 0;
- debug(ap->logopt,
- MODPREFIX "root=%s name=%s what=%s, fstype=%s, options=%s",
- root, name, what, fstype, options);
+ if (defaults_get_mount_verbose())
+ mountlog = &log_info;
+
+ mountlog(ap->logopt,
+ MODPREFIX "root=%s name=%s what=%s, fstype=%s, options=%s",
+ root, name, what, fstype, options);
mount_default_proto = defaults_get_mount_nfs_default_proto();
vers = NFS_VERS_DEFAULT | NFS_PROTO_DEFAULT;
@@ -203,9 +207,9 @@ int mount_mount(struct autofs_point *ap,
if ((vers & NFS_PROTO_MASK) == 0)
vers |= NFS_PROTO_MASK;
- debug(ap->logopt, MODPREFIX
- "nfs options=\"%s\", nobind=%d, nosymlink=%d, ro=%d",
- nfsoptions, nobind, nosymlink, ro);
+ mountlog(ap->logopt, MODPREFIX
+ "nfs options=\"%s\", nobind=%d, nosymlink=%d, ro=%d",
+ nfsoptions, nobind, nosymlink, ro);
}
if (!parse_location(ap->logopt, &hosts, what, flags)) {
@@ -379,17 +383,18 @@ dont_probe:
}
if (nfsoptions && *nfsoptions) {
- debug(ap->logopt,
- MODPREFIX "calling mount -t %s " SLOPPY
- "-o %s %s %s", fstype, nfsoptions, loc, fullpath);
+ mountlog(ap->logopt,
+ MODPREFIX "calling mount -t %s " SLOPPY
+ "-o %s %s %s", fstype, nfsoptions, loc,
+ fullpath);
err = spawn_mount(ap->logopt,
"-t", fstype, SLOPPYOPT "-o",
nfsoptions, loc, fullpath, NULL);
} else {
- debug(ap->logopt,
- MODPREFIX "calling mount -t %s %s %s",
- fstype, loc, fullpath);
+ mountlog(ap->logopt,
+ MODPREFIX "calling mount -t %s %s %s",
+ fstype, loc, fullpath);
err = spawn_mount(ap->logopt,
"-t", fstype, loc, fullpath, NULL);
}