diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-07-24 14:11:43 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-07-24 14:11:43 -0700 |
| commit | 0669704270e142483d80cfda5c526426c1a89711 (patch) | |
| tree | ca9d8b97a9457c9362fd36147191c1df9adfd895 /fs/btrfs/volumes.c | |
| parent | 6a343656d30229a424458f8111e55df336375382 (diff) | |
| parent | 48cfa61b58a1fee0bc49eef04f8ccf31493b7cdd (diff) | |
| download | linux-0669704270e142483d80cfda5c526426c1a89711.tar.gz linux-0669704270e142483d80cfda5c526426c1a89711.tar.bz2 linux-0669704270e142483d80cfda5c526426c1a89711.zip | |
Merge tag 'for-5.8-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into master
Pull btrfs fixes from David Sterba:
"A few resouce leak fixes from recent patches, all are stable material.
The problems have been observed during testing or have a reproducer"
* tag 'for-5.8-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
btrfs: fix mount failure caused by race with umount
btrfs: fix page leaks after failure to lock page for delalloc
btrfs: qgroup: fix data leak caused by race between writeback and truncate
btrfs: fix double free on ulist after backref resolution failure
Diffstat (limited to 'fs/btrfs/volumes.c')
| -rw-r--r-- | fs/btrfs/volumes.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 0d6e785bcb98..f403fb1e6d37 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -7052,6 +7052,14 @@ int btrfs_read_chunk_tree(struct btrfs_fs_info *fs_info) mutex_lock(&fs_info->chunk_mutex); /* + * It is possible for mount and umount to race in such a way that + * we execute this code path, but open_fs_devices failed to clear + * total_rw_bytes. We certainly want it cleared before reading the + * device items, so clear it here. + */ + fs_info->fs_devices->total_rw_bytes = 0; + + /* * Read all device items, and then all the chunk items. All * device items are found before any chunk item (their object id * is smaller than the lowest possible object id for a chunk |
