summaryrefslogtreecommitdiffstats
path: root/fs/ubifs/gc.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-10 11:32:52 +0200
committerIngo Molnar <mingo@elte.hu>2008-09-10 11:32:52 +0200
commite92b4fdacc6a7d8cc7895b81347671d5fcd6c5e1 (patch)
tree4f84567261682d8ec2ad4102bce1ff970a6eed1a /fs/ubifs/gc.c
parentx86: unused variable in dma_alloc_coherent_gfp_flags() (diff)
parentLinux 2.6.27-rc6 (diff)
downloadlinux-e92b4fdacc6a7d8cc7895b81347671d5fcd6c5e1.tar.xz
linux-e92b4fdacc6a7d8cc7895b81347671d5fcd6c5e1.zip
Merge commit 'v2.6.27-rc6' into x86/iommu
Diffstat (limited to 'fs/ubifs/gc.c')
-rw-r--r--fs/ubifs/gc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index d0f3dac29081..13f1019c859f 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -344,6 +344,12 @@ int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp)
if (err)
goto out;
+ /* Allow for races with TNC */
+ c->gced_lnum = lnum;
+ smp_wmb();
+ c->gc_seq += 1;
+ smp_wmb();
+
if (c->gc_lnum == -1) {
c->gc_lnum = lnum;
err = LEB_RETAINED;