Updated to the latest RC release: nfs-utils-1-3-4-rc4
Signed-off-by: Steve Dickson <steved@redhat.com>
This commit is contained in:
parent
de01b8ad2b
commit
246fcbd34a
@ -1,11 +1,11 @@
|
|||||||
diff -up nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c.orig nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c
|
diff -up nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c.orig nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c
|
||||||
--- nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c.orig 2015-09-26 10:01:11.000000000 -0400
|
--- nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c.orig 2016-03-16 12:29:29.054788094 -0400
|
||||||
+++ nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c 2015-11-02 09:04:35.380893753 -0500
|
+++ nfs-utils-1.3.3/utils/nfsidmap/nfsidmap.c 2016-03-16 12:31:58.234450259 -0400
|
||||||
@@ -425,7 +425,7 @@ int main(int argc, char **argv)
|
@@ -430,7 +430,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
xlog_stderr(0);
|
xlog_stderr(verbose);
|
||||||
if ((argc - optind) != 2) {
|
if ((argc - optind) != 2) {
|
||||||
- xlog_err("Bad arg count. Check /etc/request-key.conf");
|
- xlog_warn("Bad arg count. Check /etc/request-key.conf");
|
||||||
+ xlog_err("Bad arg count. Check /etc/request-key.d/request-key.conf");
|
+ xlog_err("Bad arg count. Check /etc/request-key.d/request-key.conf");
|
||||||
xlog_warn(usage, progname);
|
xlog_warn(usage, progname);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
@ -48,9 +48,18 @@ index 95156f0..2346f99 100644
|
|||||||
dot = strchr(hname, '.');
|
dot = strchr(hname, '.');
|
||||||
if (dot == NULL)
|
if (dot == NULL)
|
||||||
diff --git a/support/export/hostname.c b/support/export/hostname.c
|
diff --git a/support/export/hostname.c b/support/export/hostname.c
|
||||||
index 169baa5..4daabe9 100644
|
index 169baa5..94e98a5 100644
|
||||||
--- a/support/export/hostname.c
|
--- a/support/export/hostname.c
|
||||||
+++ b/support/export/hostname.c
|
+++ b/support/export/hostname.c
|
||||||
|
@@ -69,7 +69,7 @@ host_ntop(const struct sockaddr *sap, char *buf, const size_t buflen)
|
||||||
|
|
||||||
|
memset(buf, 0, buflen);
|
||||||
|
|
||||||
|
- if (sin->sin_family != AF_INET)
|
||||||
|
+ if (sin->sin_family != AF_INET) {
|
||||||
|
(void)strncpy(buf, "bad family", buflen - 1);
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
@@ -134,12 +134,14 @@ host_pton(const char *paddr)
|
@@ -134,12 +134,14 @@ host_pton(const char *paddr)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -68,6 +77,19 @@ index 169baa5..4daabe9 100644
|
|||||||
__func__, paddr, gai_strerror(error));
|
__func__, paddr, gai_strerror(error));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
diff --git a/support/include/ha-callout.h b/support/include/ha-callout.h
|
||||||
|
index 1164336..a454bdb 100644
|
||||||
|
--- a/support/include/ha-callout.h
|
||||||
|
+++ b/support/include/ha-callout.h
|
||||||
|
@@ -47,7 +47,7 @@ ha_callout(char *event, char *arg1, char *arg2, int arg3)
|
||||||
|
arg3 < 0 ? NULL : buf,
|
||||||
|
NULL);
|
||||||
|
perror("execl");
|
||||||
|
- exit(2);
|
||||||
|
+ _exit(2);
|
||||||
|
case -1: perror("fork");
|
||||||
|
break;
|
||||||
|
default: pid = waitpid(pid, &ret, 0);
|
||||||
diff --git a/support/include/nfslib.h b/support/include/nfslib.h
|
diff --git a/support/include/nfslib.h b/support/include/nfslib.h
|
||||||
index c9a13cb..ddd71ac 100644
|
index c9a13cb..ddd71ac 100644
|
||||||
--- a/support/include/nfslib.h
|
--- a/support/include/nfslib.h
|
||||||
@ -279,6 +301,21 @@ index 0331926..03f96e9 100644
|
|||||||
|
|
||||||
EXTRA_DIST = $(unit_files)
|
EXTRA_DIST = $(unit_files)
|
||||||
|
|
||||||
|
diff --git a/systemd/nfs-config.service b/systemd/nfs-config.service
|
||||||
|
index 7f65305..4b206b5 100644
|
||||||
|
--- a/systemd/nfs-config.service
|
||||||
|
+++ b/systemd/nfs-config.service
|
||||||
|
@@ -5,5 +5,9 @@ DefaultDependencies=no
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
-RemainAfterExit=yes
|
||||||
|
+# This service needs to run any time any nfs service
|
||||||
|
+# is started, so changes to local config files get
|
||||||
|
+# incorporated. Having "RemainAfterExit=no" (the default)
|
||||||
|
+# ensures this happens.
|
||||||
|
+RemainAfterExit=no
|
||||||
|
ExecStart=/usr/lib/systemd/scripts/nfs-utils_env.sh
|
||||||
diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service
|
diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service
|
||||||
index 12b02f2..317e5d6 100644
|
index 12b02f2..317e5d6 100644
|
||||||
--- a/systemd/nfs-server.service
|
--- a/systemd/nfs-server.service
|
||||||
@ -344,6 +381,45 @@ index 011bb42..4ca4bc4 100644
|
|||||||
|
|
||||||
def __print_rpc_op_stats(self, op, sample_time):
|
def __print_rpc_op_stats(self, op, sample_time):
|
||||||
"""Print generic stats for one RPC op
|
"""Print generic stats for one RPC op
|
||||||
|
diff --git a/utils/blkmapd/device-discovery.c b/utils/blkmapd/device-discovery.c
|
||||||
|
index b52afe2..b010628 100644
|
||||||
|
--- a/utils/blkmapd/device-discovery.c
|
||||||
|
+++ b/utils/blkmapd/device-discovery.c
|
||||||
|
@@ -427,7 +427,10 @@ void sig_die(int signal)
|
||||||
|
BL_LOG_ERR("exit on signal(%d)\n", signal);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+static void usage(void)
|
||||||
|
+{
|
||||||
|
+ fprintf(stderr, "Usage: blkmapd [-hdf]\n" );
|
||||||
|
+}
|
||||||
|
/* Daemon */
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
@@ -435,7 +438,7 @@ int main(int argc, char **argv)
|
||||||
|
struct stat statbuf;
|
||||||
|
char pidbuf[64];
|
||||||
|
|
||||||
|
- while ((opt = getopt(argc, argv, "df")) != -1) {
|
||||||
|
+ while ((opt = getopt(argc, argv, "hdf")) != -1) {
|
||||||
|
switch (opt) {
|
||||||
|
case 'd':
|
||||||
|
dflag = 1;
|
||||||
|
@@ -443,6 +446,13 @@ int main(int argc, char **argv)
|
||||||
|
case 'f':
|
||||||
|
fg = 1;
|
||||||
|
break;
|
||||||
|
+ case 'h':
|
||||||
|
+ usage();
|
||||||
|
+ exit(0);
|
||||||
|
+ default:
|
||||||
|
+ usage();
|
||||||
|
+ exit(1);
|
||||||
|
+
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
|
diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
|
||||||
index 8758231..a9151ff 100644
|
index 8758231..a9151ff 100644
|
||||||
--- a/utils/exportfs/exportfs.c
|
--- a/utils/exportfs/exportfs.c
|
||||||
@ -456,10 +532,22 @@ index badbe88..5d77c21 100644
|
|||||||
1, &return_ctx);
|
1, &return_ctx);
|
||||||
if (maj_stat != GSS_S_COMPLETE) {
|
if (maj_stat != GSS_S_COMPLETE) {
|
||||||
diff --git a/utils/gssd/gssd.c b/utils/gssd/gssd.c
|
diff --git a/utils/gssd/gssd.c b/utils/gssd/gssd.c
|
||||||
index e480349..e7cb07f 100644
|
index e480349..7ba27b1 100644
|
||||||
--- a/utils/gssd/gssd.c
|
--- a/utils/gssd/gssd.c
|
||||||
+++ b/utils/gssd/gssd.c
|
+++ b/utils/gssd/gssd.c
|
||||||
@@ -556,7 +556,7 @@ gssd_scan_topdir(const char *name)
|
@@ -400,8 +400,9 @@ gssd_get_clnt(struct topdir *tdi, const char *name)
|
||||||
|
|
||||||
|
clp->wd = inotify_add_watch(inotify_fd, clp->relpath, IN_CREATE | IN_DELETE);
|
||||||
|
if (clp->wd < 0) {
|
||||||
|
- printerr(0, "ERROR: inotify_add_watch failed for %s: %s\n",
|
||||||
|
- clp->relpath, strerror(errno));
|
||||||
|
+ if (errno != ENOENT)
|
||||||
|
+ printerr(0, "ERROR: inotify_add_watch failed for %s: %s\n",
|
||||||
|
+ clp->relpath, strerror(errno));
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -556,7 +557,7 @@ gssd_scan_topdir(const char *name)
|
||||||
if (clp->scanned)
|
if (clp->scanned)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -468,7 +556,7 @@ index e480349..e7cb07f 100644
|
|||||||
saveprev = clp->list.tqe_prev;
|
saveprev = clp->list.tqe_prev;
|
||||||
TAILQ_REMOVE(&tdi->clnt_list, clp, list);
|
TAILQ_REMOVE(&tdi->clnt_list, clp, list);
|
||||||
gssd_destroy_client(clp);
|
gssd_destroy_client(clp);
|
||||||
@@ -716,7 +716,7 @@ gssd_inotify_cb(int ifd, short UNUSED(which), void *UNUSED(data))
|
@@ -716,7 +717,7 @@ gssd_inotify_cb(int ifd, short UNUSED(which), void *UNUSED(data))
|
||||||
|
|
||||||
found:
|
found:
|
||||||
if (!tdi) {
|
if (!tdi) {
|
||||||
@ -477,7 +565,7 @@ index e480349..e7cb07f 100644
|
|||||||
"ev->wd (%d) ev->name (%s) ev->mask (0x%08x)\n",
|
"ev->wd (%d) ev->name (%s) ev->mask (0x%08x)\n",
|
||||||
ev->wd, ev->len > 0 ? ev->name : "<?>", ev->mask);
|
ev->wd, ev->len > 0 ? ev->name : "<?>", ev->mask);
|
||||||
rescan = true;
|
rescan = true;
|
||||||
@@ -820,7 +820,7 @@ main(int argc, char *argv[])
|
@@ -820,7 +821,7 @@ main(int argc, char *argv[])
|
||||||
* the results of getpw*.
|
* the results of getpw*.
|
||||||
*/
|
*/
|
||||||
if (setenv("HOME", "/", 1)) {
|
if (setenv("HOME", "/", 1)) {
|
||||||
@ -486,7 +574,7 @@ index e480349..e7cb07f 100644
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -869,6 +869,13 @@ main(int argc, char *argv[])
|
@@ -869,6 +870,13 @@ main(int argc, char *argv[])
|
||||||
if (verbosity && rpc_verbosity == 0)
|
if (verbosity && rpc_verbosity == 0)
|
||||||
rpc_verbosity = verbosity;
|
rpc_verbosity = verbosity;
|
||||||
authgss_set_debug_level(rpc_verbosity);
|
authgss_set_debug_level(rpc_verbosity);
|
||||||
@ -500,7 +588,7 @@ index e480349..e7cb07f 100644
|
|||||||
#else
|
#else
|
||||||
if (rpc_verbosity > 0)
|
if (rpc_verbosity > 0)
|
||||||
printerr(0, "Warning: rpcsec_gss library does not "
|
printerr(0, "Warning: rpcsec_gss library does not "
|
||||||
@@ -884,19 +891,19 @@ main(int argc, char *argv[])
|
@@ -884,19 +892,19 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
pipefs_dir = opendir(pipefs_path);
|
pipefs_dir = opendir(pipefs_path);
|
||||||
if (!pipefs_dir) {
|
if (!pipefs_dir) {
|
||||||
@ -523,7 +611,7 @@ index e480349..e7cb07f 100644
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -913,7 +920,7 @@ main(int argc, char *argv[])
|
@@ -913,7 +921,7 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
event_dispatch();
|
event_dispatch();
|
||||||
|
|
||||||
@ -533,7 +621,7 @@ index e480349..e7cb07f 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
|
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
|
||||||
index 11168b2..1ef68d8 100644
|
index 11168b2..2dd06a7 100644
|
||||||
--- a/utils/gssd/gssd_proc.c
|
--- a/utils/gssd/gssd_proc.c
|
||||||
+++ b/utils/gssd/gssd_proc.c
|
+++ b/utils/gssd/gssd_proc.c
|
||||||
@@ -150,7 +150,7 @@ do_downcall(int k5_fd, uid_t uid, struct authgss_private_data *pd,
|
@@ -150,7 +150,7 @@ do_downcall(int k5_fd, uid_t uid, struct authgss_private_data *pd,
|
||||||
@ -554,24 +642,6 @@ index 11168b2..1ef68d8 100644
|
|||||||
|
|
||||||
if (WRITE_BYTES(&p, end, uid)) goto out_err;
|
if (WRITE_BYTES(&p, end, uid)) goto out_err;
|
||||||
if (WRITE_BYTES(&p, end, timeout)) goto out_err;
|
if (WRITE_BYTES(&p, end, timeout)) goto out_err;
|
||||||
@@ -231,7 +231,7 @@ populate_port(struct sockaddr *sa, const socklen_t salen,
|
|
||||||
switch (sa->sa_family) {
|
|
||||||
case AF_INET:
|
|
||||||
if (s4->sin_port != 0) {
|
|
||||||
- printerr(2, "DEBUG: port already set to %d\n",
|
|
||||||
+ printerr(4, "DEBUG: port already set to %d\n",
|
|
||||||
ntohs(s4->sin_port));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
@@ -239,7 +239,7 @@ populate_port(struct sockaddr *sa, const socklen_t salen,
|
|
||||||
#ifdef IPV6_SUPPORTED
|
|
||||||
case AF_INET6:
|
|
||||||
if (s6->sin6_port != 0) {
|
|
||||||
- printerr(2, "DEBUG: port already set to %d\n",
|
|
||||||
+ printerr(4, "DEBUG: port already set to %d\n",
|
|
||||||
ntohs(s6->sin6_port));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
@@ -348,16 +348,9 @@ create_auth_rpc_client(struct clnt_info *clp,
|
@@ -348,16 +348,9 @@ create_auth_rpc_client(struct clnt_info *clp,
|
||||||
printerr(2, "creating %s client for server %s\n", clp->protocol,
|
printerr(2, "creating %s client for server %s\n", clp->protocol,
|
||||||
clp->servername);
|
clp->servername);
|
||||||
@ -591,15 +661,6 @@ index 11168b2..1ef68d8 100644
|
|||||||
|
|
||||||
switch (addr->sa_family) {
|
switch (addr->sa_family) {
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
@@ -400,7 +393,7 @@ create_auth_rpc_client(struct clnt_info *clp,
|
|
||||||
auth = authgss_create_default(rpc_clnt, tgtname, &sec);
|
|
||||||
if (!auth) {
|
|
||||||
/* Our caller should print appropriate message */
|
|
||||||
- printerr(2, "WARNING: Failed to create krb5 context for "
|
|
||||||
+ printerr(1, "WARNING: Failed to create krb5 context for "
|
|
||||||
"user with uid %d for server %s\n",
|
|
||||||
uid, tgtname);
|
|
||||||
goto out_fail;
|
|
||||||
@@ -491,7 +484,7 @@ krb5_not_machine_creds(struct clnt_info *clp, uid_t uid, char *tgtname,
|
@@ -491,7 +484,7 @@ krb5_not_machine_creds(struct clnt_info *clp, uid_t uid, char *tgtname,
|
||||||
char **dname;
|
char **dname;
|
||||||
int err, resp = -1;
|
int err, resp = -1;
|
||||||
@ -618,7 +679,34 @@ index 11168b2..1ef68d8 100644
|
|||||||
uid, tgtname);
|
uid, tgtname);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@@ -608,8 +601,6 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
|
@@ -564,7 +557,7 @@ krb5_use_machine_creds(struct clnt_info *clp, uid_t uid, char *tgtname,
|
||||||
|
success++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
- printerr(2, "WARNING: Failed to create machine krb5"
|
||||||
|
+ printerr(2, "WARNING: Failed to create machine krb5 "
|
||||||
|
"context with cred cache %s for server %s\n",
|
||||||
|
*ccname, clp->servername);
|
||||||
|
}
|
||||||
|
@@ -572,12 +565,13 @@ krb5_use_machine_creds(struct clnt_info *clp, uid_t uid, char *tgtname,
|
||||||
|
if (!success) {
|
||||||
|
if(nocache == 0) {
|
||||||
|
nocache++;
|
||||||
|
- printerr(2, "WARNING: Machine cache prematurely" "expired or corrupted trying to"
|
||||||
|
- "recreate cache for server %s\n",
|
||||||
|
+ printerr(2, "WARNING: Machine cache prematurely "
|
||||||
|
+ "expired or corrupted trying to "
|
||||||
|
+ "recreate cache for server %s\n",
|
||||||
|
clp->servername);
|
||||||
|
} else {
|
||||||
|
- printerr(1, "WARNING: Failed to create machine"
|
||||||
|
- "krb5 context with any credentials"
|
||||||
|
+ printerr(1, "ERROR: Failed to create machine "
|
||||||
|
+ "krb5 context with any credentials "
|
||||||
|
"cache for server %s\n",
|
||||||
|
clp->servername);
|
||||||
|
goto out;
|
||||||
|
@@ -608,8 +602,6 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
|
||||||
gss_OID mech;
|
gss_OID mech;
|
||||||
gss_buffer_desc acceptor = {0};
|
gss_buffer_desc acceptor = {0};
|
||||||
|
|
||||||
@ -627,7 +715,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
token.length = 0;
|
token.length = 0;
|
||||||
token.value = NULL;
|
token.value = NULL;
|
||||||
memset(&pd, 0, sizeof(struct authgss_private_data));
|
memset(&pd, 0, sizeof(struct authgss_private_data));
|
||||||
@@ -635,8 +626,6 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
|
@@ -635,8 +627,6 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
|
||||||
* used for this case is not important.
|
* used for this case is not important.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -636,7 +724,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
if (uid != 0 || (uid == 0 && root_uses_machine_creds == 0 &&
|
if (uid != 0 || (uid == 0 && root_uses_machine_creds == 0 &&
|
||||||
service == NULL)) {
|
service == NULL)) {
|
||||||
|
|
||||||
@@ -650,7 +639,7 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
|
@@ -650,7 +640,7 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
|
||||||
/* Child: fall through to rest of function */
|
/* Child: fall through to rest of function */
|
||||||
childpid = getpid();
|
childpid = getpid();
|
||||||
unsetenv("KRB5CCNAME");
|
unsetenv("KRB5CCNAME");
|
||||||
@ -645,7 +733,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
break;
|
break;
|
||||||
case -1:
|
case -1:
|
||||||
/* fork() failed! */
|
/* fork() failed! */
|
||||||
@@ -683,9 +672,7 @@ no_fork:
|
@@ -683,9 +673,7 @@ no_fork:
|
||||||
if (auth == NULL)
|
if (auth == NULL)
|
||||||
goto out_return_error;
|
goto out_return_error;
|
||||||
} else {
|
} else {
|
||||||
@ -656,7 +744,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
goto out_return_error;
|
goto out_return_error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -716,7 +703,7 @@ no_fork:
|
@@ -716,7 +704,7 @@ no_fork:
|
||||||
* try to use it after this point.
|
* try to use it after this point.
|
||||||
*/
|
*/
|
||||||
if (serialize_context_for_kernel(&pd.pd_ctx, &token, &krb5oid, NULL)) {
|
if (serialize_context_for_kernel(&pd.pd_ctx, &token, &krb5oid, NULL)) {
|
||||||
@ -665,7 +753,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
"user with uid %d for server %s\n",
|
"user with uid %d for server %s\n",
|
||||||
uid, clp->servername);
|
uid, clp->servername);
|
||||||
goto out_return_error;
|
goto out_return_error;
|
||||||
@@ -759,6 +746,8 @@ handle_krb5_upcall(struct clnt_info *clp)
|
@@ -759,6 +747,8 @@ handle_krb5_upcall(struct clnt_info *clp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -674,7 +762,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
process_krb5_upcall(clp, uid, clp->krb5_fd, NULL, NULL);
|
process_krb5_upcall(clp, uid, clp->krb5_fd, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -775,8 +764,6 @@ handle_gssd_upcall(struct clnt_info *clp)
|
@@ -775,8 +765,6 @@ handle_gssd_upcall(struct clnt_info *clp)
|
||||||
char *service = NULL;
|
char *service = NULL;
|
||||||
char *enctypes = NULL;
|
char *enctypes = NULL;
|
||||||
|
|
||||||
@ -683,7 +771,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
lbuflen = read(clp->gssd_fd, lbuf, sizeof(lbuf));
|
lbuflen = read(clp->gssd_fd, lbuf, sizeof(lbuf));
|
||||||
if (lbuflen <= 0 || lbuf[lbuflen-1] != '\n') {
|
if (lbuflen <= 0 || lbuf[lbuflen-1] != '\n') {
|
||||||
printerr(0, "WARNING: handle_gssd_upcall: "
|
printerr(0, "WARNING: handle_gssd_upcall: "
|
||||||
@@ -785,7 +772,7 @@ handle_gssd_upcall(struct clnt_info *clp)
|
@@ -785,7 +773,7 @@ handle_gssd_upcall(struct clnt_info *clp)
|
||||||
}
|
}
|
||||||
lbuf[lbuflen-1] = 0;
|
lbuf[lbuflen-1] = 0;
|
||||||
|
|
||||||
@ -693,7 +781,7 @@ index 11168b2..1ef68d8 100644
|
|||||||
for (p = strtok(lbuf, " "); p; p = strtok(NULL, " ")) {
|
for (p = strtok(lbuf, " "); p; p = strtok(NULL, " ")) {
|
||||||
if (!strncmp(p, "mech=", strlen("mech=")))
|
if (!strncmp(p, "mech=", strlen("mech=")))
|
||||||
diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
|
diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c
|
||||||
index ecf17a2..8ef8184 100644
|
index ecf17a2..8dc64fe 100644
|
||||||
--- a/utils/gssd/krb5_util.c
|
--- a/utils/gssd/krb5_util.c
|
||||||
+++ b/utils/gssd/krb5_util.c
|
+++ b/utils/gssd/krb5_util.c
|
||||||
@@ -356,7 +356,7 @@ gssd_get_single_krb5_cred(krb5_context context,
|
@@ -356,7 +356,7 @@ gssd_get_single_krb5_cred(krb5_context context,
|
||||||
@ -742,7 +830,12 @@ index ecf17a2..8ef8184 100644
|
|||||||
ccname);
|
ccname);
|
||||||
setenv("KRB5CCNAME", ccname, 1);
|
setenv("KRB5CCNAME", ccname, 1);
|
||||||
#endif
|
#endif
|
||||||
@@ -801,7 +800,7 @@ find_keytab_entry(krb5_context context, krb5_keytab kt, const char *tgtname,
|
@@ -797,11 +796,11 @@ find_keytab_entry(krb5_context context, krb5_keytab kt, const char *tgtname,
|
||||||
|
char **realmnames = NULL;
|
||||||
|
char myhostname[NI_MAXHOST], targethostname[NI_MAXHOST];
|
||||||
|
char myhostad[NI_MAXHOST+1];
|
||||||
|
- int i, j, retval;
|
||||||
|
+ int i, j, k, retval;
|
||||||
char *default_realm = NULL;
|
char *default_realm = NULL;
|
||||||
char *realm;
|
char *realm;
|
||||||
char *k5err = NULL;
|
char *k5err = NULL;
|
||||||
@ -770,8 +863,8 @@ index ecf17a2..8ef8184 100644
|
|||||||
+ * moving on to the svcname
|
+ * moving on to the svcname
|
||||||
+ */
|
+ */
|
||||||
+ if (strcmp(svcnames[j],"$") == 0 && !tried_upper) {
|
+ if (strcmp(svcnames[j],"$") == 0 && !tried_upper) {
|
||||||
+ for (i = 0; myhostad[i] != '$'; ++i) {
|
+ for (k = 0; myhostad[k] != '$'; ++k) {
|
||||||
+ myhostad[i] = toupper(myhostad[i]);
|
+ myhostad[k] = toupper(myhostad[k]);
|
||||||
+ }
|
+ }
|
||||||
+ j--;
|
+ j--;
|
||||||
+ tried_upper = 1;
|
+ tried_upper = 1;
|
||||||
@ -835,7 +928,7 @@ index f1b4347..0fe7c6d 100644
|
|||||||
if (rpc_verbosity > 0)
|
if (rpc_verbosity > 0)
|
||||||
printerr(0, "Warning: rpcsec_gss library does not "
|
printerr(0, "Warning: rpcsec_gss library does not "
|
||||||
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
|
diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
|
||||||
index 689608a..910b02e 100644
|
index 689608a..f4e083a 100644
|
||||||
--- a/utils/idmapd/idmapd.c
|
--- a/utils/idmapd/idmapd.c
|
||||||
+++ b/utils/idmapd/idmapd.c
|
+++ b/utils/idmapd/idmapd.c
|
||||||
@@ -199,6 +199,12 @@ flush_nfsd_idmap_cache(void)
|
@@ -199,6 +199,12 @@ flush_nfsd_idmap_cache(void)
|
||||||
@ -844,14 +937,22 @@ index 689608a..910b02e 100644
|
|||||||
|
|
||||||
+void usage(char *progname)
|
+void usage(char *progname)
|
||||||
+{
|
+{
|
||||||
+ fprintf(stderr, "Usage: %s [-fvCS] [-p path] [-c path]\n",
|
+ fprintf(stderr, "Usage: %s [-hfvCS] [-p path] [-c path]\n",
|
||||||
+ basename(progname));
|
+ basename(progname));
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@@ -232,9 +238,11 @@ main(int argc, char **argv)
|
@@ -225,16 +231,18 @@ main(int argc, char **argv)
|
||||||
|
progname = argv[0];
|
||||||
|
xlog_open(progname);
|
||||||
|
|
||||||
|
-#define GETOPTSTR "vfd:p:U:G:c:CS"
|
||||||
|
+#define GETOPTSTR "hvfd:p:U:G:c:CS"
|
||||||
|
opterr=0; /* Turn off error messages */
|
||||||
|
while ((opt = getopt(argc, argv, GETOPTSTR)) != -1) {
|
||||||
|
if (opt == 'c')
|
||||||
conf_path = optarg;
|
conf_path = optarg;
|
||||||
if (opt == '?') {
|
if (opt == '?') {
|
||||||
if (strchr(GETOPTSTR, optopt))
|
if (strchr(GETOPTSTR, optopt))
|
||||||
@ -865,15 +966,26 @@ index 689608a..910b02e 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
optind = 1;
|
optind = 1;
|
||||||
|
@@ -276,6 +284,9 @@ main(int argc, char **argv)
|
||||||
|
case 'S':
|
||||||
|
clientstart = 0;
|
||||||
|
break;
|
||||||
|
+ case 'h':
|
||||||
|
+ usage(progname);
|
||||||
|
+ exit(0);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
diff --git a/utils/idmapd/idmapd.man b/utils/idmapd/idmapd.man
|
diff --git a/utils/idmapd/idmapd.man b/utils/idmapd/idmapd.man
|
||||||
index c809f78..d45658e 100644
|
index c809f78..b9200c7 100644
|
||||||
--- a/utils/idmapd/idmapd.man
|
--- a/utils/idmapd/idmapd.man
|
||||||
+++ b/utils/idmapd/idmapd.man
|
+++ b/utils/idmapd/idmapd.man
|
||||||
@@ -10,8 +10,10 @@
|
@@ -10,8 +10,11 @@
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.\" For a program: program [-abc] file ...
|
.\" For a program: program [-abc] file ...
|
||||||
.Nm rpc.idmapd
|
.Nm rpc.idmapd
|
||||||
-.Op Fl v
|
-.Op Fl v
|
||||||
|
+.Op Fl h
|
||||||
.Op Fl f
|
.Op Fl f
|
||||||
+.Op Fl v
|
+.Op Fl v
|
||||||
+.Op Fl C
|
+.Op Fl C
|
||||||
@ -881,6 +993,15 @@ index c809f78..d45658e 100644
|
|||||||
.Op Fl p Ar path
|
.Op Fl p Ar path
|
||||||
.Op Fl c Ar path
|
.Op Fl c Ar path
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
|
@@ -32,6 +35,8 @@ program.
|
||||||
|
.Pp
|
||||||
|
The options are as follows:
|
||||||
|
.Bl -tag -width Ds_imagedir
|
||||||
|
+.It Fl h
|
||||||
|
+Display usage message.
|
||||||
|
.It Fl v
|
||||||
|
Increases the verbosity level (can be specified multiple times).
|
||||||
|
.It Fl f
|
||||||
diff --git a/utils/mount/network.c b/utils/mount/network.c
|
diff --git a/utils/mount/network.c b/utils/mount/network.c
|
||||||
index b5ed850..7240ca7 100644
|
index b5ed850..7240ca7 100644
|
||||||
--- a/utils/mount/network.c
|
--- a/utils/mount/network.c
|
||||||
@ -953,7 +1074,7 @@ index d64b83d..0d3bcb9 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
|
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
|
||||||
index c8f5a6d..86829a9 100644
|
index c8f5a6d..320dde2 100644
|
||||||
--- a/utils/mount/stropts.c
|
--- a/utils/mount/stropts.c
|
||||||
+++ b/utils/mount/stropts.c
|
+++ b/utils/mount/stropts.c
|
||||||
@@ -841,6 +841,9 @@ check_result:
|
@@ -841,6 +841,9 @@ check_result:
|
||||||
@ -966,6 +1087,22 @@ index c8f5a6d..86829a9 100644
|
|||||||
if (mi->version.v_mode == V_GENERAL &&
|
if (mi->version.v_mode == V_GENERAL &&
|
||||||
mi->version.minor == 0)
|
mi->version.minor == 0)
|
||||||
return result;
|
return result;
|
||||||
|
@@ -957,6 +960,15 @@ static int nfsmount_fg(struct nfsmount_info *mi)
|
||||||
|
if (nfs_try_mount(mi))
|
||||||
|
return EX_SUCCESS;
|
||||||
|
|
||||||
|
+ if (errno == EBUSY)
|
||||||
|
+ /* The only cause of EBUSY is if exactly the desired
|
||||||
|
+ * filesystem is already mounted. That can arguably
|
||||||
|
+ * be seen as success. "mount -a" tries to optimise
|
||||||
|
+ * out this case but sometimes fails. Help it out
|
||||||
|
+ * by pretending everything is rosy
|
||||||
|
+ */
|
||||||
|
+ return EX_SUCCESS;
|
||||||
|
+
|
||||||
|
if (nfs_is_permanent_error(errno))
|
||||||
|
break;
|
||||||
|
|
||||||
diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c
|
diff --git a/utils/mountd/auth.c b/utils/mountd/auth.c
|
||||||
index 330cab5..894a7a5 100644
|
index 330cab5..894a7a5 100644
|
||||||
--- a/utils/mountd/auth.c
|
--- a/utils/mountd/auth.c
|
||||||
@ -1004,8 +1141,52 @@ index 330cab5..894a7a5 100644
|
|||||||
last_fd = fd;
|
last_fd = fd;
|
||||||
last_inode = stb.st_ino;
|
last_inode = stb.st_ino;
|
||||||
}
|
}
|
||||||
|
diff --git a/utils/mountd/mountd.c b/utils/mountd/mountd.c
|
||||||
|
index 9fe0f40..b584afc 100644
|
||||||
|
--- a/utils/mountd/mountd.c
|
||||||
|
+++ b/utils/mountd/mountd.c
|
||||||
|
@@ -794,9 +794,10 @@ main(int argc, char **argv)
|
||||||
|
}
|
||||||
|
|
||||||
|
/* No more arguments allowed. */
|
||||||
|
- if (optind != argc || !version_any())
|
||||||
|
+ if (optind != argc || !version_any()) {
|
||||||
|
+ fprintf(stderr, "%s: No protocol versions specified!\n", progname);
|
||||||
|
usage(progname, 1);
|
||||||
|
-
|
||||||
|
+ }
|
||||||
|
if (chdir(state_dir)) {
|
||||||
|
fprintf(stderr, "%s: chdir(%s) failed: %s\n",
|
||||||
|
progname, state_dir, strerror(errno));
|
||||||
|
@@ -910,7 +911,8 @@ usage(const char *prog, int n)
|
||||||
|
" [-o num|--descriptors num] [-f exports-file|--exports-file=file]\n"
|
||||||
|
" [-p|--port port] [-V version|--nfs-version version]\n"
|
||||||
|
" [-N version|--no-nfs-version version] [-n|--no-tcp]\n"
|
||||||
|
-" [-H ha-callout-prog] [-s|--state-directory-path path]\n"
|
||||||
|
-" [-g|--manage-gids] [-t num|--num-threads=num] [-u|--no-udp]\n", prog);
|
||||||
|
+" [-H ha-callout prog] [-r | --reverse-lookup]\n"
|
||||||
|
+" [-s|--state-directory-path path] [-g|--manage-gids]\n"
|
||||||
|
+" [-t num|--num-threads=num] [-u|--no-udp]\n", prog);
|
||||||
|
exit(n);
|
||||||
|
}
|
||||||
|
diff --git a/utils/mountd/mountd.man b/utils/mountd/mountd.man
|
||||||
|
index 7c5bfbe..66e3bba 100644
|
||||||
|
--- a/utils/mountd/mountd.man
|
||||||
|
+++ b/utils/mountd/mountd.man
|
||||||
|
@@ -115,10 +115,7 @@ must be invoked with the option
|
||||||
|
.B \-n " or " \-\-no-tcp
|
||||||
|
Don't advertise TCP for mount.
|
||||||
|
.TP
|
||||||
|
-.B \-P
|
||||||
|
-Ignored (compatibility with unfsd??).
|
||||||
|
-.TP
|
||||||
|
-.B \-p num " or " \-\-port num
|
||||||
|
+.B \-p num " or " \-P num " or " \-\-port num
|
||||||
|
Specifies the port number used for RPC listener sockets.
|
||||||
|
If this option is not specified,
|
||||||
|
.B rpc.mountd
|
||||||
diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
|
diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
|
||||||
index a2b11d8..e8efd06 100644
|
index a2b11d8..dcb430a 100644
|
||||||
--- a/utils/nfsd/nfssvc.c
|
--- a/utils/nfsd/nfssvc.c
|
||||||
+++ b/utils/nfsd/nfssvc.c
|
+++ b/utils/nfsd/nfssvc.c
|
||||||
@@ -168,22 +168,22 @@ nfssvc_setfds(const struct addrinfo *hints, const char *node, const char *port)
|
@@ -168,22 +168,22 @@ nfssvc_setfds(const struct addrinfo *hints, const char *node, const char *port)
|
||||||
@ -1040,8 +1221,17 @@ index a2b11d8..e8efd06 100644
|
|||||||
#ifdef IPV6_SUPPORTED
|
#ifdef IPV6_SUPPORTED
|
||||||
if (addr->ai_family == AF_INET6 &&
|
if (addr->ai_family == AF_INET6 &&
|
||||||
setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on))) {
|
setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on))) {
|
||||||
|
@@ -282,7 +282,7 @@ nfssvc_set_rdmaport(const char *port)
|
||||||
|
int fd;
|
||||||
|
|
||||||
|
if (sv)
|
||||||
|
- nport = sv->s_port;
|
||||||
|
+ nport = ntohs(sv->s_port);
|
||||||
|
else {
|
||||||
|
char *ep;
|
||||||
|
nport = strtol(port, &ep, 10);
|
||||||
diff --git a/utils/nfsidmap/nfsidmap.c b/utils/nfsidmap/nfsidmap.c
|
diff --git a/utils/nfsidmap/nfsidmap.c b/utils/nfsidmap/nfsidmap.c
|
||||||
index 507193b..15b4a51 100644
|
index 507193b..2abefe9 100644
|
||||||
--- a/utils/nfsidmap/nfsidmap.c
|
--- a/utils/nfsidmap/nfsidmap.c
|
||||||
+++ b/utils/nfsidmap/nfsidmap.c
|
+++ b/utils/nfsidmap/nfsidmap.c
|
||||||
@@ -80,8 +80,9 @@ static int keyring_clear(const char *keyring)
|
@@ -80,8 +80,9 @@ static int keyring_clear(const char *keyring)
|
||||||
@ -1080,6 +1270,18 @@ index 507193b..15b4a51 100644
|
|||||||
if ((rc = nfs4_init_name_mapping(PATH_IDMAPDCONF))) {
|
if ((rc = nfs4_init_name_mapping(PATH_IDMAPDCONF))) {
|
||||||
xlog_errno(rc, "Unable to create name to user id mappings.");
|
xlog_errno(rc, "Unable to create name to user id mappings.");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
@@ -423,9 +428,9 @@ int main(int argc, char **argv)
|
||||||
|
return keyring_clear(DEFAULT_KEYRING);
|
||||||
|
}
|
||||||
|
|
||||||
|
- xlog_stderr(0);
|
||||||
|
+ xlog_stderr(verbose);
|
||||||
|
if ((argc - optind) != 2) {
|
||||||
|
- xlog_err("Bad arg count. Check /etc/request-key.conf");
|
||||||
|
+ xlog_warn("Bad arg count. Check /etc/request-key.conf");
|
||||||
|
xlog_warn(usage, progname);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
diff --git a/utils/nfsstat/nfsstat.c b/utils/nfsstat/nfsstat.c
|
diff --git a/utils/nfsstat/nfsstat.c b/utils/nfsstat/nfsstat.c
|
||||||
index 9f481db..8376347 100644
|
index 9f481db..8376347 100644
|
||||||
--- a/utils/nfsstat/nfsstat.c
|
--- a/utils/nfsstat/nfsstat.c
|
@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser
|
|||||||
Name: nfs-utils
|
Name: nfs-utils
|
||||||
URL: http://sourceforge.net/projects/nfs
|
URL: http://sourceforge.net/projects/nfs
|
||||||
Version: 1.3.3
|
Version: 1.3.3
|
||||||
Release: 6.rc3%{?dist}.1
|
Release: 7.rc4%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
|
|
||||||
# group all 32bit related archs
|
# group all 32bit related archs
|
||||||
@ -15,7 +15,7 @@ Source2: nfs.sysconfig
|
|||||||
Source3: nfs-utils_env.sh
|
Source3: nfs-utils_env.sh
|
||||||
Source4: lockd.conf
|
Source4: lockd.conf
|
||||||
|
|
||||||
Patch001: nfs-utils-1.3.4-rc3.patch
|
Patch001: nfs-utils-1.3.4-rc4.patch
|
||||||
|
|
||||||
Patch100: nfs-utils-1.2.1-statdpath-man.patch
|
Patch100: nfs-utils-1.2.1-statdpath-man.patch
|
||||||
Patch101: nfs-utils-1.2.1-exp-subtree-warn-off.patch
|
Patch101: nfs-utils-1.2.1-exp-subtree-warn-off.patch
|
||||||
@ -291,6 +291,9 @@ fi
|
|||||||
/sbin/umount.nfs4
|
/sbin/umount.nfs4
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 16 2016 Steve Dickson <steved@redhat.com> 1.3.3-7.rc4
|
||||||
|
- Updated to the latest RC release: nfs-utils-1-3-4-rc4 (bz 1316701)
|
||||||
|
|
||||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.3.3-6.rc3.1
|
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.3.3-6.rc3.1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
#
|
#
|
||||||
# Note: For new values to take effect the nfs-config service
|
|
||||||
# has to be restarted with the following command:
|
|
||||||
# systemctl restart nfs-config
|
|
||||||
#
|
|
||||||
# Optional arguments passed to in-kernel lockd
|
# Optional arguments passed to in-kernel lockd
|
||||||
#LOCKDARG=
|
#LOCKDARG=
|
||||||
# TCP port rpc.lockd should listen on.
|
# TCP port rpc.lockd should listen on.
|
||||||
|
Loading…
Reference in New Issue
Block a user