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.... _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs