Message ID | 20201001055744.103261-9-wqu@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduce per-profile available space array to avoid over-confident can_overcommit() | expand |
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 28636cf01190..e28d6a304f87 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -7860,6 +7860,13 @@ int btrfs_verify_dev_extents(struct btrfs_fs_info *fs_info) /* Ensure all chunks have corresponding dev extents */ ret = verify_chunk_dev_extent_mapping(fs_info); + if (ret < 0) + goto out; + + /* All dev extents are verified, update per-profile available space */ + mutex_lock(&fs_info->chunk_mutex); + ret = btrfs_update_per_profile_avail(fs_info); + mutex_unlock(&fs_info->chunk_mutex); out: btrfs_free_path(path); return ret;
This patch will update the initial per-profile available space at mount time. Error (-ENOMEM) would lead to mount failure. If we can't even allocate memory at this moment, not allowing mount is good for everyone. Signed-off-by: Qu Wenruo <wqu@suse.com> --- fs/btrfs/volumes.c | 7 +++++++ 1 file changed, 7 insertions(+)