linux_dsm_epyc7002/fs/xfs
Dave Chinner bf4a5af20d xfs: bulkstat chunk formatting cursor is broken
The xfs_bulkstat_agichunk formatting cursor takes buffer values from
the main loop and passes them via the structure to the chunk
formatter, and the writes the changed values back into the main loop
local variables. Unfortunately, this complex dance is full of corner
cases that aren't handled correctly.

The biggest problem is that it is double handling the information in
both the main loop and the chunk formatting function, leading to
inconsistent updates and endless loops where progress is not made.

To fix this, push the struct xfs_bulkstat_agichunk outwards to be
the primary holder of user buffer information. this removes the
double handling in the main loop.

Also, pass the last inode processed by the chunk formatter as a
separate parameter as it purely an output variable and is not
related to the user buffer consumption cursor.

Finally, the chunk formatting code is not shared by anyone, so make
it local to xfs_itable.c.

cc: <stable@vger.kernel.org> # 3.17
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-11-07 08:30:30 +11:00
..
libxfs Merge branch 'xfs-misc-fixes-for-3.18-3' into for-next 2014-10-13 10:22:45 +11:00
Kconfig xfs: require 64-bit sector_t 2014-07-30 09:12:05 +10:00
kmem.c xfs: kill time.h 2014-10-02 09:18:13 +10:00
kmem.h
Makefile
mrlock.h
uuid.c
uuid.h
xfs_acl.c
xfs_acl.h
xfs_aops.c Merge branch 'xfs-misc-fixes-for-3.18-3' into for-next 2014-10-13 10:22:45 +11:00
xfs_aops.h
xfs_attr_inactive.c
xfs_attr_list.c
xfs_attr.h
xfs_bit.c
xfs_bmap_util.c xfs: rework zero range to prevent invalid i_size updates 2014-10-30 10:35:11 +11:00
xfs_bmap_util.h
xfs_buf_item.c Merge branch 'xfs-buf-iosubmit' into for-next 2014-10-02 09:11:14 +10:00
xfs_buf_item.h
xfs_buf.c Merge branch 'for-3.18/core' of git://git.kernel.dk/linux-block 2014-10-18 11:53:51 -07:00
xfs_buf.h xfs: check xfs_buf_read_uncached returns correctly 2014-10-02 09:05:32 +10:00
xfs_dir2_readdir.c
xfs_discard.c
xfs_discard.h
xfs_dquot_item.c
xfs_dquot_item.h
xfs_dquot.c xfs: quotacheck leaves dquot buffers without verifiers 2014-08-04 12:43:26 +10:00
xfs_dquot.h xfs: run an eofblocks scan on ENOSPC/EDQUOT 2014-07-24 19:49:28 +10:00
xfs_error.c
xfs_error.h
xfs_export.c
xfs_export.h
xfs_extent_busy.c
xfs_extent_busy.h
xfs_extfree_item.c
xfs_extfree_item.h
xfs_file.c Merge branch 'xfs-misc-fixes-for-3.18-1' into for-next 2014-09-09 13:25:31 +10:00
xfs_filestream.c
xfs_filestream.h
xfs_fs.h Merge branch 'xfs-misc-fixes-3.17-1' into for-next 2014-08-04 13:54:14 +10:00
xfs_fsops.c xfs: check xfs_buf_read_uncached returns correctly 2014-10-02 09:05:32 +10:00
xfs_fsops.h
xfs_globals.c xfs: export log_recovery_delay to delay mount time log recovery 2014-09-09 11:56:13 +10:00
xfs_icache.c xfs: remove second xfs_quota.h inclusion in xfs_icache.c 2014-09-23 16:05:55 +10:00
xfs_icache.h xfs: run an eofblocks scan on ENOSPC/EDQUOT 2014-07-24 19:49:28 +10:00
xfs_icreate_item.c
xfs_icreate_item.h
xfs_inode_item.c xfs: xfs_iflush_done checks the wrong log item callback 2014-10-03 09:09:50 +10:00
xfs_inode_item.h
xfs_inode.c Merge branch 'xfs-misc-fixes-for-3.18-3' into for-next 2014-10-13 10:22:45 +11:00
xfs_inode.h xfs: check for inode size overflow in xfs_new_eof() 2014-10-02 09:21:53 +10:00
xfs_ioctl32.c xfs: compat_xfs_bstat does not have forkoff 2014-10-02 09:17:58 +10:00
xfs_ioctl32.h xfs: compat_xfs_bstat does not have forkoff 2014-10-02 09:17:58 +10:00
xfs_ioctl.c Merge branch 'xfs-misc-fixes-for-3.18-3' into for-next 2014-10-13 10:22:45 +11:00
xfs_ioctl.h
xfs_iomap.c xfs: check for null dquot in xfs_quota_calc_throttle() 2014-10-02 09:27:09 +10:00
xfs_iomap.h
xfs_iops.c xfs: flush entire last page of old EOF on truncate up 2014-09-23 22:55:00 +10:00
xfs_iops.h
xfs_itable.c xfs: bulkstat chunk formatting cursor is broken 2014-11-07 08:30:30 +11:00
xfs_itable.h xfs: bulkstat chunk formatting cursor is broken 2014-11-07 08:30:30 +11:00
xfs_linux.h xfs: kill time.h 2014-10-02 09:18:13 +10:00
xfs_log_cil.c xfs: xlog_cil_force_lsn doesn't always wait correctly 2014-09-23 15:57:59 +10:00
xfs_log_priv.h
xfs_log_recover.c Merge branch 'xfs-buf-iosubmit' into for-next 2014-10-02 09:11:14 +10:00
xfs_log.c xfs: introduce xfs_buf_submit[_wait] 2014-10-02 09:05:14 +10:00
xfs_log.h
xfs_message.c
xfs_message.h
xfs_mount.c Merge branch 'xfs-buf-iosubmit' into for-next 2014-10-02 09:11:14 +10:00
xfs_mount.h
xfs_mru_cache.c xfs: mark all internal workqueues as freezable 2014-09-09 11:44:46 +10:00
xfs_mru_cache.h
xfs_qm_bhv.c
xfs_qm_syscalls.c
xfs_qm.c xfs: xfs_qm_dquot_isolate needs locking annotations for sparse 2014-09-29 10:43:40 +10:00
xfs_qm.h xfs: mark xfs_qm_quotacheck as static 2014-07-24 20:49:57 +10:00
xfs_quota.h
xfs_quotaops.c xfs: fix uflags detection at xfs_fs_rm_xquota 2014-07-24 21:27:17 +10:00
xfs_rtalloc.c Merge branch 'xfs-buf-iosubmit' into for-next 2014-10-02 09:11:14 +10:00
xfs_rtalloc.h xfs: combine xfs_rtmodify_summary and xfs_rtget_summary 2014-09-09 11:58:42 +10:00
xfs_stats.c
xfs_stats.h
xfs_super.c xfs: xfs_kset should be static 2014-09-29 10:46:08 +10:00
xfs_super.h xfs: require 64-bit sector_t 2014-07-30 09:12:05 +10:00
xfs_symlink.c xfs: check resblks before calling xfs_dir_canenter 2014-09-09 11:57:52 +10:00
xfs_symlink.h
xfs_sysctl.c
xfs_sysctl.h xfs: export log_recovery_delay to delay mount time log recovery 2014-09-09 11:56:13 +10:00
xfs_sysfs.c xfs: export log_recovery_delay to delay mount time log recovery 2014-09-09 11:56:13 +10:00
xfs_sysfs.h xfs: add debug sysfs attribute set 2014-09-09 11:52:42 +10:00
xfs_trace.c
xfs_trace.h xfs: introduce xfs_buf_submit[_wait] 2014-10-02 09:05:14 +10:00
xfs_trans_ail.c
xfs_trans_buf.c xfs: introduce xfs_buf_submit[_wait] 2014-10-02 09:05:14 +10:00
xfs_trans_dquot.c
xfs_trans_extfree.c
xfs_trans_inode.c xfs: kill time.h 2014-10-02 09:18:13 +10:00
xfs_trans_priv.h
xfs_trans.c
xfs_trans.h
xfs_types.h xfs: require 64-bit sector_t 2014-07-30 09:12:05 +10:00
xfs_xattr.c
xfs.h