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