summaryrefslogtreecommitdiff
path: root/fs/ubifs/gc.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2008-09-10 05:36:13 +0400
committerPaul Mackerras <paulus@samba.org>2008-09-10 05:36:13 +0400
commit7e392f8c29ee045c6a29d50193d2fb10712eceb0 (patch)
treec84097fe644c50c82f087ab7fa2d75167b8c0e16 /fs/ubifs/gc.c
parent7713fef06517d216f96ee7c8ad750e72bc08d38f (diff)
parent93811d94f7e9bcfeed7d6ba75ea5d9c80a70ab95 (diff)
downloadlinux-7e392f8c29ee045c6a29d50193d2fb10712eceb0.tar.xz
Merge branch 'linux-2.6'
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;