]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/nilfs2/the_nilfs.c
nilfs2: get rid of nilfs_bmap_union
[karo-tx-linux.git] / fs / nilfs2 / the_nilfs.c
index 88c8976c55a9126f32a09aefe6f766a80f43b84c..f2efc8c5be7fbd6a75f7f4773b095ec9c63037d3 100644 (file)
@@ -47,6 +47,16 @@ void nilfs_set_last_segment(struct the_nilfs *nilfs,
        nilfs->ns_last_pseg = start_blocknr;
        nilfs->ns_last_seq = seq;
        nilfs->ns_last_cno = cno;
+
+       if (!nilfs_sb_dirty(nilfs)) {
+               if (nilfs->ns_prev_seq == nilfs->ns_last_seq)
+                       goto stay_cursor;
+
+               set_nilfs_sb_dirty(nilfs);
+       }
+       nilfs->ns_prev_seq = nilfs->ns_last_seq;
+
+ stay_cursor:
        spin_unlock(&nilfs->ns_last_segment_lock);
 }
 
@@ -267,6 +277,7 @@ static int nilfs_store_log_cursor(struct the_nilfs *nilfs,
        nilfs->ns_last_cno = le64_to_cpu(sbp->s_last_cno);
        nilfs->ns_last_seq = le64_to_cpu(sbp->s_last_seq);
 
+       nilfs->ns_prev_seq = nilfs->ns_last_seq;
        nilfs->ns_seg_seq = nilfs->ns_last_seq;
        nilfs->ns_segnum =
                nilfs_get_segnum_of_block(nilfs, nilfs->ns_last_pseg);