Hi Martijn
Hi Yang,
Thanks for the patch! I think it's correct, but I wonder whether it's
confusing to read, especially since the comment says "For flags that
can't be cleared, use previous values too" - it might not be obvious
to the reader that ~SETTABLE is a subset of ~CLEARABLE, and they might
think "well what about the settable flags we just cleared?"
To be honest I wouldn't mind leaving the code as-is, since it more
clearly describes what happens, and presumably the compiler will be
smart enough to optimize this anyway. But if you have other ideas on
how to remove this line and make things easier to understand, let me
know.
Thanks for your reply. From code readability, I agree with you and keep
this code here is better. So ignore this patch.
Best Regards
Yang Xu
Best,
Martijn
On Sat, Aug 1, 2020 at 5:04 AM Yang Xu <xuyang2018.jy@xxxxxxxxxxxxxx> wrote:
Hi
Ping.
Since ~LOOP_SET_STATUS_SETTABLE_FLAG is always a subset of ~LOOP_SET_STATUS_CLEARABLE_FLAGS
,remove this redundant flags operation.
Cc: Martijn Coenen <maco@xxxxxxxxxxx>
Signed-off-by: Yang Xu <xuyang2018.jy@xxxxxxxxxxxxxx>
---
drivers/block/loop.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index c33bbbf..2a61079 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1391,8 +1391,6 @@ static int loop_clr_fd(struct loop_device *lo)
/* Mask out flags that can't be set using LOOP_SET_STATUS. */
lo->lo_flags &= LOOP_SET_STATUS_SETTABLE_FLAGS;
- /* For those flags, use the previous values instead */
- lo->lo_flags |= prev_lo_flags & ~LOOP_SET_STATUS_SETTABLE_FLAGS;
/* For flags that can't be cleared, use previous values too */
lo->lo_flags |= prev_lo_flags & ~LOOP_SET_STATUS_CLEARABLE_FLAGS;