Recovery may free inodes that end up on the inode reclaim RCU. If recovery fails, we leak these inodes. The filesystem should be in forced shutdown at this point, so a call to xfs_reclaim_inode is a fast path to freeing the inodes and RCU entries. Signed-off-by: Mark Tinguely <tinguely@xxxxxxx> --- fs/xfs/xfs_log.c | 2 ++ fs/xfs/xfs_mount.c | 1 + 2 files changed, 3 insertions(+) Index: b/fs/xfs/xfs_log.c =================================================================== --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -31,6 +31,7 @@ #include "xfs_log_priv.h" #include "xfs_log_recover.h" #include "xfs_inode.h" +#include "xfs_icache.h" #include "xfs_trace.h" #include "xfs_fsops.h" #include "xfs_cksum.h" @@ -720,6 +721,7 @@ xfs_log_mount( return 0; out_destroy_ail: + xfs_reclaim_inodes(mp, SYNC_WAIT); xfs_trans_ail_destroy(mp); out_free_log: xlog_dealloc_log(mp->m_log); Index: b/fs/xfs/xfs_mount.c =================================================================== --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -980,6 +980,7 @@ xfs_mountfs( out_log_dealloc: xfs_log_unmount(mp); out_fail_wait: + xfs_reclaim_inodes(mp, SYNC_WAIT); if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) xfs_wait_buftarg(mp->m_logdev_targp); xfs_wait_buftarg(mp->m_ddev_targp); _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs