Thread (12 messages) 12 messages, 3 authors, 2020-05-19

Re: [PATCH 2/2] restripe: fix ignoring return value of ‘read’

From: Jes Sorensen <hidden>
Date: 2020-05-18 17:22:37

On 5/15/20 9:40 AM, Guoqing Jiang wrote:
quoted hunk ↗ jump to hunk
Got below error when run "make everything".

restripe.c: In function ‘test_stripes’:
restripe.c:870:4: error: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Werror=unused-result]
    read(source[i], stripes[i], chunk_size);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix it by set the return value of ‘read’ to diskP, which should be
harmless since diskP will be set again before it is used.

Signed-off-by: Guoqing Jiang <redacted>
---
 restripe.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/restripe.c b/restripe.c
index 31b07e8..21c90f5 100644
--- a/restripe.c
+++ b/restripe.c
@@ -867,7 +867,11 @@ int test_stripes(int *source, unsigned long long *offsets,
 
 		for (i = 0 ; i < raid_disks ; i++) {
 			lseek64(source[i], offsets[i]+start, 0);
-			read(source[i], stripes[i], chunk_size);
+			/*
+			 * To resolve "ignoring return value of ‘read’", it
+			 * should be harmless since diskP will be again later.
+			 */
+			diskP = read(source[i], stripes[i], chunk_size);
It doesn't complain on Fedora 32, however checking the return value of
lseek64 and read is a good thing.

However what you have done is to just masking the return value and
throwing it away, is not OK. Please do it properly.

Thanks,
Jes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help