Messages in this thread Patch in this message | | | From | Ben Gardiner <> | Subject | [PATCH 3/3] UBIFS: fix-up free space earlier | Date | Mon, 30 May 2011 14:56:16 -0400 |
| |
The free space fixup is currently initiated during mount after the call to ubifs_write_master() which results in a write to PEBs; this has been observed with the patch 'assert no fixup when writing a node' applied:
Move the free space fixup on mount to before the calls to ubifs_recover_inl_heads() and ubifs_write_master(). This results in no assertions with the previously mentioned patch applied.
Signed-off-by: Ben Gardiner <bengardiner@nanometrics> CC: Matthew L. Creech <mlcreech@gmail.com>
--- fs/ubifs/super.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 89c8d33..531b9b7 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -1285,6 +1285,12 @@ static int mount_ubifs(struct ubifs_info *c) if (err) goto out_lpt; + if (!c->ro_mount && c->space_fixup) { + err = ubifs_fixup_free_space(c); + if (err) + goto out_infos; + } + if ((c->mst_node->flags & cpu_to_le32(UBIFS_MST_DIRTY)) != 0) { ubifs_msg("recovery needed"); c->need_recovery = 1; @@ -1396,12 +1402,6 @@ static int mount_ubifs(struct ubifs_info *c) } else ubifs_assert(c->lst.taken_empty_lebs > 0); - if (!c->ro_mount && c->space_fixup) { - err = ubifs_fixup_free_space(c); - if (err) - goto out_infos; - } - err = dbg_check_filesystem(c); if (err) goto out_infos; -- 1.7.4.1
| |