mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 19:41:54 +00:00
md/bitmap: remove bitmap_mask_state
This function isn't really needed. It sets or clears a flag in both bitmap->flags and sb->state. However both times it is called, bitmap_update_sb is called soon afterwards which copies bitmap->flags to sb->state. So just make changes to bitmap->flags, and open-code those rather than hiding in a function. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
bc9891a885
commit
edbb79df67
@ -640,38 +640,6 @@ out_no_sb:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum bitmap_mask_op {
|
|
||||||
MASK_SET,
|
|
||||||
MASK_UNSET
|
|
||||||
};
|
|
||||||
|
|
||||||
/* record the state of the bitmap in the superblock. Return the old value */
|
|
||||||
static int bitmap_mask_state(struct bitmap *bitmap, enum bitmap_state bits,
|
|
||||||
enum bitmap_mask_op op)
|
|
||||||
{
|
|
||||||
bitmap_super_t *sb;
|
|
||||||
int old;
|
|
||||||
|
|
||||||
if (!bitmap->storage.sb_page) /* can't set the state */
|
|
||||||
return 0;
|
|
||||||
sb = kmap_atomic(bitmap->storage.sb_page);
|
|
||||||
old = le32_to_cpu(sb->state) & bits;
|
|
||||||
switch (op) {
|
|
||||||
case MASK_SET:
|
|
||||||
sb->state |= cpu_to_le32(bits);
|
|
||||||
bitmap->flags |= bits;
|
|
||||||
break;
|
|
||||||
case MASK_UNSET:
|
|
||||||
sb->state &= cpu_to_le32(~bits);
|
|
||||||
bitmap->flags &= ~bits;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
BUG();
|
|
||||||
}
|
|
||||||
kunmap_atomic(sb);
|
|
||||||
return old;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* general bitmap file operations
|
* general bitmap file operations
|
||||||
*/
|
*/
|
||||||
@ -828,7 +796,8 @@ static void bitmap_file_kick(struct bitmap *bitmap)
|
|||||||
{
|
{
|
||||||
char *path, *ptr = NULL;
|
char *path, *ptr = NULL;
|
||||||
|
|
||||||
if (bitmap_mask_state(bitmap, BITMAP_STALE, MASK_SET) == 0) {
|
if (!(bitmap->flags & BITMAP_STALE)) {
|
||||||
|
bitmap->flags |= BITMAP_STALE;
|
||||||
bitmap_update_sb(bitmap);
|
bitmap_update_sb(bitmap);
|
||||||
|
|
||||||
if (bitmap->storage.file) {
|
if (bitmap->storage.file) {
|
||||||
@ -1830,7 +1799,7 @@ int bitmap_load(struct mddev *mddev)
|
|||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
goto out;
|
goto out;
|
||||||
bitmap_mask_state(bitmap, BITMAP_STALE, MASK_UNSET);
|
bitmap->flags &= ~BITMAP_STALE;
|
||||||
|
|
||||||
/* Kick recovery in case any bits were set */
|
/* Kick recovery in case any bits were set */
|
||||||
set_bit(MD_RECOVERY_NEEDED, &bitmap->mddev->recovery);
|
set_bit(MD_RECOVERY_NEEDED, &bitmap->mddev->recovery);
|
||||||
|
Loading…
Reference in New Issue
Block a user