xfs
[Top] [All Lists]

[PATCH 00/13] xfs: remove the xfssyncd mess

To: xfs@xxxxxxxxxxx
Subject: [PATCH 00/13] xfs: remove the xfssyncd mess
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 30 Aug 2012 20:57:29 +1000
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....

<Prev in Thread] Current Thread [Next in Thread>