|
@@ -743,10 +743,14 @@ xfs_log_mount_finish(
|
|
struct xfs_mount *mp)
|
|
struct xfs_mount *mp)
|
|
{
|
|
{
|
|
int error = 0;
|
|
int error = 0;
|
|
|
|
+ bool readonly = (mp->m_flags & XFS_MOUNT_RDONLY);
|
|
|
|
|
|
if (mp->m_flags & XFS_MOUNT_NORECOVERY) {
|
|
if (mp->m_flags & XFS_MOUNT_NORECOVERY) {
|
|
ASSERT(mp->m_flags & XFS_MOUNT_RDONLY);
|
|
ASSERT(mp->m_flags & XFS_MOUNT_RDONLY);
|
|
return 0;
|
|
return 0;
|
|
|
|
+ } else if (readonly) {
|
|
|
|
+ /* Allow unlinked processing to proceed */
|
|
|
|
+ mp->m_flags &= ~XFS_MOUNT_RDONLY;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -764,6 +768,9 @@ xfs_log_mount_finish(
|
|
xfs_log_work_queue(mp);
|
|
xfs_log_work_queue(mp);
|
|
mp->m_super->s_flags &= ~MS_ACTIVE;
|
|
mp->m_super->s_flags &= ~MS_ACTIVE;
|
|
|
|
|
|
|
|
+ if (readonly)
|
|
|
|
+ mp->m_flags |= XFS_MOUNT_RDONLY;
|
|
|
|
+
|
|
return error;
|
|
return error;
|
|
}
|
|
}
|
|
|
|
|