aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ubifs/gc.c
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2010-08-04 03:14:47 -0400
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2010-08-30 03:19:06 -0400
commit5ffef88ffeb730e1bf2da56a39a55e03d57a66c9 (patch)
treea524f5806930d593d1f38f29f6a3e28948f8e851 /fs/ubifs/gc.c
parent2bfc96a127bc1cc94d26bfaa40159966064f9c8c (diff)
UBIFS: switch to RO mode after synchronizing
In 'ubifs_garbage_collect()' on error path, we first switch to R/O mode, and then synchronize write-buffers (to make sure no data are lost). But the GC write-buffer synchronization will fail, because we are already in R/O mode. This patch re-orders this and makes sure we first synchronize the write-buffer, and then switch to R/O mode. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'fs/ubifs/gc.c')
-rw-r--r--fs/ubifs/gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index 918d1582ca05..f89a422ca395 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -774,8 +774,8 @@ out_unlock:
774out: 774out:
775 ubifs_assert(ret < 0); 775 ubifs_assert(ret < 0);
776 ubifs_assert(ret != -ENOSPC && ret != -EAGAIN); 776 ubifs_assert(ret != -ENOSPC && ret != -EAGAIN);
777 ubifs_ro_mode(c, ret);
778 ubifs_wbuf_sync_nolock(wbuf); 777 ubifs_wbuf_sync_nolock(wbuf);
778 ubifs_ro_mode(c, ret);
779 mutex_unlock(&wbuf->io_mutex); 779 mutex_unlock(&wbuf->io_mutex);
780 ubifs_return_leb(c, lp.lnum); 780 ubifs_return_leb(c, lp.lnum);
781 return ret; 781 return ret;