aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2009-11-12 11:36:56 -0500
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>2009-11-19 20:05:48 -0500
commit8707df38478c8e0958b706f0ea1cdf99d00a9469 (patch)
tree5bc882fda214b4020f65f1df217e7fae40c10145
parent79739565e15f2adbc482207a0800fc127c84d1a0 (diff)
nilfs2: separate read method of meta data files on super root block
Will displace nilfs_mdt_read_inode_direct function with an individual read method: nilfs_dat_read, nilfs_sufile_read, nilfs_cpfile_read. This provides the opportunity to initialize local variables of each metadata file after reading the inode. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
-rw-r--r--fs/nilfs2/cpfile.c10
-rw-r--r--fs/nilfs2/cpfile.h1
-rw-r--r--fs/nilfs2/dat.c10
-rw-r--r--fs/nilfs2/dat.h1
-rw-r--r--fs/nilfs2/sufile.c10
-rw-r--r--fs/nilfs2/sufile.h1
-rw-r--r--fs/nilfs2/the_nilfs.c12
7 files changed, 39 insertions, 6 deletions
diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c
index 2aaefaec1567..d5ad54e204a5 100644
--- a/fs/nilfs2/cpfile.c
+++ b/fs/nilfs2/cpfile.c
@@ -928,6 +928,16 @@ int nilfs_cpfile_get_stat(struct inode *cpfile, struct nilfs_cpstat *cpstat)
928} 928}
929 929
930/** 930/**
931 * nilfs_cpfile_read - read cpfile inode
932 * @cpfile: cpfile inode
933 * @raw_inode: on-disk cpfile inode
934 */
935int nilfs_cpfile_read(struct inode *cpfile, struct nilfs_inode *raw_inode)
936{
937 return nilfs_read_inode_common(cpfile, raw_inode);
938}
939
940/**
931 * nilfs_cpfile_new - create cpfile 941 * nilfs_cpfile_new - create cpfile
932 * @nilfs: nilfs object 942 * @nilfs: nilfs object
933 * @cpsize: size of a checkpoint entry 943 * @cpsize: size of a checkpoint entry
diff --git a/fs/nilfs2/cpfile.h b/fs/nilfs2/cpfile.h
index 8ff2b4f4656b..bc0809e0ab43 100644
--- a/fs/nilfs2/cpfile.h
+++ b/fs/nilfs2/cpfile.h
@@ -40,6 +40,7 @@ int nilfs_cpfile_get_stat(struct inode *, struct nilfs_cpstat *);
40ssize_t nilfs_cpfile_get_cpinfo(struct inode *, __u64 *, int, void *, unsigned, 40ssize_t nilfs_cpfile_get_cpinfo(struct inode *, __u64 *, int, void *, unsigned,
41 size_t); 41 size_t);
42 42
43int nilfs_cpfile_read(struct inode *cpfile, struct nilfs_inode *raw_inode);
43struct inode *nilfs_cpfile_new(struct the_nilfs *nilfs, size_t cpsize); 44struct inode *nilfs_cpfile_new(struct the_nilfs *nilfs, size_t cpsize);
44 45
45#endif /* _NILFS_CPFILE_H */ 46#endif /* _NILFS_CPFILE_H */
diff --git a/fs/nilfs2/dat.c b/fs/nilfs2/dat.c
index 239a42234999..eff3169ba10f 100644
--- a/fs/nilfs2/dat.c
+++ b/fs/nilfs2/dat.c
@@ -427,6 +427,16 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz,
427} 427}
428 428
429/** 429/**
430 * nilfs_dat_read - read dat inode
431 * @dat: dat inode
432 * @raw_inode: on-disk dat inode
433 */
434int nilfs_dat_read(struct inode *dat, struct nilfs_inode *raw_inode)
435{
436 return nilfs_read_inode_common(dat, raw_inode);
437}
438
439/**
430 * nilfs_dat_new - create dat file 440 * nilfs_dat_new - create dat file
431 * @nilfs: nilfs object 441 * @nilfs: nilfs object
432 * @entry_size: size of a dat entry 442 * @entry_size: size of a dat entry
diff --git a/fs/nilfs2/dat.h b/fs/nilfs2/dat.h
index 98f33067cb82..d31c3aab0efe 100644
--- a/fs/nilfs2/dat.h
+++ b/fs/nilfs2/dat.h
@@ -53,6 +53,7 @@ int nilfs_dat_freev(struct inode *, __u64 *, size_t);
53int nilfs_dat_move(struct inode *, __u64, sector_t); 53int nilfs_dat_move(struct inode *, __u64, sector_t);
54ssize_t nilfs_dat_get_vinfo(struct inode *, void *, unsigned, size_t); 54ssize_t nilfs_dat_get_vinfo(struct inode *, void *, unsigned, size_t);
55 55
56int nilfs_dat_read(struct inode *dat, struct nilfs_inode *raw_inode);
56struct inode *nilfs_dat_new(struct the_nilfs *nilfs, size_t entry_size); 57struct inode *nilfs_dat_new(struct the_nilfs *nilfs, size_t entry_size);
57 58
58#endif /* _NILFS_DAT_H */ 59#endif /* _NILFS_DAT_H */
diff --git a/fs/nilfs2/sufile.c b/fs/nilfs2/sufile.c
index 6fb707ab7e2c..b344f27238f0 100644
--- a/fs/nilfs2/sufile.c
+++ b/fs/nilfs2/sufile.c
@@ -659,6 +659,16 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf,
659} 659}
660 660
661/** 661/**
662 * nilfs_sufile_read - read sufile inode
663 * @sufile: sufile inode
664 * @raw_inode: on-disk sufile inode
665 */
666int nilfs_sufile_read(struct inode *sufile, struct nilfs_inode *raw_inode)
667{
668 return nilfs_read_inode_common(sufile, raw_inode);
669}
670
671/**
662 * nilfs_sufile_new - create sufile 672 * nilfs_sufile_new - create sufile
663 * @nilfs: nilfs object 673 * @nilfs: nilfs object
664 * @susize: size of a segment usage entry 674 * @susize: size of a segment usage entry
diff --git a/fs/nilfs2/sufile.h b/fs/nilfs2/sufile.h
index 50d3191ae4fd..b303a80ac3b1 100644
--- a/fs/nilfs2/sufile.h
+++ b/fs/nilfs2/sufile.h
@@ -62,6 +62,7 @@ void nilfs_sufile_do_cancel_free(struct inode *, __u64, struct buffer_head *,
62void nilfs_sufile_do_set_error(struct inode *, __u64, struct buffer_head *, 62void nilfs_sufile_do_set_error(struct inode *, __u64, struct buffer_head *,
63 struct buffer_head *); 63 struct buffer_head *);
64 64
65int nilfs_sufile_read(struct inode *sufile, struct nilfs_inode *raw_inode);
65struct inode *nilfs_sufile_new(struct the_nilfs *nilfs, size_t susize); 66struct inode *nilfs_sufile_new(struct the_nilfs *nilfs, size_t susize);
66 67
67/** 68/**
diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
index d4a731fd4e32..bc7760c2a8f2 100644
--- a/fs/nilfs2/the_nilfs.c
+++ b/fs/nilfs2/the_nilfs.c
@@ -204,18 +204,18 @@ static int nilfs_load_super_root(struct the_nilfs *nilfs,
204 204
205 nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat); 205 nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat);
206 206
207 err = nilfs_mdt_read_inode_direct( 207 err = nilfs_dat_read(nilfs->ns_dat, (void *)bh_sr->b_data +
208 nilfs->ns_dat, bh_sr, NILFS_SR_DAT_OFFSET(inode_size)); 208 NILFS_SR_DAT_OFFSET(inode_size));
209 if (unlikely(err)) 209 if (unlikely(err))
210 goto failed_sufile; 210 goto failed_sufile;
211 211
212 err = nilfs_mdt_read_inode_direct( 212 err = nilfs_cpfile_read(nilfs->ns_cpfile, (void *)bh_sr->b_data +
213 nilfs->ns_cpfile, bh_sr, NILFS_SR_CPFILE_OFFSET(inode_size)); 213 NILFS_SR_CPFILE_OFFSET(inode_size));
214 if (unlikely(err)) 214 if (unlikely(err))
215 goto failed_sufile; 215 goto failed_sufile;
216 216
217 err = nilfs_mdt_read_inode_direct( 217 err = nilfs_sufile_read(nilfs->ns_sufile, (void *)bh_sr->b_data +
218 nilfs->ns_sufile, bh_sr, NILFS_SR_SUFILE_OFFSET(inode_size)); 218 NILFS_SR_SUFILE_OFFSET(inode_size));
219 if (unlikely(err)) 219 if (unlikely(err))
220 goto failed_sufile; 220 goto failed_sufile;
221 221