Commit 8707df38478c8e0958b706f0ea1cdf99d00a9469
1 parent
79739565e1
Exists in
master
and in
7 other branches
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>
Showing 7 changed files with 39 additions and 6 deletions Side-by-side Diff
fs/nilfs2/cpfile.c
... | ... | @@ -928,6 +928,16 @@ |
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 | + */ | |
935 | +int 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 | 941 | * nilfs_cpfile_new - create cpfile |
932 | 942 | * @nilfs: nilfs object |
933 | 943 | * @cpsize: size of a checkpoint entry |
fs/nilfs2/cpfile.h
... | ... | @@ -40,6 +40,7 @@ |
40 | 40 | ssize_t nilfs_cpfile_get_cpinfo(struct inode *, __u64 *, int, void *, unsigned, |
41 | 41 | size_t); |
42 | 42 | |
43 | +int nilfs_cpfile_read(struct inode *cpfile, struct nilfs_inode *raw_inode); | |
43 | 44 | struct inode *nilfs_cpfile_new(struct the_nilfs *nilfs, size_t cpsize); |
44 | 45 | |
45 | 46 | #endif /* _NILFS_CPFILE_H */ |
fs/nilfs2/dat.c
... | ... | @@ -427,6 +427,16 @@ |
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 | + */ | |
434 | +int 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 | 440 | * nilfs_dat_new - create dat file |
431 | 441 | * @nilfs: nilfs object |
432 | 442 | * @entry_size: size of a dat entry |
fs/nilfs2/dat.h
... | ... | @@ -53,6 +53,7 @@ |
53 | 53 | int nilfs_dat_move(struct inode *, __u64, sector_t); |
54 | 54 | ssize_t nilfs_dat_get_vinfo(struct inode *, void *, unsigned, size_t); |
55 | 55 | |
56 | +int nilfs_dat_read(struct inode *dat, struct nilfs_inode *raw_inode); | |
56 | 57 | struct inode *nilfs_dat_new(struct the_nilfs *nilfs, size_t entry_size); |
57 | 58 | |
58 | 59 | #endif /* _NILFS_DAT_H */ |
fs/nilfs2/sufile.c
... | ... | @@ -659,6 +659,16 @@ |
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 | + */ | |
666 | +int 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 | 672 | * nilfs_sufile_new - create sufile |
663 | 673 | * @nilfs: nilfs object |
664 | 674 | * @susize: size of a segment usage entry |
fs/nilfs2/sufile.h
... | ... | @@ -62,6 +62,7 @@ |
62 | 62 | void nilfs_sufile_do_set_error(struct inode *, __u64, struct buffer_head *, |
63 | 63 | struct buffer_head *); |
64 | 64 | |
65 | +int nilfs_sufile_read(struct inode *sufile, struct nilfs_inode *raw_inode); | |
65 | 66 | struct inode *nilfs_sufile_new(struct the_nilfs *nilfs, size_t susize); |
66 | 67 | |
67 | 68 | /** |
fs/nilfs2/the_nilfs.c
... | ... | @@ -204,18 +204,18 @@ |
204 | 204 | |
205 | 205 | nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat); |
206 | 206 | |
207 | - err = nilfs_mdt_read_inode_direct( | |
208 | - nilfs->ns_dat, bh_sr, NILFS_SR_DAT_OFFSET(inode_size)); | |
207 | + err = nilfs_dat_read(nilfs->ns_dat, (void *)bh_sr->b_data + | |
208 | + NILFS_SR_DAT_OFFSET(inode_size)); | |
209 | 209 | if (unlikely(err)) |
210 | 210 | goto failed_sufile; |
211 | 211 | |
212 | - err = nilfs_mdt_read_inode_direct( | |
213 | - nilfs->ns_cpfile, bh_sr, NILFS_SR_CPFILE_OFFSET(inode_size)); | |
212 | + err = nilfs_cpfile_read(nilfs->ns_cpfile, (void *)bh_sr->b_data + | |
213 | + NILFS_SR_CPFILE_OFFSET(inode_size)); | |
214 | 214 | if (unlikely(err)) |
215 | 215 | goto failed_sufile; |
216 | 216 | |
217 | - err = nilfs_mdt_read_inode_direct( | |
218 | - nilfs->ns_sufile, bh_sr, NILFS_SR_SUFILE_OFFSET(inode_size)); | |
217 | + err = nilfs_sufile_read(nilfs->ns_sufile, (void *)bh_sr->b_data + | |
218 | + NILFS_SR_SUFILE_OFFSET(inode_size)); | |
219 | 219 | if (unlikely(err)) |
220 | 220 | goto failed_sufile; |
221 | 221 |