xfs: fix bad_features2 fixups for the root filesystem
Currently the bad_features2 fixup and the alignment updates in the superblock are skipped if we mount a filesystem read-only. But for the root filesystem the typical case is to mount read-only first and only later remount writeable so we'll never perform this update at all. It's not a big problem but means the logs of people needing the fixup get spammed at every boot because they never happen on disk. Reported-by: Arkadiusz Miskiewicz <arekm@maven.pl> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
98b8c7a0c4
commit
7884bc8617
3 changed files with 32 additions and 14 deletions
|
@ -1197,6 +1197,7 @@ xfs_fs_remount(
|
|||
struct xfs_mount *mp = XFS_M(sb);
|
||||
substring_t args[MAX_OPT_ARGS];
|
||||
char *p;
|
||||
int error;
|
||||
|
||||
while ((p = strsep(&options, ",")) != NULL) {
|
||||
int token;
|
||||
|
@ -1247,11 +1248,25 @@ xfs_fs_remount(
|
|||
}
|
||||
}
|
||||
|
||||
/* rw/ro -> rw */
|
||||
/* ro -> rw */
|
||||
if ((mp->m_flags & XFS_MOUNT_RDONLY) && !(*flags & MS_RDONLY)) {
|
||||
mp->m_flags &= ~XFS_MOUNT_RDONLY;
|
||||
if (mp->m_flags & XFS_MOUNT_BARRIER)
|
||||
xfs_mountfs_check_barriers(mp);
|
||||
|
||||
/*
|
||||
* If this is the first remount to writeable state we
|
||||
* might have some superblock changes to update.
|
||||
*/
|
||||
if (mp->m_update_flags) {
|
||||
error = xfs_mount_log_sb(mp, mp->m_update_flags);
|
||||
if (error) {
|
||||
cmn_err(CE_WARN,
|
||||
"XFS: failed to write sb changes");
|
||||
return error;
|
||||
}
|
||||
mp->m_update_flags = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* rw -> ro */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue