xfs: consolidate superblock logging functions
We now have several superblock loggin functions that are identical except for the transaction reservation and whether it shoul dbe a synchronous transaction or not. Consolidate these all into a single function, a single reserveration and a sync flag and call it xfs_sync_sb(). Also, xfs_mod_sb() is not really a modification function - it's the operation of logging the superblock buffer. hence change the name of it to reflect this. Note that we have to change the mp->m_update_flags that are passed around at mount time to a boolean simply to indicate a superblock update is needed. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
4d11a40239
commit
61e63ecb57
15 changed files with 101 additions and 181 deletions
|
@ -1257,13 +1257,13 @@ xfs_fs_remount(
|
|||
* 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);
|
||||
if (mp->m_update_sb) {
|
||||
error = xfs_sync_sb(mp, false);
|
||||
if (error) {
|
||||
xfs_warn(mp, "failed to write sb changes");
|
||||
return error;
|
||||
}
|
||||
mp->m_update_flags = 0;
|
||||
mp->m_update_sb = false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1293,8 +1293,9 @@ xfs_fs_remount(
|
|||
|
||||
/*
|
||||
* Second stage of a freeze. The data is already frozen so we only
|
||||
* need to take care of the metadata. Once that's done write a dummy
|
||||
* record to dirty the log in case of a crash while frozen.
|
||||
* need to take care of the metadata. Once that's done sync the superblock
|
||||
* to the log to dirty it in case of a crash while frozen. This ensures that we
|
||||
* will recover the unlinked inode lists on the next mount.
|
||||
*/
|
||||
STATIC int
|
||||
xfs_fs_freeze(
|
||||
|
@ -1304,7 +1305,7 @@ xfs_fs_freeze(
|
|||
|
||||
xfs_save_resvblks(mp);
|
||||
xfs_quiesce_attr(mp);
|
||||
return xfs_fs_log_dummy(mp);
|
||||
return xfs_sync_sb(mp, true);
|
||||
}
|
||||
|
||||
STATIC int
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue