[GIT,PULL] UBIFS fix for 3.6-rc8

Message ID 1342769037.4060.18.camel@sauron.fi.intel.com
State Accepted
Headers show


git://git.infradead.org/linux-ubifs.git tags/upstream-3.5-rc8

Commit Message

Artem Bityutskiy July 20, 2012, 7:23 a.m.
The following changes since commit bd0a521e88aa7a06ae7aabaed7ae196ed4ad867a:

  Linux 3.5-rc6 (2012-07-07 17:23:56 -0700)

are available in the git repository at:

  git://git.infradead.org/linux-ubifs.git tags/upstream-3.5-rc8

for you to fetch changes up to c6727932cfdb13501108b16c38463c09d5ec7a74:

  UBIFS: fix a bug in empty space fix-up (2012-07-20 10:13:27 +0300)

Fix a bug in UBIFS free space fix-up reported already twice recently:


and we finally have the fix. I am quite confident the fix is correct
because I could reproduce the problem with nandsim and verify the
fix. It was also verified by Iwo (the reporter).

I am also confident that this is OK to merge the fix so late because
this patch affects only the fixup functionality, which is not used by
most users.

Artem Bityutskiy (1):
      UBIFS: fix a bug in empty space fix-up

 fs/ubifs/sb.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)


diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
index ef3d1ba..15e2fc5 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
@@ -718,8 +718,12 @@  static int fixup_free_space(struct ubifs_info *c)
                lnum = ubifs_next_log_lnum(c, lnum);
-       /* Fixup the current log head */
-       err = fixup_leb(c, c->lhead_lnum, c->lhead_offs);
+       /*
+        * Fixup the log head which contains the only a CS node at the
+        * beginning.
+        */
+       err = fixup_leb(c, c->lhead_lnum,
+                       ALIGN(UBIFS_CS_NODE_SZ, c->min_io_size));
        if (err)
                goto out;