[PATCH 00/13] xfs: remove the xfssyncd mess
Dave Chinner
david at fromorbit.com
Thu Aug 30 05:57:29 CDT 2012
Folks,
Here's the patchset I talked about here:
http://oss.sgi.com/archives/xfs/2012-06/msg00064.html
to sort out the syncd start/stop unmount race/panic mess once and
for all. I've only smoke tested it so far, but it hasn't let any out
yet.
The overall diffstat is:
fs/xfs/Makefile | 3 +-
fs/xfs/{xfs_sync.c => xfs_icache.c} | 694 +++++++++++++++++++++-------------
fs/xfs/{xfs_sync.h => xfs_icache.h} | 14 +-
fs/xfs/xfs_iget.c | 705 -----------------------------------
fs/xfs/xfs_inode.c | 250 +++++++++++++
fs/xfs/xfs_inode.h | 10 +-
fs/xfs/xfs_iomap.c | 3 +-
fs/xfs/xfs_log.c | 83 ++++-
fs/xfs/xfs_log.h | 4 +
fs/xfs/xfs_log_priv.h | 1 +
fs/xfs/xfs_mount.c | 32 +-
fs/xfs/xfs_mount.h | 6 +-
fs/xfs/xfs_qm_syscalls.c | 1 +
fs/xfs/xfs_super.c | 93 +++--
fs/xfs/xfs_vnodeops.c | 3 +-
15 files changed, 840 insertions(+), 1062 deletions(-)
So it removes a couple of hundred lines of code whilst still
providing exactly the same functionality and fixing some bugs.
e.g. xfs_attr_quiesce() isn't waiting for metadata IO completion
before writing the unmount record, which explains why occasionally
freeze results in a log with more than just an unmount and dummy
record in it.
Comments?
Cheers,
Dave.
PS: it just let the smoke out caused by the
writeback_inodes_sb_if_idle() change in xfs_create(). I think I used
the wrong inode to get the superblock....
More information about the xfs
mailing list