diff options
author | Naohiro Aota <naohiro.aota@wdc.com> | 2021-08-19 21:19:14 +0900 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2021-10-26 19:07:59 +0200 |
commit | 8376d9e1ed8f4a83d0889081893e872fe2dbc755 (patch) | |
tree | 85366750c4c006811c40b8da410a62fbac90fbdc /fs/btrfs/disk-io.c | |
parent | 9658b72ef300b5002358162218146230f5b72b99 (diff) | |
download | lwn-8376d9e1ed8f4a83d0889081893e872fe2dbc755.tar.gz lwn-8376d9e1ed8f4a83d0889081893e872fe2dbc755.zip |
btrfs: zoned: finish superblock zone once no space left for new SB
If there is no more space left for a new superblock in a superblock zone,
then it is better to ZONE_FINISH the zone and frees up the active zone
count.
Since btrfs_advance_sb_log() can now issue REQ_OP_ZONE_FINISH, we also need
to convert it to return int for the error case.
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r-- | fs/btrfs/disk-io.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 71aafe9606e0..f755d02dc088 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -3887,7 +3887,9 @@ static int write_dev_supers(struct btrfs_device *device, bio->bi_opf |= REQ_FUA; btrfsic_submit_bio(bio); - btrfs_advance_sb_log(device, i); + + if (btrfs_advance_sb_log(device, i)) + errors++; } return errors < i ? 0 : -1; } |