- BZ#746202
The cmsfs-fuse did not correctly update the number of records on the disk under certain conditions. This could result in an unreadable file situation when the last free data block on the disk was used. The cmsfs-fuse tool has been modified to update the highest record number according to the number of records written before the disk is full. The problem with unreadable files no longer occurs.
- BZ#746201
Previously, FBA-512 disks could not be mounted using the cmsfs-fuse utility because csmfs-fuse expected to find the label information at a different position than it is located on FBA-512 disks. Also, the block size of the formatted FBA-512 disk can differ from the usual FBA disk block size, which is 512 bytes. With this update, cmsfs-fuse has been modified to detect the label information of FBA-512 disks and the formatted block size is now read from the label. FBA-512 disks can now be mounted with cmsfs-fuse as expected.
- BZ#746195
The cmsfs-fuse utility incorrectly calculated logical address of the data block that was to be allocated or freed. As a consequence, a write operation failed if a disk with a block size of 512 bytes was larger than 256 MB. With this update, cmsfs-fuse has been modified to calculate logical addresses correctly, and disks with a block size of 512 bytes can be written to regardless of their capacity.
- BZ#745940
Under certain circumstances, cmsfs-fuse could incorrectly calculate the end of a file when parsing data record of a file in the fixed record format. As a consequence, an attempt to read such a file failed with an I/O error. The cmsfs-fuse has been modified to calculate data records and detect the end of a file correctly. Read operations on files in the fixed record format are now successful.
- BZ#745939
When performing multiple subsequent write operations on a file in the fixed record format, cmsfs-fuse could, under certain circumstances, incorrectly determine the current write position. As a consequence, write operations could fail. The cmsfs-fuse tool now maintains, as long as a file is open for writing, a write pointer that refers to the current write position, and thus allows contiguous writes to the file in the fixed record format without any failures.
- BZ#745938
The cmsfs-fuse utility did not reset the record length attribute after finishing a write operation. As a consequence, the next write operation failed if a disk was mounted with the -o big_writes option, which enables write operations bigger than 4 KB, and the previously written record was larger than a disk block size. With this update, cmsfs-fuse resets the record length attribute after every write operation, and writing to a file no longer fails in the scenario described.
- BZ#736397
The qetharp utility did not check the lenght of the given interface name parameter. Therefore, the qetharp command terminated with a buffer overflow when it was executed with an interface name that was longer than 16 bytes. With this update, qetharp checks the length of the interface name parameter, and properly exits with the Error: interface name too long error message if the parameter is longer than it is allowed to be.
- BZ#695380
Due to the redundant free() function call in the configuration file of cmsfs-fuse, the utility attempted to deallocate already freed memory. As a consequence, cmsfs-fuse expressed unpredictable behavior in the file type translation mode, such as a no longer accessible file system. With this update, the superfluous free() function call has been removed, and cmsfs-fuse now behaves as expected.
- BZ#745936
Under certain circumstances, a file size calculation could cause the data type overflow situation, which resulted in a negative value. As a consequence, it was impossible to create files larger than 2 GB. With this update, cmsfs-fuse has been modified to cast data type of variables, structure members and functions used in the calculation to a longer data type before calculating the file size. The cmsfs-fuse utility now works as expected and files larger than 2 GB can now be created.
- BZ#740302
The lsmem and chmem utilities assumed only contiguous memory blocks. Therefore, if the memory was non-contiguous and memory blocks did not follow in the presumed order, the lsmem utility did not show available memory that followed after a part of the physical address space that was not mapped to physical memory, a so called memory hole, and the chmem utility did not work at all. The lsmem and chmem utilities have been modified to work correctly with non-contiguous memory.
- BZ#738341
The lscss and lsdasd tools did not correctly handle a situation when running on a sysfs device tree that was changing. If a device disappeared from the device tree while lscss or lsdasd was attempting to access attributes of the device, the tool displayed pointless error messages. With this update, the lscss and lsdasd code has been modified to suppress the related error messages. In addition, the return code of the lscss -h and lsdasd -h commands has been corrected.
- BZ#738340
The lsluns utility did not check whether the SCSI Generic (sg) driver was loaded in the kernel and sg functionality was thus available. Therefore, lsluns silently failed when it was started and sg functionality was unavailable on the system. With this update, lsluns now includes the missing check and exits with an error message when it is started on the system with the sg functionality unavailable.
- BZ#738329
The af_iucv(8) man page now contains previously missing information about HiperSockets and HiperSocket connections, including an explanation on how to configure a HiperSocket device.
- BZ#736035
Previously, the dumpconf utility used the DELAY_MINUTES variable to delay restart of a system on kernel panic. However, users expected immediate action, therefore dumpconf has been modified to set the DELAY_MINUTES variable to 0 on system restart. Restart of the system with dumpconf is now triggered immediately.
- BZ#732739
The cpuplugd daemon did not properly handle lines commented out and did not correctly match strings in its configuration file. Consequently, lines in the configuration file that were commented out could be executed, which resulted in a parsing error, and invalid variable names were sometimes not rejected. The comment handling and string matching routines has been corrected in the code, and cpuplugd now behaves as expected when parsing the configuration file.
- BZ#730978
When calculating a date for a timestamp, the Perl localtime function incorrectly returned month within a range from 0 to 11 instead of a range from 1 to 12, which resulted in timestamps shifted by one month backward. To correct this problem, returned integer is incremented by one. The zfcpdbf now generates correct timestamps.
- BZ#730370
The lsluns --help command incorrectly suggested using an invalid --ports option. This mistake has been corrected, and the lsluns --help now correctly displays the --port option.
- BZ#729610
The fdasd utility did not distinguish between interactive and non-interactive mode. Therefore, when running the fdasd utility with the --config or --auto option on a device with no valid disk label, fdasd could stop with the following output:
no known label
Should I create a new one? (y/n)
Or it could fail with the following error message:
Disc does not contain a VOL1 label, cannot create partitions.
exiting...
With this update, the fdasd has been modified to properly check whether it should run in interactive or non-interactive mode, and it behaves accordingly.
- BZ#726414
The cpuplugd(8) man page has been modified to correct several typos and add one missing word.
- BZ#725737
Previously, the cpuplugd daemon did not handle a sub-string matching correctly. The daemon also used an incorrect string length when working with user-defined variables. As a consequence, the daemon returned a parsing error if a user-defined variable name matches the prefix of a pre-defined variable, or a substring of another user-defined variable. With this update, the sub-string matching has been corrected, and cpuplugd now uses correct string length in string comparing operations. Parsing errors no longer occur in the scenario described.
- BZ#718745
The
cpuplugd did not use any mechanism to prevent multiple
cpuplugd instances from starting. As a consequence, a race between the
PID file creation and a daemon startup could result in multiple cpuplugd instances running concurrently. To resolve this problem, a file locking mechanism that uses the
flock() function has been introduced in the
cpuplugd code. Only one instance of
cpuplugd is now allowed to run at the same time.
- BZ#718697
The
cpuplugd had previously not implemented sanity checks regarding minimum and maximum values for valid
CPU and memory intervals. If a configuration with incorrect intervals was used, the daemon could not work properly, and
CPU and memory could not be used optimally. With this update,
cpuplugd now includes CPU and memory sanity checks, ensuring its efficiency.
- BZ#718198
Due to a missing ferror() test, the lsreipl utility returned an error message when it attempted to read an empty sysfs file. With this update, the missing check has been added, and lsreipl no longer returns error messages when attempting to read an empty file.
- BZ#713817
The libzfcphbaapi library was missing some event thread cleanup code in the HBA_FreeLibrary() function. Therefore, the zfcp_ping tool could terminate unexpectedly with a segmentation fault if no on-line adapter was discovered. The missing event thread cleanup has been added in the code using the pthread_cancel and pthread_join functions. The zfcp_ping tool no longer crashes under these circumstances.
- BZ#711998
The s390utils-iucvterm package uses the grep command in its postinstall and postuninstall scripts but it was not dependent on the grep package. Therefore, error messages were displayed when installing s390utils-iucvterm. With this update, the grep package has been added as a prerequisite for s390utils-iucvterm. No error messages now occur during the package installation.
- BZ#711775
When scanning for active
Logical Unit Numbers (
LUNs) without the
-a, --active option, the
lsluns utility filtered a scan for well known LUNs with value
0xc101000000000000 and
0x0000000000000000, because the
SCSI report luns command is sent only to these LUNs. As a consequence, the
lsluns -a command did not show all active LUNs but only active
well known LUNs. The
lsluns utility has been modified to not filter LUNs when issued with the
-a option, and it now shows all active LUNs.
- BZ#705404
The dasdinfo utility was missing a return code and the tool always returned exit code 0 even if an error had occured. This update adds the missing return code and the dasdinfo tool now returns correct return code values.
- BZ#704505
The s390utils-libzfcphbaapi package did not specify the correct location of the libzfcphbaapi.so common library to the /etc/hba.conf configuration file. Therefore, s390utils-libzfcphbaapi failed to register with the /etc/hba.conf configuration file. With this update, the postinstall script adds the libzfcphbaapi /usr/lib64/libzfcphbaapi-2.1.so line to the /etc/hba.conf configuration file and thus registers the s390utils-libzfcphbaapi package.
- BZ#700471
The ziomon utility used the --output command line option in the code, although it was referred to as the --outfile option in the documentation. Using the --outfile option as suggested by documentation thus resulted in a ziomon failure. With this update, ziomon has been modified to accept the --outfile command line option as documented.
- BZ#700470
The ziomon utility did not check whether a debugfs file system is mounted on the /sys/kernel/debug/ directory. Therefore, if the mount point was a different directory, ziomon failed. The missing test is now included in ziomon, and it now works as expected: continues if a file system is mounted on the /sys/kernel/debug/ directory, or exits with the ziomon: Error: Debugfs not mounted on /sys/kernel/debug. error message if a file system is mounted on a different mount point.
- BZ#729981
To print parameters of the zipl utility for device-mapper multipath devices, zipl uses the zipl_helper.device-mapper script, which parses output of other programs. If any of these programs had locale dependent output, the script was unable to parse the output. Consequently, zipl terminated with the following error:
Script could not determine target parameters
To avoid this problem, the zipl_helper.device-mapper script has been modified to set up standard locale for the current process and all child processes. The problem described no longer occurs.