diff options
Diffstat (limited to 'fs/xfs/xfs_log.c')
-rw-r--r-- | fs/xfs/xfs_log.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 0053bcf2b10a..4ebd0bafc914 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c | |||
@@ -749,9 +749,20 @@ xfs_log_mount_finish( | |||
749 | return 0; | 749 | return 0; |
750 | } | 750 | } |
751 | 751 | ||
752 | /* | ||
753 | * During the second phase of log recovery, we need iget and | ||
754 | * iput to behave like they do for an active filesystem. | ||
755 | * xfs_fs_drop_inode needs to be able to prevent the deletion | ||
756 | * of inodes before we're done replaying log items on those | ||
757 | * inodes. Turn it off immediately after recovery finishes | ||
758 | * so that we don't leak the quota inodes if subsequent mount | ||
759 | * activities fail. | ||
760 | */ | ||
761 | mp->m_super->s_flags |= MS_ACTIVE; | ||
752 | error = xlog_recover_finish(mp->m_log); | 762 | error = xlog_recover_finish(mp->m_log); |
753 | if (!error) | 763 | if (!error) |
754 | xfs_log_work_queue(mp); | 764 | xfs_log_work_queue(mp); |
765 | mp->m_super->s_flags &= ~MS_ACTIVE; | ||
755 | 766 | ||
756 | return error; | 767 | return error; |
757 | } | 768 | } |