From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Artem Bityutskiy <artem.bityutskiy@linux.intel.com>,
Mark Jackson <mpfj-list@mimc.co.uk>
Subject: [ 02/19] UBIFS: make space fixup work in the remount case
Date: Wed, 10 Apr 2013 15:50:25 -0700 [thread overview]
Message-ID: <20130410225027.073747912@linuxfoundation.org> (raw)
In-Reply-To: <20130410225026.833809117@linuxfoundation.org>
3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
commit 67e753ca41782913d805ff4a8a2b0f60b26b7915 upstream.
The UBIFS space fixup is a useful feature which allows to fixup the "broken"
flash space at the time of the first mount. The "broken" space is usually the
result of using a "dumb" industrial flasher which is not able to skip empty
NAND pages and just writes all 0xFFs to the empty space, which has grave
side-effects for UBIFS when UBIFS trise to write useful data to those empty
pages.
The fix-up feature works roughly like this:
1. mkfs.ubifs sets the fixup flag in UBIFS superblock when creating the image
(see -F option)
2. when the file-system is mounted for the first time, UBIFS notices the fixup
flag and re-writes the entire media atomically, which may take really a lot
of time.
3. UBIFS clears the fixup flag in the superblock.
This works fine when the file system is mounted R/W for the very first time.
But it did not really work in the case when we first mount the file-system R/O,
and then re-mount R/W. The reason was that we started the fixup procedure too
late, which we cannot really do because we have to fixup the space before it
starts being used.
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Reported-by: Mark Jackson <mpfj-list@mimc.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ubifs/super.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1583,6 +1583,12 @@ static int ubifs_remount_rw(struct ubifs
c->remounting_rw = 1;
c->ro_mount = 0;
+ if (c->space_fixup) {
+ err = ubifs_fixup_free_space(c);
+ if (err)
+ return err;
+ }
+
err = check_free_space(c);
if (err)
goto out;
@@ -1699,12 +1705,6 @@ static int ubifs_remount_rw(struct ubifs
err = dbg_check_space_info(c);
}
- if (c->space_fixup) {
- err = ubifs_fixup_free_space(c);
- if (err)
- goto out;
- }
-
mutex_unlock(&c->umount_mutex);
return err;
next prev parent reply other threads:[~2013-04-10 22:50 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-10 22:50 [ 00/19] 3.0.73-stable review Greg Kroah-Hartman
2013-04-10 22:50 ` [ 01/19] ASoC: dma-sh7760: Fix compile error Greg Kroah-Hartman
2013-04-10 22:50 ` Greg Kroah-Hartman [this message]
2013-04-10 22:50 ` [ 03/19] reiserfs: Fix warning and inode leak when deleting inode with xattrs Greg Kroah-Hartman
2013-04-11 7:33 ` Pawel Zawora
2013-04-11 19:04 ` Greg Kroah-Hartman
2013-04-10 22:50 ` [ 04/19] ALSA: hda - bug fix on return value when getting HDMI ELD info Greg Kroah-Hartman
2013-04-10 22:50 ` [ 05/19] ALSA: hda - fix typo in proc output Greg Kroah-Hartman
2013-04-10 22:50 ` [ 06/19] ext4: fixup 64-bit divides in 3.0-stable backport of upstream fix Greg Kroah-Hartman
2013-04-10 22:50 ` [ 07/19] libata: Use integer return value for atapi_command_packet_set Greg Kroah-Hartman
2013-04-10 22:50 ` [ 08/19] libata: Set max sector to 65535 for Slimtype DVD A DS8A8SH drive Greg Kroah-Hartman
2013-04-10 22:50 ` [ 09/19] alpha: Add irongate_io to PCI bus resources Greg Kroah-Hartman
2013-04-10 22:50 ` [ 10/19] ftrace: Consistently restore trace function on sysctl enabling Greg Kroah-Hartman
2013-04-10 22:50 ` [ 11/19] powerpc: pSeries_lpar_hpte_remove fails from Adjunct partition being performed before the ANDCOND test Greg Kroah-Hartman
2013-04-10 22:50 ` [ 12/19] spinlocks and preemption points need to be at least compiler barriers Greg Kroah-Hartman
2013-04-10 22:50 ` [ 13/19] crypto: gcm - fix assumption that assoc has one segment Greg Kroah-Hartman
2013-04-10 22:50 ` Greg Kroah-Hartman
2013-04-10 22:50 ` [ 14/19] block: avoid using uninitialized value in from queue_var_store Greg Kroah-Hartman
2013-04-10 22:50 ` [ 15/19] thermal: return an error on failure to register thermal class Greg Kroah-Hartman
2013-04-10 22:50 ` [ 16/19] mm: prevent mmap_cache race in find_vma() Greg Kroah-Hartman
2013-04-10 22:50 ` [ 17/19] x86-32, mm: Rip out x86_32 NUMA remapping code Greg Kroah-Hartman
2013-04-10 22:50 ` [ 18/19] Revert "mwifiex: cancel cmd timer and free curr_cmd in shutdown process Greg Kroah-Hartman
2013-04-10 22:50 ` [ 19/19] rt2x00: rt2x00pci_regbusy_read() - only print register access failure once Greg Kroah-Hartman
2013-04-10 22:50 ` Greg Kroah-Hartman
2013-04-11 16:29 ` [ 00/19] 3.0.73-stable review Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130410225027.073747912@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=artem.bityutskiy@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpfj-list@mimc.co.uk \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.