Commit 8707df38 authored by Ryusuke Konishi's avatar Ryusuke Konishi

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: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
parent 79739565
...@@ -927,6 +927,16 @@ int nilfs_cpfile_get_stat(struct inode *cpfile, struct nilfs_cpstat *cpstat) ...@@ -927,6 +927,16 @@ int nilfs_cpfile_get_stat(struct inode *cpfile, struct nilfs_cpstat *cpstat)
return ret; return ret;
} }
/**
* nilfs_cpfile_read - read cpfile inode
* @cpfile: cpfile inode
* @raw_inode: on-disk cpfile inode
*/
int nilfs_cpfile_read(struct inode *cpfile, struct nilfs_inode *raw_inode)
{
return nilfs_read_inode_common(cpfile, raw_inode);
}
/** /**
* nilfs_cpfile_new - create cpfile * nilfs_cpfile_new - create cpfile
* @nilfs: nilfs object * @nilfs: nilfs object
......
...@@ -40,6 +40,7 @@ int nilfs_cpfile_get_stat(struct inode *, struct nilfs_cpstat *); ...@@ -40,6 +40,7 @@ int nilfs_cpfile_get_stat(struct inode *, struct nilfs_cpstat *);
ssize_t nilfs_cpfile_get_cpinfo(struct inode *, __u64 *, int, void *, unsigned, ssize_t nilfs_cpfile_get_cpinfo(struct inode *, __u64 *, int, void *, unsigned,
size_t); size_t);
int nilfs_cpfile_read(struct inode *cpfile, struct nilfs_inode *raw_inode);
struct inode *nilfs_cpfile_new(struct the_nilfs *nilfs, size_t cpsize); struct inode *nilfs_cpfile_new(struct the_nilfs *nilfs, size_t cpsize);
#endif /* _NILFS_CPFILE_H */ #endif /* _NILFS_CPFILE_H */
...@@ -426,6 +426,16 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz, ...@@ -426,6 +426,16 @@ ssize_t nilfs_dat_get_vinfo(struct inode *dat, void *buf, unsigned visz,
return nvi; return nvi;
} }
/**
* nilfs_dat_read - read dat inode
* @dat: dat inode
* @raw_inode: on-disk dat inode
*/
int nilfs_dat_read(struct inode *dat, struct nilfs_inode *raw_inode)
{
return nilfs_read_inode_common(dat, raw_inode);
}
/** /**
* nilfs_dat_new - create dat file * nilfs_dat_new - create dat file
* @nilfs: nilfs object * @nilfs: nilfs object
......
...@@ -53,6 +53,7 @@ int nilfs_dat_freev(struct inode *, __u64 *, size_t); ...@@ -53,6 +53,7 @@ int nilfs_dat_freev(struct inode *, __u64 *, size_t);
int nilfs_dat_move(struct inode *, __u64, sector_t); int nilfs_dat_move(struct inode *, __u64, sector_t);
ssize_t nilfs_dat_get_vinfo(struct inode *, void *, unsigned, size_t); ssize_t nilfs_dat_get_vinfo(struct inode *, void *, unsigned, size_t);
int nilfs_dat_read(struct inode *dat, struct nilfs_inode *raw_inode);
struct inode *nilfs_dat_new(struct the_nilfs *nilfs, size_t entry_size); struct inode *nilfs_dat_new(struct the_nilfs *nilfs, size_t entry_size);
#endif /* _NILFS_DAT_H */ #endif /* _NILFS_DAT_H */
...@@ -658,6 +658,16 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf, ...@@ -658,6 +658,16 @@ ssize_t nilfs_sufile_get_suinfo(struct inode *sufile, __u64 segnum, void *buf,
return ret; return ret;
} }
/**
* nilfs_sufile_read - read sufile inode
* @sufile: sufile inode
* @raw_inode: on-disk sufile inode
*/
int nilfs_sufile_read(struct inode *sufile, struct nilfs_inode *raw_inode)
{
return nilfs_read_inode_common(sufile, raw_inode);
}
/** /**
* nilfs_sufile_new - create sufile * nilfs_sufile_new - create sufile
* @nilfs: nilfs object * @nilfs: nilfs object
......
...@@ -62,6 +62,7 @@ void nilfs_sufile_do_cancel_free(struct inode *, __u64, struct buffer_head *, ...@@ -62,6 +62,7 @@ void nilfs_sufile_do_cancel_free(struct inode *, __u64, struct buffer_head *,
void nilfs_sufile_do_set_error(struct inode *, __u64, struct buffer_head *, void nilfs_sufile_do_set_error(struct inode *, __u64, struct buffer_head *,
struct buffer_head *); struct buffer_head *);
int nilfs_sufile_read(struct inode *sufile, struct nilfs_inode *raw_inode);
struct inode *nilfs_sufile_new(struct the_nilfs *nilfs, size_t susize); struct inode *nilfs_sufile_new(struct the_nilfs *nilfs, size_t susize);
/** /**
......
...@@ -204,18 +204,18 @@ static int nilfs_load_super_root(struct the_nilfs *nilfs, ...@@ -204,18 +204,18 @@ static int nilfs_load_super_root(struct the_nilfs *nilfs,
nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat); nilfs_mdt_set_shadow(nilfs->ns_dat, nilfs->ns_gc_dat);
err = nilfs_mdt_read_inode_direct( err = nilfs_dat_read(nilfs->ns_dat, (void *)bh_sr->b_data +
nilfs->ns_dat, bh_sr, NILFS_SR_DAT_OFFSET(inode_size)); NILFS_SR_DAT_OFFSET(inode_size));
if (unlikely(err)) if (unlikely(err))
goto failed_sufile; goto failed_sufile;
err = nilfs_mdt_read_inode_direct( err = nilfs_cpfile_read(nilfs->ns_cpfile, (void *)bh_sr->b_data +
nilfs->ns_cpfile, bh_sr, NILFS_SR_CPFILE_OFFSET(inode_size)); NILFS_SR_CPFILE_OFFSET(inode_size));
if (unlikely(err)) if (unlikely(err))
goto failed_sufile; goto failed_sufile;
err = nilfs_mdt_read_inode_direct( err = nilfs_sufile_read(nilfs->ns_sufile, (void *)bh_sr->b_data +
nilfs->ns_sufile, bh_sr, NILFS_SR_SUFILE_OFFSET(inode_size)); NILFS_SR_SUFILE_OFFSET(inode_size));
if (unlikely(err)) if (unlikely(err))
goto failed_sufile; goto failed_sufile;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment