loop: fix error handling regression
PATCH 1/1 loop: fix error handling regression
gcc points out an unusual indentation:
drivers/block/loop.c: In function 'loop_set_status':drivers/block/loop.c:1149:3: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
if (figure_loop_size(lo, info->lo_offset, info->lo_sizelimit,
^~drivers/block/loop.c:1152:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
goto exit;
This was introduced by a new feature that accidentally moved the opening braces from one condition to another. Adding a second pair of braces makes it work correctly again and also more readable.
--- drivers/block/loop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/block/loop.c +2 -1
@@ -1147,10 +1147,11 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info) ((lo->lo_flags & LO_FLAGS_BLOCKSIZE) && lo->lo_logical_blocksize != LO_INFO_BLOCKSIZE(info))) {if (figure_loop_size (lo, info->lo_offset, info->lo_sizelimit, -LO_INFO_BLOCKSIZE (info))) +LO_INFO_BLOCKSIZE (info))) { err = -EFBIG ; goto exit; } + }loop_config_discard (lo);
Signature · 1 line
2.9.0
Quoted 7 lines · Arnd Bergmann
gcc points out an unusual indentation:
drivers/block/loop.c: In function 'loop_set_status':drivers/block/loop.c:1149:3: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
if (figure_loop_size(lo,info->lo_offset,info->lo_sizelimit,
^~drivers/block/loop.c:1152:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
Quoted 5 lines
goto exit;This was introduced by a new feature that accidentally moved the opening braces from one condition to another. Adding a second pair of braces makes it work correctly again and also more readable.
Thanks for fixing this Arnd, I did notice (and complained to Hannes) this yesterday. Added.
Signature · 1 line
Jens Axboe
Quoted 27 lines · Arnd Bergmann
gcc points out an unusual indentation:
drivers/block/loop.c: In function 'loop_set_status':drivers/block/loop.c:1149:3: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
if (figure_loop_size(lo,info->lo_offset,info->lo_sizelimit,
^~drivers/block/loop.c:1152:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'goto exit;This was introduced by a new feature that accidentally moved the opening braces from one condition to another. Adding a second pair of braces makes it work correctly again and also more readable.
Fixes f2c6df7dbf9a ("loop: support 4k physical blocksize")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/block/loop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)drivers/block/loop.c +0
-0@@ -1147,10 +1147,11 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info) ((lo->lo_flags & LO_FLAGS_BLOCKSIZE) && lo->lo_logical_blocksize != LO_INFO_BLOCKSIZE(info))) {
drivers/block/loop.c loop_set_status(struct loop_device *lo, const struct loop_info64 *info) · line 1157
Quoted 10 lines
drivers/block/loop.c +2
-1if (figure_loop_size (lo, info->lo_offset, info->lo_sizelimit, -LO_INFO_BLOCKSIZE (info))) +LO_INFO_BLOCKSIZE (info))) { err = -EFBIG ; goto exit; } + }loop_config_discard (lo);
Oops. You are correct, of course.
Cheers,
Hannes
Signature · 4 lines
Dr. Hannes Reinecke zSeries & Storage [email protected] +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)