• Linus Torvalds's avatar
    Merge tag 'xfs-for-linus-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 661b99e9
    Linus Torvalds authored
    Pull xfs fixes from Dave Chinner:
     "This update fixes a warning in the new pagecache_isize_extended() and
      updates some related comments, another fix for zero-range
      misbehaviour, and an unforntuately large set of fixes for regressions
      in the bulkstat code.
    
      The bulkstat fixes are large but necessary.  I wouldn't normally push
      such a rework for a -rcX update, but right now xfsdump can silently
      create incomplete dumps on 3.17 and it's possible that even xfsrestore
      won't notice that the dumps were incomplete.  Hence we need to get
      this update into 3.17-stable kernels ASAP.
    
      In more detail, the refactoring work I committed in 3.17 has exposed a
      major hole in our QA coverage.  With both xfsdump (the major user of
      bulkstat) and xfsrestore silently ignoring missing files in the
      dump/restore process, incomplete dumps were going unnoticed if they
      were being triggered.  Many of the dump/restore filesets were so small
      that they didn't evenhave a chance of triggering the loop iteration
      bugs we introduced in 3.17, so we didn't exercise the code
      sufficiently, either.
    
      We have already taken steps to improve QA coverage in xfstests to
      avoid this happening again, and I've done a lot of manual verification
      of dump/restore on very large data sets (tens of millions of inodes)
      of the past week to verify this patch set results in bulkstat behaving
      the same way as it does on 3.16.
    
      Unfortunately, the fixes are not exactly simple - in tracking down the
      problem historic API warts were discovered (e.g xfsdump has been
      working around a 20 year old bug in the bulkstat API for the past 10
      years) and so that complicated the process of diagnosing and fixing
      the problems.  i.e. we had to fix bugs in the code as well as
      discover and re-introduce the userspace visible API bugs that we
      unwittingly "fixed" in 3.17 that xfsdump relied on to work correctly.
    
      Summary:
    
       - incorrect warnings about i_mutex locking in pagecache_isize_extended()
         and updates comments to match expected locking
       - another zero-range bug fix for stray file size updates
       - a bunch of fixes for regression in the bulkstat code introduced in
         3.17"
    
    * tag 'xfs-for-linus-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
      xfs: track bulkstat progress by agino
      xfs: bulkstat error handling is broken
      xfs: bulkstat main loop logic is a mess
      xfs: bulkstat chunk-formatter has issues
      xfs: bulkstat chunk formatting cursor is broken
      xfs: bulkstat btree walk doesn't terminate
      mm: Fix comment before truncate_setsize()
      xfs: rework zero range to prevent invalid i_size updates
      mm: Remove false WARN_ON from pagecache_isize_extended()
      xfs: Check error during inode btree iteration in xfs_bulkstat()
      xfs: bulkstat doesn't release AGI buffer on error
    661b99e9
Name
Last commit
Last update
..
9p Loading commit data...
adfs Loading commit data...
affs Loading commit data...
afs Loading commit data...
autofs4 Loading commit data...
befs Loading commit data...
bfs Loading commit data...
btrfs Loading commit data...
cachefiles Loading commit data...
ceph Loading commit data...
cifs Loading commit data...
coda Loading commit data...
configfs Loading commit data...
cramfs Loading commit data...
debugfs Loading commit data...
devpts Loading commit data...
dlm Loading commit data...
ecryptfs Loading commit data...
efivarfs Loading commit data...
efs Loading commit data...
exofs Loading commit data...
exportfs Loading commit data...
ext2 Loading commit data...
ext3 Loading commit data...
ext4 Loading commit data...
f2fs Loading commit data...
fat Loading commit data...
freevxfs Loading commit data...
fscache Loading commit data...
fuse Loading commit data...
gfs2 Loading commit data...
hfs Loading commit data...
hfsplus Loading commit data...
hostfs Loading commit data...
hpfs Loading commit data...
hppfs Loading commit data...
hugetlbfs Loading commit data...
isofs Loading commit data...
jbd Loading commit data...
jbd2 Loading commit data...
jffs2 Loading commit data...
jfs Loading commit data...
kernfs Loading commit data...
lockd Loading commit data...
logfs Loading commit data...
minix Loading commit data...
ncpfs Loading commit data...
nfs Loading commit data...
nfs_common Loading commit data...
nfsd Loading commit data...
nilfs2 Loading commit data...
nls Loading commit data...
notify Loading commit data...
ntfs Loading commit data...
ocfs2 Loading commit data...
omfs Loading commit data...
openpromfs Loading commit data...
overlayfs Loading commit data...
proc Loading commit data...
pstore Loading commit data...
qnx4 Loading commit data...
qnx6 Loading commit data...
quota Loading commit data...
ramfs Loading commit data...
reiserfs Loading commit data...
romfs Loading commit data...
squashfs Loading commit data...
sysfs Loading commit data...
sysv Loading commit data...
ubifs Loading commit data...
udf Loading commit data...
ufs Loading commit data...
xfs Loading commit data...
Kconfig Loading commit data...
Kconfig.binfmt Loading commit data...
Makefile Loading commit data...
aio.c Loading commit data...
anon_inodes.c Loading commit data...
attr.c Loading commit data...
bad_inode.c Loading commit data...
binfmt_aout.c Loading commit data...
binfmt_elf.c Loading commit data...
binfmt_elf_fdpic.c Loading commit data...
binfmt_em86.c Loading commit data...
binfmt_flat.c Loading commit data...
binfmt_misc.c Loading commit data...
binfmt_script.c Loading commit data...
binfmt_som.c Loading commit data...
block_dev.c Loading commit data...
buffer.c Loading commit data...
char_dev.c Loading commit data...
compat.c Loading commit data...
compat_binfmt_elf.c Loading commit data...
compat_ioctl.c Loading commit data...
coredump.c Loading commit data...
dcache.c Loading commit data...
dcookies.c Loading commit data...
direct-io.c Loading commit data...
drop_caches.c Loading commit data...
eventfd.c Loading commit data...
eventpoll.c Loading commit data...
exec.c Loading commit data...
fcntl.c Loading commit data...
fhandle.c Loading commit data...
file.c Loading commit data...
file_table.c Loading commit data...
filesystems.c Loading commit data...
fs-writeback.c Loading commit data...
fs_pin.c Loading commit data...
fs_struct.c Loading commit data...
inode.c Loading commit data...
internal.h Loading commit data...
ioctl.c Loading commit data...
libfs.c Loading commit data...
locks.c Loading commit data...
mbcache.c Loading commit data...
mount.h Loading commit data...
mpage.c Loading commit data...
namei.c Loading commit data...
namespace.c Loading commit data...
no-block.c Loading commit data...
open.c Loading commit data...
pipe.c Loading commit data...
pnode.c Loading commit data...
pnode.h Loading commit data...
posix_acl.c Loading commit data...
proc_namespace.c Loading commit data...
read_write.c Loading commit data...
readdir.c Loading commit data...
select.c Loading commit data...
seq_file.c Loading commit data...
signalfd.c Loading commit data...
splice.c Loading commit data...
stack.c Loading commit data...
stat.c Loading commit data...
statfs.c Loading commit data...
super.c Loading commit data...
sync.c Loading commit data...
timerfd.c Loading commit data...
utimes.c Loading commit data...
xattr.c Loading commit data...