loop: Clean up LOOP_SET_STATUS lo_flags handling
authorMartijn Coenen <maco@android.com>
Wed, 13 May 2020 13:38:44 +0000 (15:38 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 21 May 2020 14:20:35 +0000 (08:20 -0600)
commitfaf1d25440d6ad06d509dada4b6fe62fea844370
treeedf4e1c5f3dbc56b7545bc317d9d68366bfe02b8
parent571fae6e290d64a3e8132c455e7786c99c467ed1
loop: Clean up LOOP_SET_STATUS lo_flags handling

LOOP_SET_STATUS(64) will actually allow some lo_flags to be modified; in
particular, LO_FLAGS_AUTOCLEAR can be set and cleared, whereas
LO_FLAGS_PARTSCAN can be set to request a partition scan. Make this
explicit by updating the UAPI to include the flags that can be
set/cleared using this ioctl.

The implementation can then blindly take over the passed in flags,
and use the previous flags for those flags that can't be set / cleared
using LOOP_SET_STATUS.

Signed-off-by: Martijn Coenen <maco@android.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/loop.c
include/uapi/linux/loop.h