From 9522850758ecad087891710b391b4e77f6bff839 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 14 Jul 2010 08:42:03 +0200 Subject: [PATCH] Turn io_u filled variable into a flag Signed-off-by: Jens Axboe --- io_u.c | 2 +- ioengine.h | 14 +++++++------- verify.c | 10 ++++++---- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/io_u.c b/io_u.c index dc4473be..88b2b9f3 100644 --- a/io_u.c +++ b/io_u.c @@ -988,7 +988,7 @@ struct io_u *get_io_u(struct thread_data *td) * Reset the buf_filled parameters so next time if the * buffer is used for writes it is refilled. */ - io_u->buf_filled = 0; + io_u->flags &= ~IO_U_F_FILLED; io_u->buf_filled_len = 0; } } diff --git a/ioengine.h b/ioengine.h index b599b615..343b06fb 100644 --- a/ioengine.h +++ b/ioengine.h @@ -8,6 +8,7 @@ enum { IO_U_F_FLIGHT = 1 << 1, IO_U_F_FREE_DEF = 1 << 2, IO_U_F_IN_CUR_DEPTH = 1 << 3, + IO_U_F_FILLED = 1 << 4, }; /* @@ -42,13 +43,6 @@ struct io_u { unsigned long buflen; unsigned long long offset; - /* - * Parameters related to pre-filled buffers and - * their size to handle variable block sizes. - */ - int buf_filled; - unsigned long buf_filled_len; - /* * IO engine state, may be different from above when we get * partial transfers / residual data counts @@ -56,6 +50,12 @@ struct io_u { void *xfer_buf; unsigned long xfer_buflen; + /* + * Parameter related to pre-filled buffers and + * their size to handle variable block sizes. + */ + unsigned long buf_filled_len; + unsigned int resid; unsigned int error; diff --git a/verify.c b/verify.c index 73c12629..098c19bc 100644 --- a/verify.c +++ b/verify.c @@ -30,20 +30,22 @@ void fill_pattern(struct thread_data *td, void *p, unsigned int len, struct io_u fill_random_buf(p, len); break; case 1: - if (io_u->buf_filled && io_u->buf_filled_len >= len) { + if ((io_u->flags & IO_U_F_FILLED) && + io_u->buf_filled_len >= len) { dprint(FD_VERIFY, "using already filled verify pattern b=0 len=%u\n", len); return; } dprint(FD_VERIFY, "fill verify pattern b=0 len=%u\n", len); memset(p, td->o.verify_pattern[0], len); - io_u->buf_filled = 1; + io_u->flags |= IO_U_F_FILLED; io_u->buf_filled_len = len; break; default: { unsigned int i = 0, size = 0; unsigned char *b = p; - if (io_u->buf_filled && io_u->buf_filled_len >= len) { + if ((io_u->flags & IO_U_F_FILLED) && + io_u->buf_filled_len >= len) { dprint(FD_VERIFY, "using already filled verify pattern b=%d len=%u\n", td->o.verify_pattern_bytes, len); return; @@ -58,7 +60,7 @@ void fill_pattern(struct thread_data *td, void *p, unsigned int len, struct io_u memcpy(b+i, td->o.verify_pattern, size); i += size; } - io_u->buf_filled = 1; + io_u->flags |= IO_U_F_FILLED; io_u->buf_filled_len = len; break; } -- 2.25.1