summaryrefslogtreecommitdiffstats
path: root/utils
Commit message (Collapse)AuthorAgeFilesLines
...
* nfsumount: Squelch compiler warningChuck Lever2011-09-201-1/+2
| | | | | | | | | | | nfsumount.c: In function nfs_umount_is_vers4: nfsumount.c:164: warning: conversion to int from size_t may alter its value nfsumount.c:173: warning: conversion to ?size_t? from int may change the sign of the result Introduced by commit 3564ebbf. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: Preserve any explicit port=2049 optionBen Hutchings2011-09-141-2/+2
| | | | | | | | If NFS port (2049) is supplied explicitly, don't ignore this setting by requesting it to portmapper again. Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: do not warn if /etc/exports.d/ does not existMike Frysinger2011-09-011-2/+5
| | | | | | | | | It isn't uncommon for /etc/exports.d/ to not exist, and imo, it's not that big of a deal as often times, a simple /etc/exports is sufficient. So silently skip the case where the dir is missing. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: drop extra newline in xlogMike Frysinger2011-09-011-4/+4
| | | | | | | | Since xlog() itself appends a newline, we don't want to add our own otherwise we get extra in the output. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* Update nfs(5) manpage - timeo for NFS/TCPMax Matveev2011-08-301-6/+10
| | | | | | | | | NFS/TCP does linear backoff then retransmiting - the manpage was mistakenly asserting the "no backoff" theory. Signed-off-by: Max Matveev <makc@redhat.com> Signed-off-by: Jim Rees <rees@umich.edu> Signed-off-by: Steve Dickson <steved@redhat.com>
* sm-notify: sm-notify doesn't handle localhost properlyChuck Lever2011-08-291-25/+102
| | | | | | | | | | | | | | It looks like the existing algorithm for verifying the passed-in bind address is as broken as statd_matchhostname() used to be: for IP addresses, AI_CANONNAME is useless. We need to have getnameinfo(3) or equivalent in there. Clean up: extract the logic that verifies the command line bind address into its own function, and make it handle canonical name lookup correctly. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exportfs: matchhostname() doesn't handle localhost properlyChuck Lever2011-08-291-2/+32
| | | | | | | | | | | | Same change as statd_matchhostname() is necessary for the logic in exportfs. Recall that these are "separate but nearly equal" because the exportfs version requires extra expensive string checking that would be onerous for statd. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* statd: statd_matchhostname() doesn't handle localhost properlyChuck Lever2011-08-291-8/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The job of statd_matchhostname() is to work hard at matching two hostnames or presentation IP addresses that may refer to the same host. statd_matchhostname() turns the hostname of the local system into a list of addresses containing only the loopback address. The actual DNS registered address of the system does not appear in that list. Presentation IP addresses, on the other hand, are soundly ignored by the AI_CANONNAME option of getaddrinfo(3). The ai_canonname string that is returned is just the same presentation IP address. And the resulting list of addresses contains just that IP address. So if the DNS registered IP address of the local host is passed in as one argument, and the local hostname is passed as the other argument, statd_matchhostname() whiffs and believes there is no match. To fix this, the logic needs to be smarter about deriving a hostname from an IP address. This appears to cause no end of trouble: monitor records pile up in /var/lib/nfs/sm and sm.bak, notifications are missed, and so on. This has likely been around since commit cbd3a131 "statd: Introduce statd version of matchhostname()" (Jan 14, 2010). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* sm-notify: Disable syslog messages when debugging is enabledChuck Lever2011-08-291-2/+4
| | | | | | | | | statd's "-F" flag disables syslog output, and specifies sm-notify's "-d" option when it runs it. sm-notify's "-d" option should therefore also disable syslog output. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* statd: Report count of loaded hosts correctlyChuck Lever2011-08-291-1/+1
| | | | | | | | Fix a debugging message to report correctly the count of hosts loaded when statd starts up. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* pdate addres for Free Software FoundationNeilBrown2011-08-2918-58/+33
| | | | | | | | | | | | License texts contain multiple address for FSF, some wrong. So update them and replace COPYING file with http://www.gnu.org/licenses/gpl-2.0.txt which has a few changes to preamble and commentary. Also remove extra COPYING file from utils/statd/ Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* umount.nfs: fix nfs4 checkIan Kent2011-08-293-44/+84
| | | | | | | | | | | | | | | | From: Ian Kent <ikent@redhat.com> nfs_umount_is_vers4() doesn't take acount of the escaping of characters seen in /proc/mounts and /etc/mtab as the functions in fstab.c do. This leads to an inability to umount a mount containing any of these escaped characters (like spaces). This patch changes nfs_umount_is_vers4() to use functions in fstab.c and adds a function to fstab.c to read /proc/mounts specifically, as it was used for the check in nfs_umount_is_vers4() previously. Signed-off-by: Ian Kent <ikent@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* start-statd: Use bash as -p is no POSIXLuk Claes2011-08-291-2/+2
| | | | | | | | sh -p is not guaranteed to be provided by POSIX shells. dash for instance does not provide this, so use bash explicitly. Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs.man: Fix macro use for fstab examplesLuk Claes2011-08-291-19/+18
| | | | | | | | | | | | | | | | The groff macros for filling (word-wrapping) and tabulation control are lower-case, but are written in upper-case here and so have been ignored. Change the .NF and .FI lines to lower-case. Change the .TA lines to lower-case and fix the tab stops to work both on a terminal and in Postscript output. Delete the .SP line where .sp would be redundant. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports.man: Fix comment syntaxLuk Claes2011-08-291-76/+76
| | | | | | | | | | Using three single-quotes for a comment sort of works because it results in invoking a nonexistent macro, but it results in a huge number of warnings when trying to validate the man page. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* statd.man: man complains about lines starting with 'Luk Claes2011-08-291-2/+1
| | | | | | | | Fix syntax for line starting with 'visible' according to a patch from Simon Paillard <spaillard@debian.org> in Debian bug #624261. Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs.man: man complains when line starts with quoteLuk Claes2011-08-291-2/+2
| | | | | | | | Fix "macro `local_lock=flock'.' not defined" by avoiding to put a quote at the beginning of the line. Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports.man: "\* d lets man complainLuk Claes2011-08-291-1/+1
| | | | | | | | man complains with "macro `d' not defined", so remove these seemingly unneeded characters Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: submarvellous messages from mount.nfsMax Matveev2011-08-161-0/+2
| | | | | | | | | | | | | | | | Consider a setup where mountd on the server is controlled via tcp_wrappers (usual RHEL setup) and will not process calls from a particular client because of something in /etc/hosts.deny. When such client attempts to do v3 mount, the error message printed by mount.nfs is misleading. This patch changes that error message from: mount.nfs: Argument list too long to mount.nfs: access denied by server while mounting server:/export Signed-off-by: Steve Dickson <steved@redhat.com>
* mount: fix for libmount from util-linux >= 2.20Karel Zak2011-08-031-3/+12
| | | | | | | | The function mnt_fs_set_fs_options() has been removed from the final version of the libmount API. Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.statd: Bind downcall socket to loopback addressChuck Lever2011-08-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In the past, rpc.statd posted SM_NOTIFY requests using the same socket it used for sending downcalls to the kernel. To receive replies from remote hosts, the socket was bound to INADDR_ANY. With commit f113db52 "Remove notify functionality from statd in favour of sm-notify" (Mar 20, 2007), the downcall socket is no longer used for sending requests to remote hosts. However, the downcall socket is still bound to INADDR_ANY. Thus a remote host can inject data on this socket since it is an unconnected UDP socket listening for RPC replies. Thanks to f113db52, the port number of this socket is no longer controlled by a command line option, making it difficult to firewall. We have demonstrated that data injection on this socket can result in a DoS by causing rpc.statd to consume CPU and log bandwidth, but so far we have not found a breach. To prevent unwanted data injection, bind this socket to the loopback address. BugLink: https://bugzilla.linux-nfs.org/show_bug.cgi?id=177 Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: Fixed strcmp usage in in insert groups.Matthew Treinish2011-08-031-1/+1
| | | | | | | | | Fixed the usage of strcmp in the duplicate check in insert groups. Fixes an issue with showmount and other commands that required the group information. Signed-off-by: Matthew Treinish <treinish@linux.vnet.ibm.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.mountd: let mountd consult /etc/services for portMi Jinlong2011-08-032-2/+8
| | | | | | | | | | | | At RHEL, if user set port for mountd at /etc/services as "mount 12345/tcp", mountd should be bind to 12345, but the latest nfs-utils, mountd get a rand port, not 12345. This patch make sure mountd be bind to the port which was set at /etc/service. Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Fix typo in debug stringBenjamin Coddington2011-07-211-1/+1
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* svcgssd: use correct defaults in call to gss_set_allowable_enctypesKevin Coffman2011-07-211-7/+30
| | | | | | | | | | | | | | | | | | | For the window of kernels between 2.6.35 (when the support for newer encryption was added) and 2.6.39 (when the ability to read the supported enctypes from the kernel was added), use a default of all enctypes when the kernel supported enctypes file cannot be read. For kernels before 2.6.35, continue to use a default of only DES enctypes. Note that the version of Kerberos must also support the use of gss_set_allowable_enctypes for service-side negotiations. See also: http://bugzilla.redhat.com/show_bug.cgi?id=719776 Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsidmap: Manpage correctionsMichael Guntsche2011-07-131-4/+4
| | | | | | | | | | I recently upgraded to 1.2.4 to use the new nfsidmap feature. While following the manpage and the kernel documentation I noticed a difference. Kernel docs mention key TYPE id_resolver while the manpage states nfs_idmap. The following patch changes the manpage to the proper type. Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: Do not segfault because of kernel versionLuk Claes2011-07-121-7/+9
| | | | | | | | | | | | | | | | | mount.nfs segfaults if kernel version number does not contain at least 3 components delimited with a dot. Avoid this by matching up to three unsigned integers inialised to zero, separated by dots. A version that does not start with an integer is probably a future version where the versioning evolved to another scheme. Return UINT_MAX which is guaranteed to be higher than existing versions. This would also make it possible to easily identify versions that do not start with an integer. Signed-off-by: Luk Claes <luk@debian.org> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: Fix for the bug in v1.2.4 that breaks mount.nfsPrem Karat2011-06-301-10/+1
| | | | | | | commit 30ebf047 failed to include these changes that breaks mount.nfs. mount.nfs will continue to work fine with these changes Signed-off-by: Steve Dickson <steved@redhat.com>
* Do not compile unnecessary files when the libmount code is enableNeilBrown2011-06-291-4/+4
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: Don't hard code source and destinationPrem Karat2011-06-291-4/+9
| | | | | | | | | | | | | | | | Currently souce and destination parameters should be passed as first and second paramter while using mount.nfs. This patch allows them to be passed anywhere while mounting. Current functionality is mount.nfs source destn -o <options> This patch will allow to do this mount.nfs -o <options> source destn or mount.nfs -o <options> source -o <options> destn Signed-off-by: Prem Karat <prem.karat@linux.vnet.ibm.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount: improve signal management when locking mtabNeilBrown2011-06-291-5/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As mount.nfs can run setuid it must be careful about how the user can interact with in. In particular it needs to ensure it does not respond badly to any signals that the user might be able to generate. This is particularly an issue while updating /etc/mtab (when that is not linked to /proc/mounts). If the user can generate a signal which kills mount.nfs while /etc/mtab is locked, then it will leave the file locked, and could possibly corrupt mtab (particularly if 'ulimit 1' was previously issued). Currently lock_mtab does set some handlers for signals, but not enough. It arranges for every signal up to (but not including) SIGCHLD to cause mount.nfs to unlock mdadm promptly exit ... even if the default behaviour would be to ignore the signal. SIGALRM is handled specially, and signals after SIGCHLD are left with their default behaviour. This includes for example SIGXFSZ which can be generated by the user running "ulimit 1". So: change this so that some signals are left unchanged, SIGALRM is handled as required, and all signals that the user can generate are explicitly ignored. The remainder still cause mount.nfs to print a message, unlock mtab, and exit. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: move fsidtype-specific code to helpersJ. Bruce Fields2011-06-271-111/+129
| | | | | | | Now we can move these big switch statements into helper functions. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: gather fsid information into one structJ. Bruce Fields2011-06-271-34/+45
| | | | | | | | | | | | A large part of nfsd_fh() is concerned with extracting fsid-type-specific information from the fsid, then matching that information with information from the export list and the filesystem. Moving all that information into one struct will allow some further simplifications. Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: prefer explicit subexports over crossmnt parentsJ. Bruce Fields2011-06-271-3/+15
| | | | | | | | | | | | | | If a parent is exported with crossmnt, and if a child is also explicitly exported, then both exports could potentially produce matches in this loop; that isn't a bug. Instead of warning and ignoring the second match we find, we should instead prefer whichever export is deeper in the tree, so that children's options can override those of their parents. Reported-by: Olga Kornievskaia <aglo@citi.umich.edu> Signed-off-by: J. Bruce Fields <bfields@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* manpage: add section on character class matches to exports(5)Jeff Layton2011-06-221-5/+8
| | | | | Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: remove possibly false statement from exports.manJames Pearson2011-06-221-1/+1
| | | | | | | | | A very minor change suggested by J. Bruce Fields <bfields@fieldses.org> to remove the statement that exporting to a single host or IP address is the "most common format" - as it probably isn't. Signed-off-by: James Pearson <james-p@moving-picture.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* manpage: add info about IPv6 configuration to exports(5)Jeff Layton2011-06-221-4/+7
| | | | | | | | | | The parts of the exports(5) manpage that discuss IP addressing neglect IPv6 configuration. Update to include info on how to export to IPv6 subnets and addresses, and add a line demonstrating that to the EXAMPLE section. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsstat: reorder nfs4 stats for 2.6.39Benny Halevy2011-06-221-2/+2
| | | | | Signed-off-by: Benny Halevy <benny@tonian.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* exports: Clearly Defining Exports PrioritiesJames Pearson2011-06-071-13/+25
| | | | | | | | Added some verbiage to the exports(5) man page that clearly explains the precedence around how exports will work with regard to netgroups. Signed-off-by: Steve Dickson <steved@redhat.com>
* Document "-n" for svcgssdNeil Brown2011-06-071-2/+9
| | | | | | | The svcgssd man page doesn't mention the "-n" flag. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: Fix missing varialble assignment in auth_unix_gidPavel Shilovsky2011-06-071-2/+4
| | | | | | | | | When we get into auth_unix_gid at the second time, groups_len is not 0 and ngroups variable leave as 0. Then we use ngroups in getgrouplist that fails in this case. This patch fixes it. Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsstat: reorder nfs4 stats for 2.6.38 and upBenny Halevy2011-05-231-4/+1
| | | | | | | | match order in 2.6.38, 2.6.39 (-rc3) and development tree while at it, get rid of obsolete ds_write and ds_commit Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* supress socket error when address family is not supportedNeilBrown2011-05-231-2/+7
| | | | | | | | | | | | | | | | | | | | From: Suresh Jayaraman <sjayaraman@suse.de> It was observed that when ipv6 module was not loaded and cannot be auto-loaded, when starting NFS server, the following error occurs: "rpc.nfsd: unable to create inet6 TCP socket: errno 97 (Address family not supported by protocol)" This is obviously a true message, but does not represent an "error" when ipv6 is not enabled. Rather, it is an expected condition. As such, it can be confusing / misleading / distracting to display it in this scenario. This patch instead of throwing error when a socket call fails with EAFNOSUPPORT, makes it as a NOTICE. Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
* Removed compilation warnings from mountd/cache.cJim Rees2011-05-181-5/+5
| | | | | | | Commit 5604b35a6 introduced a number of missing initializer warnings that were missed. This patch removes those warnings. Signed-off-by: Steve Dickson <steved@redhat.com>
* nfsstat: Output headings mislabledSteve Dickson2011-04-261-1/+1
| | | | | | | | The badclnt and badauth headers were reversed when the server side rpc stats (-s -o rpc) were displayed. Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.svcgssd: Segmentation fault on errorSteve Dickson2011-04-191-1/+2
| | | | | | | | Commit 544ed73d introduced a regression that caused rpc.svcgssd to seg fault on "Wrong principal in request" errors in gss_accept_sec_context() Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: Increase the stdio file buffer size for procfs filesSean Finney2011-04-192-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when writing to /proc/net/rpc/*/channel, if a cache line were larger than the default buffer size (likely 1024 bytes), mountd and svcgssd would split writes into a number of buffer-sized writes. Each of these writes would get an EINVAL error back from the kernel procfs handle (it expects line-oriented input and does not account for multiple/split writes), and no cache update would occur. When such behavior occurs, NFS clients depending on mountd to finish the cache operation would block/hang, or receive EPERM, depending on the context of the operation. This is likely to happen if a user is a member of a large (~100-200) number of groups. Instead, every fopen() on the procfs files in question is followed by a call to setvbuf(), using a per-file dedicated buffer of RPC_CHAN_BUF_SIZE length. Really, mountd should not be using stdio-style buffered file operations on files in /proc to begin with. A better solution would be to use internally managed buffers and calls to write() instead of these stdio calls, but that would be a more extensive change; so this is proposed as a quick and not-so-dirty fix in the meantime. Signed-off-by: Sean Finney <sean.finney@sonyericsson.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mountd: Use a dynamic buffer for storing lists of gid'sSean Finney2011-04-191-9/+20
| | | | | | | | | | | | | Previously, in auth_unix_gid, group lists were stored in an array of hard-coded length 100, and in the situation that the group lists for a particular call were too large, the array was swapped with a dynamically allocated/freed buffer. For environments where users are commonly in a large number of groups, this isn't an ideal approach. Instead, use malloc/realloc to grow the list on an as-needed basis. Signed-off-by: Sean Finney <sean.finney@sonyericsson.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount: add --enable-libmount-mountKarel Zak2011-04-062-2/+424
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows to link mount.nfs with libmount from util-linux >= v2.19. The new libmount based code is enabled by CONFIG_LIBMOUNT and is stored in mount_libmount.c. The old code is not affected by this change. The libmount does not have officially stable API yet, so the --enable-libmount-mount is marked as experimental in the configure help output. The ./configure option is the same as we use in util-linux to enable support for libmount in mount(8). The addr= (and some other options necessary for remount/umount) are stored to /etc/mtab or to /dev/.mount/utab. The utab file is *private* libmount file. It's possible that some mount options (for example user=) will be moved to kernel, so the utab will not be necessary. About libmount: * supports systems without and with regular /etc/mtab * does not store VFS and FS mount options in userspace * manages user= option and evaluate permissions * parses VFS mount options and generate MS_* flags * parses /etc/{fstab,mtab}, /proc/mounts or /proc/self/mountinfo * long-term goal is to use the same code in all mount.<type> helpers Note, use LIBMOUNT_DEBUG=0xffff mount.nfs foo:/path /path to debug the library. On systems with util-linux v2.19 the findmnt(8) command uses libmount to list all/selected mount points: $ findmnt /path $ findmnt --mtab /path the --mtab appends userspace mount options (e.g. user=) to the output. CC: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount: move generic functions to utils.c and network.cKarel Zak2011-04-067-200/+286
| | | | | | | | | Move generic code that could be shared between standard mount.nfs and libmount version to utils.c and network.c. CC: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>