btrfs: cleanup device states define BTRFS_DEV_STATE_FLUSH_SENT
Currently device state is being managed by each individual int variable such as struct btrfs_device::is_tgtdev_for_dev_replace. Instead of that declare btrfs_device::dev_state BTRFS_DEV_STATE_FLUSH_SENT and use the bit operations. Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
401e29c124
commit
1c3063b6db
|
@ -3348,7 +3348,7 @@ static void write_dev_flush(struct btrfs_device *device)
|
|||
bio->bi_private = &device->flush_wait;
|
||||
|
||||
btrfsic_submit_bio(bio);
|
||||
device->flush_bio_sent = 1;
|
||||
set_bit(BTRFS_DEV_STATE_FLUSH_SENT, &device->dev_state);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -3358,10 +3358,10 @@ static blk_status_t wait_dev_flush(struct btrfs_device *device)
|
|||
{
|
||||
struct bio *bio = device->flush_bio;
|
||||
|
||||
if (!device->flush_bio_sent)
|
||||
if (!test_bit(BTRFS_DEV_STATE_FLUSH_SENT, &device->dev_state))
|
||||
return BLK_STS_OK;
|
||||
|
||||
device->flush_bio_sent = 0;
|
||||
clear_bit(BTRFS_DEV_STATE_FLUSH_SENT, &device->dev_state);
|
||||
wait_for_completion_io(&device->flush_wait);
|
||||
|
||||
return bio->bi_status;
|
||||
|
|
|
@ -51,6 +51,7 @@ struct btrfs_pending_bios {
|
|||
#define BTRFS_DEV_STATE_IN_FS_METADATA (1)
|
||||
#define BTRFS_DEV_STATE_MISSING (2)
|
||||
#define BTRFS_DEV_STATE_REPLACE_TGT (3)
|
||||
#define BTRFS_DEV_STATE_FLUSH_SENT (4)
|
||||
|
||||
struct btrfs_device {
|
||||
struct list_head dev_list;
|
||||
|
|
Loading…
Reference in New Issue