Zhang Xiaoxu
7e2632caa9
cifs/smb3: Fix data inconsistent when zero file range
...
[ Upstream commit 6b69040247e14b43419a520f841f2b3052833df9 ]
CIFS implements the fallocate(FALLOC_FL_ZERO_RANGE) with send SMB
ioctl(FSCTL_SET_ZERO_DATA) to server. It just set the range of the
remote file to zero, but local page cache not update, then the data
inconsistent with server, which leads the xfstest generic/008 failed.
So we need to remove the local page caches before send SMB
ioctl(FSCTL_SET_ZERO_DATA) to server. After next read, it will
re-cache it.
Fixes: 30175628bf ("[SMB3] Enable fallocate -z support for SMB3 mounts")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Cc: stable@vger.kernel.org # v3.17
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-06-30 15:38:42 -04:00
..
9p
9p: avoid attaching writeback_fid on mmap with type PRIVATE
2019-10-17 13:42:10 -07:00
adfs
fs/adfs: super: fix use-after-free bug
2019-08-06 18:29:35 +02:00
affs
affs_lookup(): close a race with affs_remove_link()
2018-05-30 07:50:16 +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: fix error handling when submitting direct I/O bio
2020-06-20 10:24:19 +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 double unlock in handle_cap_export()
2020-05-27 16:41:48 +02:00
cifs
cifs/smb3: Fix data inconsistent when zero file range
2020-06-30 15:38:42 -04: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: don't set policy for a dead directory
2019-07-21 09:05:59 +02: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
dlm: remove BUG() before panic()
2020-06-30 15:38:25 -04:00
ecryptfs
ecryptfs: Fix up bad backport of fe2e082f5da5b4a0a92ae32978f81507ef37ec66
2020-03-11 07:53:06 +01:00
efivarfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07: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 debug reference to ext2_xattr_cache
2020-04-24 07:59:14 +02:00
ext4
ext4: fix partial cluster initialization when splitting extent
2020-06-30 15:38:31 -04:00
f2fs
f2fs: fix potential overflow
2020-01-23 08:19:37 +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 possibly missed wake-up after abort
2020-05-02 17:23:15 +02: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: improve comments about freeing data buffers whose page mapping is NULL
2020-04-24 07:59:03 +02:00
jffs2
jffs2: fix use-after-free on symlink traversal
2019-05-08 07:19:09 +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
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
ncpfs
ncpfs: fix build warning of strncpy
2019-03-13 14:04:52 -07:00
nfs
NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
2020-06-30 15:38:28 -04: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
fs: remove the never implemented aio_fsync file operation
2016-10-30 13:09:42 -04:00
ocfs2
ocfs2: no need try to truncate file beyond i_size
2020-04-24 07:58:58 +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
fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
2020-01-04 13:40:50 +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: prevent NULL pointer dereference in reiserfs_insert_item()
2020-02-28 15:42:41 +01:00
romfs
romfs: use different way to generate fsid for BLOCK or MTD
2017-06-17 06:41:56 +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 deadlock in concurrent bulk-read and writepage
2020-02-14 16:31:00 -05:00
udf
udf: Fix free space reporting for metadata and virtual partitions
2020-02-28 15:42:30 +01:00
ufs
ufs: fix braino in ufs_get_inode_gid() for solaris UFS flavour
2019-05-25 18:26:56 +02:00
xfs
xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
2020-05-02 17:23:16 +02: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
block: Fix use-after-free in blkdev_get()
2020-06-30 15:38:30 -04:00
buffer.c
fs: fix guard_bio_eod to check for real EOD errors
2019-04-05 22:29:08 +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
fs/epoll: drop ovflist branch prediction
2019-02-12 19:44:59 +01: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
cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages
2020-06-20 10:24:09 +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
sysfs: Do not return POSIX ACL xattrs via listxattr
2018-10-10 08:53:22 +02:00