diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-15 03:42:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-15 03:42:11 -0500 |
commit | 2e67c56248b776c0a546925c796cdb167ee4d7a0 (patch) | |
tree | 1532ff3d2a452ed52b732fba9878846494e863e1 /fs/nilfs2/segment.c | |
parent | 1a60864fc1c3b268a921549bcfc707c98083260b (diff) | |
parent | 74e72f894d56eb9d2e1218530c658e7d297e002b (diff) |
Merge branch 'akpm' (incoming from Andrew)
Merge patches from Andrew Morton:
"Six fixes"
* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
lib/percpu_counter.c: fix __percpu_counter_add()
crash_dump: fix compilation error (on MIPS at least)
mm: fix crash when using XFS on loopback
MIPS: fix blast_icache32 on loongson2
MIPS: fix case mismatch in local_r4k_flush_icache_range()
nilfs2: fix segctor bug that causes file system corruption
Diffstat (limited to 'fs/nilfs2/segment.c')
-rw-r--r-- | fs/nilfs2/segment.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 9f6b486b6c01..a1a191634abc 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -1440,17 +1440,19 @@ static int nilfs_segctor_collect(struct nilfs_sc_info *sci, | |||
1440 | 1440 | ||
1441 | nilfs_clear_logs(&sci->sc_segbufs); | 1441 | nilfs_clear_logs(&sci->sc_segbufs); |
1442 | 1442 | ||
1443 | err = nilfs_segctor_extend_segments(sci, nilfs, nadd); | ||
1444 | if (unlikely(err)) | ||
1445 | return err; | ||
1446 | |||
1447 | if (sci->sc_stage.flags & NILFS_CF_SUFREED) { | 1443 | if (sci->sc_stage.flags & NILFS_CF_SUFREED) { |
1448 | err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, | 1444 | err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, |
1449 | sci->sc_freesegs, | 1445 | sci->sc_freesegs, |
1450 | sci->sc_nfreesegs, | 1446 | sci->sc_nfreesegs, |
1451 | NULL); | 1447 | NULL); |
1452 | WARN_ON(err); /* do not happen */ | 1448 | WARN_ON(err); /* do not happen */ |
1449 | sci->sc_stage.flags &= ~NILFS_CF_SUFREED; | ||
1453 | } | 1450 | } |
1451 | |||
1452 | err = nilfs_segctor_extend_segments(sci, nilfs, nadd); | ||
1453 | if (unlikely(err)) | ||
1454 | return err; | ||
1455 | |||
1454 | nadd = min_t(int, nadd << 1, SC_MAX_SEGDELTA); | 1456 | nadd = min_t(int, nadd << 1, SC_MAX_SEGDELTA); |
1455 | sci->sc_stage = prev_stage; | 1457 | sci->sc_stage = prev_stage; |
1456 | } | 1458 | } |