Darrick J. Wong
b72172a481
xfs: fix realtime bitmap/summary file truncation when growing rt volume
...
[ Upstream commit f4c32e87de7d66074d5612567c5eac7325024428 ]
The realtime bitmap and summary files are regular files that are hidden
away from the directory tree. Since they're regular files, inode
inactivation will try to purge what it thinks are speculative
preallocations beyond the incore size of the file. Unfortunately,
xfs_growfs_rt forgets to update the incore size when it resizes the
inodes, with the result that inactivating the rt inodes at unmount time
will cause their contents to be truncated.
Fix this by updating the incore size when we change the ondisk size as
part of updating the superblock. Note that we don't do this when we're
allocating blocks to the rt inodes because we actually want those blocks
to get purged if the growfs fails.
This fixes corruption complaints from the online rtsummary checker when
running xfs/233. Since that test requires rmap, one can also trigger
this by growing an rt volume, cycling the mount, and creating rt files.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-11-10 10:23:52 +01:00
..
9p
9p: Fix memory leak in v9fs_mount
2020-08-21 11:02:06 +02:00
adfs
fs/adfs: super: fix use-after-free bug
2019-08-06 18:29:35 +02:00
affs
affs: fix basic permission bits to actually work
2020-09-12 11:47:39 +02:00
afs
afs: Fix large file support
2020-01-29 10:24:34 +01:00
autofs4
autofs: fix a leak in autofs_expire_indirect()
2019-12-21 10:40:46 +01:00
befs
befs fixes for 4.9-rc1
2016-10-15 12:09:13 -07:00
bfs
bfs: add sanity check at bfs_fill_super()
2018-12-01 09:44:19 +01:00
btrfs
btrfs: don't force read-only after error in drop snapshot
2020-10-01 20:40:14 +02:00
cachefiles
cachefiles: Fix race between read_waiter and read_copier involving op->to_do
2020-06-03 08:16:36 +02:00
ceph
ceph: fix potential race in ceph_check_caps
2020-10-01 20:40:15 +02:00
cifs
cifs: remove bogus debug code
2020-10-29 09:05:32 +01:00
coda
coda: add error handling for fget
2019-08-06 18:29:38 +02:00
configfs
configfs: fix config_item refcnt leak in configfs_rmdir()
2020-05-27 16:41:45 +02:00
cramfs
Cramfs: fix abad comparison when wrap-arounds occur
2018-11-13 11:17:03 -08:00
crypto
fscrypt: use EEXIST when file already uses different policy
2020-11-10 10:23:51 +01:00
debugfs
debugfs: fix use-after-free on symlink traversal
2019-05-08 07:19:10 +02:00
devpts
fs/devpts: always delete dcache dentry-s in dput()
2019-03-23 13:19:47 +01:00
dlm
fs: dlm: fix configfs memory leak
2020-10-29 09:05:43 +01:00
ecryptfs
ecryptfs: Fix up bad backport of fe2e082f5da5b4a0a92ae32978f81507ef37ec66
2020-03-11 07:53:06 +01:00
efivarfs
efivarfs: Replace invalid slashes with exclamation marks in dentries.
2020-11-10 10:23:50 +01:00
efs
exofs
fs/exofs: fix potential memory leak in mount option parsing
2018-11-27 16:09:38 +01:00
exportfs
exportfs: fix 'passing zero to ERR_PTR()' warning
2020-01-29 10:24:03 +01:00
ext2
ext2: fix missing percpu_counter_inc
2020-08-21 11:02:08 +02:00
ext4
fscrypto: move ioctl processing more fully into common code
2020-11-10 10:23:51 +01:00
f2fs
f2fs: fix to check segment boundary during SIT page readahead
2020-11-10 10:23:52 +01:00
fat
fat: don't allow to mount if the FAT length == 0
2020-06-20 10:24:13 +02:00
freevxfs
fscache
fscache: fix race between enablement and dropping of object
2018-12-17 09:38:34 +01:00
fuse
fuse: fix page dereference after free
2020-11-10 10:23:51 +01:00
gfs2
gfs2: Allow lock_nolock mount to specify jid=X
2020-06-30 15:38:28 -04:00
hfs
fs/hfs/extent.c: fix array out of bounds read of array extent
2019-11-28 18:28:50 +01:00
hfsplus
hfsplus: fix crash and filesystem corruption when deleting files
2020-04-24 07:58:59 +02:00
hostfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
hpfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
hugetlbfs
hugetlb: use same fault hash key for shared and private mappings
2019-05-31 06:48:12 -07:00
isofs
isofs: fix timestamps beyond 2027
2017-11-30 08:39:04 +00:00
jbd2
jbd2: abort journal if free a async write error metadata buffer
2020-09-03 11:21:19 +02:00
jffs2
jffs2: fix UAF problem
2020-08-26 10:29:05 +02:00
jfs
jfs: fix bogus variable self-initialization
2020-01-29 10:24:19 +01:00
kernfs
kernfs: Fix range checks in kernfs_get_target_path
2019-11-25 09:52:23 +01:00
lockd
lockd: fix access beyond unterminated strings in prints
2018-11-13 11:17:02 -08:00
logfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
minix
fs/minix: reject too-large maximum file size
2020-08-21 11:02:06 +02:00
ncpfs
ncpfs: fix build warning of strncpy
2019-03-13 14:04:52 -07:00
nfs
nfs: Fix security label length not being reset
2020-10-14 09:48:13 +02:00
nfs_common
lockd: fix "list_add double add" caused by legacy signal interface
2018-02-03 17:05:38 +01:00
nfsd
nfsd: Fix svc_xprt refcnt leak when setup callback client failed
2020-06-30 15:38:22 -04:00
nilfs2
nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
2020-06-20 10:24:09 +02:00
nls
notify
fanotify: fix handling of events on child sub-directory
2019-02-06 17:33:30 +01:00
ntfs
ntfs: add check for mft record size in superblock
2020-10-29 09:05:43 +01:00
ocfs2
ocfs2: change slot number type s16 to u16
2020-08-21 11:02:08 +02:00
omfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
openpromfs
orangefs
help_next should increase position index
2020-02-28 15:42:43 +01:00
overlayfs
ovl: initialize error in ovl_copy_xattr
2020-06-20 10:24:11 +02:00
proc
proc: Use new_inode not new_inode_pseudo
2020-06-20 10:24:11 +02:00
pstore
pstore/ram: Write new dumps to start of recycled zones
2020-01-12 11:24:20 +01:00
qnx4
qnx6
quota
quota: clear padding in v2r1_mem2diskdqb()
2020-10-29 09:05:36 +01:00
ramfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
reiserfs
reiserfs: Fix memory leak in reiserfs_parse_options()
2020-10-29 09:05:45 +01:00
romfs
romfs: fix uninitialized memory leak in romfs_dev_read()
2020-08-26 10:29:03 +02:00
squashfs
Squashfs: Compute expected length from inode size rather than block length
2018-09-05 09:20:03 +02:00
sysfs
scsi: sysfs: Introduce sysfs_{un,}break_active_protection()
2018-09-05 09:20:10 +02:00
sysv
sysv: return 'err' instead of 0 in __sysv_write_inode
2018-12-17 09:38:32 +01:00
tracefs
ubifs
ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len
2020-10-01 20:40:11 +02:00
udf
udf: Avoid accessing uninitialized data on failed inode read
2020-10-29 09:05:44 +01:00
ufs
fs/ufs: avoid potential u32 multiplication overflow
2020-08-21 11:02:11 +02:00
xfs
xfs: fix realtime bitmap/summary file truncation when growing rt volume
2020-11-10 10:23:52 +01:00
aio.c
aio: fix spectre gadget in lookup_ioctx
2018-12-21 14:11:31 +01:00
anon_inodes.c
attr.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
bad_inode.c
bad_inode: add missing i_op initializers
2017-01-09 08:32:24 +01:00
binfmt_aout.c
binfmt_elf.c
fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
2020-06-03 08:16:42 +02:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
fs/binfmt_flat.c: make load_flat_shared_library() work
2019-07-10 09:55:38 +02:00
binfmt_misc.c
fs/binfmt_misc.c: do not allow offset overflow
2018-06-26 08:08:09 +08:00
binfmt_script.c
exec: load_script: Do not exec truncated interpreter path
2019-11-06 12:18:04 +01:00
block_dev.c
bdev: Reduce time holding bd_mutex in sync in blkdev_close()
2020-10-01 20:40:12 +02:00
buffer.c
fs: prevent BUG_ON in submit_bh_wbc()
2020-09-03 11:21:19 +02:00
char_dev.c
chardev: add helper function to register char devs with a struct device
2020-05-20 08:15:32 +02:00
compat.c
compat_binfmt_elf.c
binfmt_elf: compat: avoid unused function warning
2018-02-25 11:05:55 +01:00
compat_ioctl.c
media: dvb_frontend: Add compat_ioctl callback
2020-06-30 15:38:35 -04:00
coredump.c
coredump: Ensure proper size of sparse core files
2017-07-05 14:40:26 +02:00
dax.c
fs/dax.c: fix inefficiency in dax_writeback_mapping_range()
2018-02-28 10:18:33 +01:00
dcache.c
Hang/soft lockup in d_invalidate with simultaneous calls
2019-03-27 14:13:04 +09:00
dcookies.c
direct-io.c
direct-io: allow direct writes to empty inodes
2019-03-05 17:57:05 +01:00
drop_caches.c
fs/drop_caches.c: avoid softlockups in drop_pagecache_sb()
2019-03-13 14:04:58 -07:00
eventfd.c
eventpoll.c
ep_create_wakeup_source(): dentry name can change under you...
2020-10-14 09:48:13 +02:00
exec.c
exec: Move would_dump into flush_old_exec
2020-05-20 08:15:41 +02:00
fcntl.c
fs/fcntl: f_setown, avoid undefined behaviour
2018-01-31 12:55:52 +01:00
fhandle.c
file.c
fix multiplication overflow in copy_fdtable()
2020-05-27 16:41:40 +02:00
file_table.c
filesystems.c
fs-writeback.c
writeback: Fix sync livelock due to b_dirty_time processing
2020-09-03 11:21:21 +02:00
fs_pin.c
fs_struct.c
inode.c
futex: Fix inode life-time issue
2020-04-02 17:20:27 +02:00
internal.h
xfs: evict all inodes involved with log redo item
2017-09-20 08:20:01 +02:00
ioctl.c
iomap.c
iomap: fix integer truncation issues in the zeroing and dirtying helpers
2017-09-20 08:19:59 +02:00
Kconfig
mm/hugetlb: introduce ARCH_HAS_GIGANTIC_PAGE
2016-10-07 18:46:29 -07:00
Kconfig.binfmt
libfs.c
libfs: fix infoleak in simple_attr_read()
2020-04-02 17:20:38 +02:00
locks.c
locks: print unsigned ino in /proc/locks
2020-01-12 11:24:13 +01:00
Makefile
mbcache.c
mbcache: initialize entry->e_referenced in mb_cache_entry_create()
2018-02-22 15:43:48 +01:00
mount.h
mnt: In propgate_umount handle visiting mounts in any order
2017-07-21 07:42:22 +02:00
mpage.c
fs/mpage.c: fix mpage_writepage() for pages with buffers
2017-10-18 09:35:39 +02:00
namei.c
namei: only return -ECHILD from follow_dotdot_rcu()
2020-03-11 07:53:07 +01:00
namespace.c
fs/namespace.c: fix mountpoint reference counter race
2020-05-02 17:23:10 +02:00
no-block.c
nsfs.c
nsfs: mark dentry with DCACHE_RCUACCESS
2018-02-17 13:21:15 +01:00
open.c
cifs_atomic_open(): fix double-put on late allocation failure
2020-03-20 09:07:44 +01:00
pipe.c
fs: prevent page refcount overflow in pipe_buf_get
2019-06-11 12:22:45 +02:00
pnode.c
propagate_one(): mnt_set_mountpoint() needs mount_lock
2020-05-02 17:23:20 +02:00
pnode.h
mnt: Tuck mounts under others instead of creating shadow/side mounts.
2017-03-15 10:02:43 +08:00
posix_acl.c
tmpfs: clear S_ISGID when setting posix ACLs
2017-01-26 08:24:37 +01:00
proc_namespace.c
read_write.c
fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock
2019-06-11 12:22:49 +02:00
readdir.c
filldir[64]: remove WARN_ON_ONCE() for bad directory entries
2020-01-04 13:41:06 +01:00
select.c
fs/select: add vmalloc fallback for select(2)
2016-10-11 15:06:30 -07:00
seq_file.c
seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char
2016-10-07 18:46:30 -07:00
signalfd.c
splice.c
fs: prevent page refcount overflow in pipe_buf_get
2019-06-11 12:22:45 +02:00
stack.c
stat.c
ufs: restore maintaining ->i_blocks
2017-06-14 15:06:01 +02:00
statfs.c
super.c
fs: don't scan the inode cache before SB_BORN is set
2019-02-06 17:33:29 +01:00
sync.c
timerfd.c
timerfd: Protect the might cancel mechanism proper
2017-05-08 07:47:54 +02:00
userfaultfd.c
userfaultfd_release: always remove uffd flags and clear vm_userfaultfd_ctx
2019-09-06 10:19:37 +02:00
utimes.c
Merge remote-tracking branch 'jk/vfs' into work.misc
2016-10-08 11:06:08 -04:00
xattr.c
xattr: break delegations in {set,remove}xattr
2020-08-21 11:01:55 +02:00