[LTP] [PATCH] lib: tlibio.c: Restore LIO_IO_SYNCV
Avinesh Kumar
akumar@suse.de
Wed Apr 30 16:41:11 CEST 2025
On Wednesday, April 30, 2025 3:36:15 PM CEST Cyril Hrubis wrote:
> There was a single case of "#ifndef CRAY" in all the "#ifdef CRAY"
> macros that got removed accidentally. This patch restores that piece.
>
> Fixes: fed3e3ee6399 ('lib/tlibio: Get rid of support for old UNIXes')
> Reported-by: Avinesh Kumar <akumar@suse.de>
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Thank you Cyril!
Tested-by: Avinesh Kumar <akumar@suse.de>
> ---
> lib/tlibio.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 56 insertions(+), 1 deletion(-)
>
> diff --git a/lib/tlibio.c b/lib/tlibio.c
> index 451244525..b3e723aa7 100644
> --- a/lib/tlibio.c
> +++ b/lib/tlibio.c
> @@ -767,6 +767,34 @@ int lio_write_buffer(int fd, /* open file descriptor */
> return -errno;
> }
> }
> + else if (method & LIO_IO_SYNCV) {
> + io_type = "writev(2)";
> +
> + sprintf(Lio_SysCall, "writev(%d, &iov, 1) nbyte:%d", fd, size);
> +
> + if (Debug_level) {
> + printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__,
> + Lio_SysCall);
> + }
> + if ((ret = writev(fd, &iov, 1)) == -1) {
> + sprintf(Errormsg,
> + "%s/%d writev(%d, iov, 1) nbyte:%d ret:-1, errno=%d %s",
> + __FILE__, __LINE__, fd, size, errno,
> + strerror(errno));
> + return -errno;
> + }
> +
> + if (ret != size) {
> + sprintf(Errormsg,
> + "%s/%d writev(%d, iov, 1) nbyte:%d returned=%d",
> + __FILE__, __LINE__, fd, size, ret);
> + } else if (Debug_level > 1)
> + printf
> + ("DEBUG %s/%d: writev completed without error (ret %d)\n",
> + __FILE__, __LINE__, ret);
> +
> + return ret;
> + } /* LIO_IO_SYNCV */
> /* LIO_IO_ALISTIO */
> else if (method & LIO_IO_SYNCP) {
> io_type = "pwrite(2)";
> @@ -1150,6 +1178,34 @@ int lio_read_buffer(int fd, /* open file descriptor */
> }
> }
> /* LIO_IO_ALISTIO */
> + else if (method & LIO_IO_SYNCV) {
> + io_type = "readv(2)";
> +
> + sprintf(Lio_SysCall, "readv(%d, &iov, 1) nbyte:%d", fd, size);
> +
> + if (Debug_level) {
> + printf("DEBUG %s/%d: %s\n", __FILE__, __LINE__,
> + Lio_SysCall);
> + }
> + if ((ret = readv(fd, &iov, 1)) == -1) {
> + sprintf(Errormsg,
> + "%s/%d readv(%d, iov, 1) nbyte:%d ret:-1, errno=%d %s",
> + __FILE__, __LINE__, fd, size, errno,
> + strerror(errno));
> + return -errno;
> + }
> +
> + if (ret != size) {
> + sprintf(Errormsg,
> + "%s/%d readv(%d, iov, 1) nbyte:%d returned=%d",
> + __FILE__, __LINE__, fd, size, ret);
> + } else if (Debug_level > 1)
> + printf
> + ("DEBUG %s/%d: readv completed without error (ret %d)\n",
> + __FILE__, __LINE__, ret);
> +
> + return ret;
> + } /* LIO_IO_SYNCV */
> else if (method & LIO_IO_SYNCP) {
> io_type = "pread(2)";
>
>
Regards,
Avinesh
More information about the ltp
mailing list