Josef Bacik
4987426257
btrfs: free block groups after free'ing fs trees
...
[ Upstream commit 4e19443da1941050b346f8fc4c368aa68413bc88 ]
Sometimes when running generic/475 we would trip the
WARN_ON(cache->reserved) check when free'ing the block groups on umount.
This is because sometimes we don't commit the transaction because of IO
errors and thus do not cleanup the tree logs until at umount time.
These blocks are still reserved until they are cleaned up, but they
aren't cleaned up until _after_ we do the free block groups work. Fix
this by moving the free after free'ing the fs roots, that way all of the
tree logs are cleaned up and we have a properly cleaned fs. A bunch of
loops of generic/475 confirmed this fixes the problem.
CC: stable@vger.kernel.org # 4.9+
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-11 04:35:53 -08:00
..
9p
9p pull request for inclusion in 5.4
2019-09-27 15:10:34 -07:00
adfs
Merge branch 'work.adfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 11:33:22 -07:00
affs
affs: fix a memory leak in affs_remount
2020-01-17 19:48:50 +01:00
afs
afs: Fix characters allowed into cell names
2020-01-29 16:45:24 +01:00
autofs
autofs: fix a leak in autofs_expire_indirect()
2019-10-25 00:03:11 -04:00
befs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
bfs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
btrfs
btrfs: free block groups after free'ing fs trees
2020-02-11 04:35:53 -08:00
cachefiles
ceph
ceph: hold extra reference to r_parent over life of request
2020-01-29 16:45:24 +01:00
cifs
cifs: fix soft mounts hanging in the reconnect code
2020-02-05 21:22:39 +00:00
coda
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
configfs
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
cramfs
cramfs: fix usage on non-MTD device
2019-11-23 21:44:49 -05:00
crypto
fscrypt: don't print name of busy file when removing key
2020-02-11 04:35:20 -08:00
debugfs
debugfs: Return -EPERM when locked down
2020-02-01 09:34:35 +00:00
devpts
devpts_pty_kill(): don't bother with d_delete()
2019-09-03 09:30:56 -04:00
dlm
dlm for 5.3
2019-07-12 17:37:53 -07:00
ecryptfs
ecryptfs_lookup_interpose(): lower_dentry->d_parent is not stable either
2019-11-10 11:57:45 -05:00
efivarfs
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
efs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
erofs
erofs: fix out-of-bound read for shifted uncompressed block
2020-02-11 04:35:23 -08:00
exportfs
exportfs_decode_fh(): negative pinned may become positive without the parent locked
2019-11-10 11:56:05 -05:00
ext2
ext2: Adjust indentation in ext2_fill_super
2020-02-11 04:35:45 -08:00
ext4
ext4: fix race conditions in ->d_compare() and ->d_hash()
2020-02-11 04:35:32 -08:00
f2fs
f2fs: fix race conditions in ->d_compare() and ->d_hash()
2020-02-11 04:35:25 -08:00
fat
fat: delete an unnecessary check before brelse()
2019-09-25 17:51:40 -07:00
freevxfs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
fscache
Revert "Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs"
2019-07-10 18:43:43 -07:00
fuse
fix up iter on short count in fuse_direct_io()
2020-02-11 04:35:43 -08:00
gfs2
gfs2: fix O_SYNC write handling
2020-02-11 04:35:35 -08:00
hfs
hfsplus
fs/hfsplus/xattr.c: replace strncpy with memcpy
2019-07-16 19:23:23 -07:00
hostfs
hpfs
fs: hpfs: Initialize filesystem timestamp ranges
2019-08-30 08:11:25 -07:00
hugetlbfs
mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
2020-01-04 19:19:19 +01:00
iomap
iomap: fix return value of iomap_dio_bio_actor on 32bit systems
2020-01-04 19:17:31 +01:00
isofs
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
jbd2
jbd2_seq_info_next should increase position index
2020-02-11 04:35:32 -08:00
jffs2
Revert "jffs2: Fix possible null-pointer dereferences in jffs2_add_frag_to_fragtree()"
2019-12-04 22:31:06 +01:00
jfs
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
kernfs
kernfs: fix ino wrap-around detection
2019-12-13 08:42:53 +01:00
lockd
lockd: Make two symbols static
2019-07-03 17:52:09 -04:00
minix
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
nfs
NFS: Directory page cache pages need to be locked when read
2020-02-11 04:35:32 -08:00
nfs_common
nfsd
nfsd: Return the correct number of bytes written to the file
2020-02-11 04:35:47 -08:00
nilfs2
vfs: create a generic checking and prep function for FS_IOC_SETFLAGS
2019-07-01 08:25:34 -07:00
nls
notify
fs: call fsnotify_sb_delete after evict_inodes
2020-01-12 12:21:38 +01:00
ntfs
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
ocfs2
ocfs2: fix oops when writing cloned file
2020-02-11 04:35:42 -08:00
omfs
fs: omfs: Initialize filesystem timestamp ranges
2019-08-30 08:11:25 -07:00
openpromfs
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
orangefs
Orangefs: a fix and a cleanup
2019-09-19 10:21:35 -07:00
overlayfs
ovl: fix lseek overflow on 32bit
2020-02-11 04:35:24 -08:00
proc
proc/meminfo: fix output alignment
2019-10-19 06:32:32 -04:00
pstore
pstore/ram: Regularize prz label allocation lifetime
2020-01-14 20:08:28 +01:00
qnx4
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
qnx6
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
quota
fs: avoid softlockups in s_inodes iterators
2020-01-12 12:21:37 +01:00
ramfs
vfs: Convert ramfs, shmem, tmpfs, devtmpfs, rootfs to use the new mount API
2019-09-12 21:05:34 -04:00
reiserfs
reiserfs: Fix memory leak of journal device string
2020-02-05 21:22:40 +00:00
romfs
Merge branch 'work.mount2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-09-19 10:06:57 -07:00
squashfs
Merge branch 'work.mount2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-09-19 10:06:57 -07:00
sysfs
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
sysv
fs: sysv: Initialize filesystem timestamp ranges
2019-08-30 07:27:18 -07:00
tracefs
tracing: Do not create tracefs files if tracefs lockdown is in effect
2019-10-12 20:49:07 -04:00
ubifs
ubifs: Fix memory leak from c->sup_node
2020-02-11 04:35:48 -08:00
udf
fs-udf: Delete an unnecessary check before brelse()
2019-09-04 18:19:43 +02:00
ufs
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
unicode
unicode: make array 'token' static const, makes object smaller
2019-09-17 11:48:24 -04:00
verity
fs-verity: support builtin file signatures
2019-08-12 19:33:50 -07:00
xfs
xfs: Sanity check flags of Q_XQUOTARM call
2020-01-26 10:00:59 +01:00
aio.c
aio: prevent potential eventfd recursion on poll
2020-02-11 04:35:37 -08:00
anon_inodes.c
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
attr.c
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c
elf: don't use MAP_FIXED_NOREPLACE for elf executable mappings
2019-10-06 13:53:27 -07:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
fs/binfmt_flat.c: remove set but not used variable 'inode'
2019-07-16 19:23:22 -07:00
binfmt_misc.c
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
binfmt_script.c
block_dev.c
bdev: Refresh bdev size for disks without partitioning
2019-12-13 08:43:19 +01:00
buffer.c
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
char_dev.c
chardev: Avoid potential use-after-free in 'chrdev_open()'
2020-01-14 20:08:18 +01:00
compat.c
compat_binfmt_elf.c
compat_ioctl.c
fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
2020-01-09 10:20:05 +01:00
coredump.c
coredump: split pipe command whitespace before expanding template
2019-08-03 07:02:01 -07:00
d_path.c
[PATCH] fix d_absolute_path() interplay with fsmount()
2019-08-30 19:31:09 -04:00
dax.c
fs/dax: Fix pmd vs pte conflict detection
2019-10-22 22:53:02 -07:00
dcache.c
Merge branch 'work.dcache2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-20 09:15:51 -07:00
dcookies.c
direct-io.c
fs/direct-io.c: fix kernel-doc warning
2019-10-14 15:04:01 -07:00
drop_caches.c
fs: avoid softlockups in s_inodes iterators
2020-01-12 12:21:37 +01:00
eventfd.c
eventfd: track eventfd_signal() recursion depth
2020-02-11 04:35:37 -08:00
eventpoll.c
PM / wakeup: Show wakeup sources stats in sysfs
2019-08-21 00:20:40 +02:00
exec.c
exit/exec: Seperate mm_release()
2019-11-29 10:10:10 +01:00
fcntl.c
fhandle.c
fs/handle.c - fix up kerneldoc
2019-08-07 21:51:47 -04:00
file.c
file_table.c
vfs: Export flush_delayed_fput for use by knfsd.
2019-08-19 11:00:39 -04:00
filesystems.c
fs-writeback.c
memcg: fix a crash in wb_workfn when a device disappears
2020-02-11 04:35:11 -08:00
fs_context.c
vfs: subtype handling moved to fuse
2019-09-06 21:28:49 +02:00
fs_parser.c
vfs: Make fs_parse() handle fs_param_is_fd-type params better
2019-09-12 21:06:14 -04:00
fs_pin.c
switch the remnants of releasing the mountpoint away from fs_pin
2019-07-16 22:52:37 -04:00
fs_struct.c
fs_types.c
fsopen.c
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
inode.c
fs: avoid softlockups in s_inodes iterators
2020-01-12 12:21:37 +01:00
internal.h
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
io_uring.c
Revert "io_uring: only allow submit from owning task"
2020-01-29 16:45:24 +01:00
ioctl.c
compat_ioctl: add compat_ptr_ioctl()
2019-12-17 19:55:30 +01:00
Kconfig
fs-verity for 5.4
2019-09-18 16:59:14 -07:00
Kconfig.binfmt
binfmt_flat: make support for old format binaries optional
2019-06-24 09:16:47 +10:00
libfs.c
fs/libfs.c: fix kernel-doc warning
2019-10-14 15:04:01 -07:00
locks.c
locks: print unsigned ino in /proc/locks
2020-01-09 10:19:57 +01:00
Makefile
fs-verity for 5.4
2019-09-18 16:59:14 -07:00
mbcache.c
mount.h
switch the remnants of releasing the mountpoint away from fs_pin
2019-07-16 22:52:37 -04:00
mpage.c
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
namei.c
vfs: fix do_last() regression
2020-02-05 21:22:39 +00:00
namespace.c
fs/namespace.c: fix use-after-free of mount in mnt_warn_timestamp_expiry()
2019-10-16 23:15:09 -04:00
no-block.c
nsfs.c
open.c
fs: remove unlikely() from WARN_ON() condition
2019-09-26 10:10:30 -07:00
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
vfs: subtype handling moved to fuse
2019-09-06 21:28:49 +02:00
read_write.c
fs: allow deduplication of eof block into the end of the destination file
2020-02-11 04:35:23 -08:00
readdir.c
readdir: be more conservative with directory entry names
2020-01-29 16:45:31 +01:00
select.c
fs/select.c: use struct_size() in kmalloc()
2019-07-16 19:23:25 -07:00
seq_file.c
seq_file: fix problem when seeking mid-record
2019-08-13 16:06:52 -07:00
signalfd.c
splice.c
splice: only read in as much information as there is pipe buffer space
2019-12-17 19:56:52 +01:00
stack.c
stat.c
statfs.c
vfs: Fix EOVERFLOW testing in put_compat_statfs64
2019-10-03 14:21:35 -07:00
super.c
fs: call fsnotify_sb_delete after evict_inodes
2020-01-12 12:21:38 +01:00
sync.c
timerfd.c
timerfd: Prepare for PREEMPT_RT
2019-08-01 20:51:23 +02:00
userfaultfd.c
userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
2020-01-04 19:18:32 +01:00
utimes.c
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
xattr.c