nilfs2: move iterator to write log into segment buffer
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Wed, 16 Dec 2009 15:55:40 +0000 (00:55 +0900)
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sat, 13 Feb 2010 03:26:03 +0000 (12:26 +0900)
This moves iterator to submit write requests for a series of logs into
segbuf.c, and hides nilfs_segbuf_write() and nilfs_segbuf_wait() in
the file.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
fs/nilfs2/segbuf.c
fs/nilfs2/segbuf.h
fs/nilfs2/segment.c

index 645c78656aa0e6f95c8e2c2b8dc5d2e7b24b48ea..ab56fe44e377a6025f10a55019ebd4d0b2e29fa9 100644 (file)
@@ -40,6 +40,11 @@ struct nilfs_write_info {
 };
 
 
+static int nilfs_segbuf_write(struct nilfs_segment_buffer *segbuf,
+                             struct the_nilfs *nilfs);
+static int nilfs_segbuf_wait(struct nilfs_segment_buffer *segbuf);
+
+
 static struct kmem_cache *nilfs_segbuf_cachep;
 
 static void nilfs_segbuf_init_once(void *obj)
@@ -302,6 +307,19 @@ void nilfs_truncate_logs(struct list_head *logs,
        }
 }
 
+int nilfs_write_logs(struct list_head *logs, struct the_nilfs *nilfs)
+{
+       struct nilfs_segment_buffer *segbuf;
+       int ret = 0;
+
+       list_for_each_entry(segbuf, logs, sb_list) {
+               ret = nilfs_segbuf_write(segbuf, nilfs);
+               if (ret)
+                       break;
+       }
+       return ret;
+}
+
 int nilfs_wait_on_logs(struct list_head *logs)
 {
        struct nilfs_segment_buffer *segbuf;
index 6af1630fb401fd088058c4abbde50d4bb592f036..94dfd3517bc0f5f8f96f0d4efc4588a0ff7dc775 100644 (file)
@@ -166,13 +166,10 @@ nilfs_segbuf_add_file_buffer(struct nilfs_segment_buffer *segbuf,
        segbuf->sb_sum.nfileblk++;
 }
 
-int nilfs_segbuf_write(struct nilfs_segment_buffer *segbuf,
-                      struct the_nilfs *nilfs);
-int nilfs_segbuf_wait(struct nilfs_segment_buffer *segbuf);
-
 void nilfs_clear_logs(struct list_head *logs);
 void nilfs_truncate_logs(struct list_head *logs,
                         struct nilfs_segment_buffer *last);
+int nilfs_write_logs(struct list_head *logs, struct the_nilfs *nilfs);
 int nilfs_wait_on_logs(struct list_head *logs);
 
 static inline void nilfs_destroy_logs(struct list_head *logs)
index c4fcdd1567a9e0f5c731f2d83b3bd0a91f5588a8..ada2f1b947a3833fc1eb3c3783de56d7310fb122 100644 (file)
@@ -1764,14 +1764,9 @@ static int nilfs_segctor_prepare_write(struct nilfs_sc_info *sci,
 static int nilfs_segctor_write(struct nilfs_sc_info *sci,
                               struct the_nilfs *nilfs)
 {
-       struct nilfs_segment_buffer *segbuf;
-       int ret = 0;
+       int ret;
 
-       list_for_each_entry(segbuf, &sci->sc_segbufs, sb_list) {
-               ret = nilfs_segbuf_write(segbuf, nilfs);
-               if (ret)
-                       break;
-       }
+       ret = nilfs_write_logs(&sci->sc_segbufs, nilfs);
        list_splice_tail_init(&sci->sc_segbufs, &sci->sc_write_logs);
        return ret;
 }
This page took 0.028816 seconds and 5 git commands to generate.