diff options
author | Mark Brown <broonie@linaro.org> | 2014-01-27 14:57:42 +0000 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-01-27 14:57:42 +0000 |
commit | 0f3550b731084e2790caf1d73bfe0e3a454aafae (patch) | |
tree | 96e387b7ae0da48c3ac13dd5ce922c983bc5debb /fs/nilfs2/segment.c | |
parent | b7e46105cae50b29ac0b08e2e3c04b5ca34bc2a5 (diff) | |
parent | 51ad557e21b8713f3abc286c14bca4ed01b8e56d (diff) |
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-androidlsk-android-14.01
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 cbd66188a28b..958a5b57ed4a 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, nilfs_clear_logs(&sci->sc_segbufs); - err = nilfs_segctor_extend_segments(sci, nilfs, nadd); - if (unlikely(err)) - return err; - if (sci->sc_stage.flags & NILFS_CF_SUFREED) { err = nilfs_sufile_cancel_freev(nilfs->ns_sufile, sci->sc_freesegs, sci->sc_nfreesegs, NULL); WARN_ON(err); /* do not happen */ + sci->sc_stage.flags &= ~NILFS_CF_SUFREED; } + + err = nilfs_segctor_extend_segments(sci, nilfs, nadd); + if (unlikely(err)) + return err; + nadd = min_t(int, nadd << 1, SC_MAX_SEGDELTA); sci->sc_stage = prev_stage; } |