nilfs2: unfold nilfs_dat_inode function
nilfs_dat_inode function was a wrapper to switch between normal dat inode and gcdat, a clone of the dat inode for garbage collection. This function got obsolete when the gcdat inode was removed, and now we can access the dat inode directly from a nilfs object. So, we will unfold the wrapper and remove it. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
This commit is contained in:
parent
bcbc8c648d
commit
365e215ce1
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
struct inode *nilfs_bmap_get_dat(const struct nilfs_bmap *bmap)
|
struct inode *nilfs_bmap_get_dat(const struct nilfs_bmap *bmap)
|
||||||
{
|
{
|
||||||
return nilfs_dat_inode(NILFS_I_NILFS(bmap->b_inode));
|
return NILFS_I_NILFS(bmap->b_inode)->ns_dat;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap,
|
static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap,
|
||||||
|
@ -104,8 +104,7 @@ int nilfs_btnode_submit_block(struct address_space *btnc, __u64 blocknr,
|
|||||||
if (pblocknr == 0) {
|
if (pblocknr == 0) {
|
||||||
pblocknr = blocknr;
|
pblocknr = blocknr;
|
||||||
if (inode->i_ino != NILFS_DAT_INO) {
|
if (inode->i_ino != NILFS_DAT_INO) {
|
||||||
struct inode *dat =
|
struct inode *dat = NILFS_I_NILFS(inode)->ns_dat;
|
||||||
nilfs_dat_inode(NILFS_I_NILFS(inode));
|
|
||||||
|
|
||||||
/* blocknr is a virtual block number */
|
/* blocknr is a virtual block number */
|
||||||
err = nilfs_dat_translate(dat, blocknr, &pblocknr);
|
err = nilfs_dat_translate(dat, blocknr, &pblocknr);
|
||||||
|
@ -58,7 +58,7 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff,
|
|||||||
struct nilfs_inode_info *ii = NILFS_I(inode);
|
struct nilfs_inode_info *ii = NILFS_I(inode);
|
||||||
__u64 blknum = 0;
|
__u64 blknum = 0;
|
||||||
int err = 0, ret;
|
int err = 0, ret;
|
||||||
struct inode *dat = nilfs_dat_inode(NILFS_I_NILFS(inode));
|
struct inode *dat = NILFS_I_NILFS(inode)->ns_dat;
|
||||||
unsigned maxblocks = bh_result->b_size >> inode->i_blkbits;
|
unsigned maxblocks = bh_result->b_size >> inode->i_blkbits;
|
||||||
|
|
||||||
down_read(&NILFS_MDT(dat)->mi_sem);
|
down_read(&NILFS_MDT(dat)->mi_sem);
|
||||||
@ -420,13 +420,12 @@ static int __nilfs_read_inode(struct super_block *sb,
|
|||||||
struct nilfs_root *root, unsigned long ino,
|
struct nilfs_root *root, unsigned long ino,
|
||||||
struct inode *inode)
|
struct inode *inode)
|
||||||
{
|
{
|
||||||
struct nilfs_sb_info *sbi = NILFS_SB(sb);
|
struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs;
|
||||||
struct inode *dat = nilfs_dat_inode(sbi->s_nilfs);
|
|
||||||
struct buffer_head *bh;
|
struct buffer_head *bh;
|
||||||
struct nilfs_inode *raw_inode;
|
struct nilfs_inode *raw_inode;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
down_read(&NILFS_MDT(dat)->mi_sem); /* XXX */
|
down_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem);
|
||||||
err = nilfs_ifile_get_inode_block(root->ifile, ino, &bh);
|
err = nilfs_ifile_get_inode_block(root->ifile, ino, &bh);
|
||||||
if (unlikely(err))
|
if (unlikely(err))
|
||||||
goto bad_inode;
|
goto bad_inode;
|
||||||
@ -456,7 +455,7 @@ static int __nilfs_read_inode(struct super_block *sb,
|
|||||||
}
|
}
|
||||||
nilfs_ifile_unmap_inode(root->ifile, ino, bh);
|
nilfs_ifile_unmap_inode(root->ifile, ino, bh);
|
||||||
brelse(bh);
|
brelse(bh);
|
||||||
up_read(&NILFS_MDT(dat)->mi_sem); /* XXX */
|
up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem);
|
||||||
nilfs_set_inode_flags(inode);
|
nilfs_set_inode_flags(inode);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -465,7 +464,7 @@ static int __nilfs_read_inode(struct super_block *sb,
|
|||||||
brelse(bh);
|
brelse(bh);
|
||||||
|
|
||||||
bad_inode:
|
bad_inode:
|
||||||
up_read(&NILFS_MDT(dat)->mi_sem); /* XXX */
|
up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ nilfs_ioctl_do_get_vinfo(struct the_nilfs *nilfs, __u64 *posp, int flags,
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
down_read(&nilfs->ns_segctor_sem);
|
down_read(&nilfs->ns_segctor_sem);
|
||||||
ret = nilfs_dat_get_vinfo(nilfs_dat_inode(nilfs), buf, size, nmembs);
|
ret = nilfs_dat_get_vinfo(nilfs->ns_dat, buf, size, nmembs);
|
||||||
up_read(&nilfs->ns_segctor_sem);
|
up_read(&nilfs->ns_segctor_sem);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -242,8 +242,7 @@ static ssize_t
|
|||||||
nilfs_ioctl_do_get_bdescs(struct the_nilfs *nilfs, __u64 *posp, int flags,
|
nilfs_ioctl_do_get_bdescs(struct the_nilfs *nilfs, __u64 *posp, int flags,
|
||||||
void *buf, size_t size, size_t nmembs)
|
void *buf, size_t size, size_t nmembs)
|
||||||
{
|
{
|
||||||
struct inode *dat = nilfs_dat_inode(nilfs);
|
struct nilfs_bmap *bmap = NILFS_I(nilfs->ns_dat)->i_bmap;
|
||||||
struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap;
|
|
||||||
struct nilfs_bdesc *bdescs = buf;
|
struct nilfs_bdesc *bdescs = buf;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
|
||||||
@ -421,7 +420,7 @@ static int nilfs_ioctl_free_vblocknrs(struct the_nilfs *nilfs,
|
|||||||
size_t nmembs = argv->v_nmembs;
|
size_t nmembs = argv->v_nmembs;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = nilfs_dat_freev(nilfs_dat_inode(nilfs), buf, nmembs);
|
ret = nilfs_dat_freev(nilfs->ns_dat, buf, nmembs);
|
||||||
|
|
||||||
return (ret < 0) ? ret : nmembs;
|
return (ret < 0) ? ret : nmembs;
|
||||||
}
|
}
|
||||||
@ -430,8 +429,7 @@ static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs,
|
|||||||
struct nilfs_argv *argv, void *buf)
|
struct nilfs_argv *argv, void *buf)
|
||||||
{
|
{
|
||||||
size_t nmembs = argv->v_nmembs;
|
size_t nmembs = argv->v_nmembs;
|
||||||
struct inode *dat = nilfs_dat_inode(nilfs);
|
struct nilfs_bmap *bmap = NILFS_I(nilfs->ns_dat)->i_bmap;
|
||||||
struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap;
|
|
||||||
struct nilfs_bdesc *bdescs = buf;
|
struct nilfs_bdesc *bdescs = buf;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
|
||||||
@ -450,7 +448,7 @@ static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs,
|
|||||||
/* skip dead block */
|
/* skip dead block */
|
||||||
continue;
|
continue;
|
||||||
if (bdescs[i].bd_level == 0) {
|
if (bdescs[i].bd_level == 0) {
|
||||||
ret = nilfs_mdt_mark_block_dirty(dat,
|
ret = nilfs_mdt_mark_block_dirty(nilfs->ns_dat,
|
||||||
bdescs[i].bd_offset);
|
bdescs[i].bd_offset);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
WARN_ON(ret == -ENOENT);
|
WARN_ON(ret == -ENOENT);
|
||||||
|
@ -190,11 +190,6 @@ static inline int nilfs_doing_construction(void)
|
|||||||
return nilfs_test_transaction_flag(NILFS_TI_WRITER);
|
return nilfs_test_transaction_flag(NILFS_TI_WRITER);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct inode *nilfs_dat_inode(const struct the_nilfs *nilfs)
|
|
||||||
{
|
|
||||||
return nilfs->ns_dat;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* function prototype
|
* function prototype
|
||||||
*/
|
*/
|
||||||
|
@ -757,9 +757,8 @@ static int nilfs_test_metadata_dirty(struct the_nilfs *nilfs,
|
|||||||
ret++;
|
ret++;
|
||||||
if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile))
|
if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile))
|
||||||
ret++;
|
ret++;
|
||||||
if (ret || nilfs_doing_gc())
|
if ((ret || nilfs_doing_gc()) && nilfs_mdt_fetch_dirty(nilfs->ns_dat))
|
||||||
if (nilfs_mdt_fetch_dirty(nilfs_dat_inode(nilfs)))
|
ret++;
|
||||||
ret++;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -795,7 +794,7 @@ static void nilfs_segctor_clear_metadata_dirty(struct nilfs_sc_info *sci)
|
|||||||
nilfs_mdt_clear_dirty(sci->sc_root->ifile);
|
nilfs_mdt_clear_dirty(sci->sc_root->ifile);
|
||||||
nilfs_mdt_clear_dirty(nilfs->ns_cpfile);
|
nilfs_mdt_clear_dirty(nilfs->ns_cpfile);
|
||||||
nilfs_mdt_clear_dirty(nilfs->ns_sufile);
|
nilfs_mdt_clear_dirty(nilfs->ns_sufile);
|
||||||
nilfs_mdt_clear_dirty(nilfs_dat_inode(nilfs));
|
nilfs_mdt_clear_dirty(nilfs->ns_dat);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci)
|
static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci)
|
||||||
@ -904,7 +903,7 @@ static void nilfs_segctor_fill_in_super_root(struct nilfs_sc_info *sci,
|
|||||||
nilfs->ns_nongc_ctime : sci->sc_seg_ctime);
|
nilfs->ns_nongc_ctime : sci->sc_seg_ctime);
|
||||||
raw_sr->sr_flags = 0;
|
raw_sr->sr_flags = 0;
|
||||||
|
|
||||||
nilfs_write_inode_common(nilfs_dat_inode(nilfs), (void *)raw_sr +
|
nilfs_write_inode_common(nilfs->ns_dat, (void *)raw_sr +
|
||||||
NILFS_SR_DAT_OFFSET(isz), 1);
|
NILFS_SR_DAT_OFFSET(isz), 1);
|
||||||
nilfs_write_inode_common(nilfs->ns_cpfile, (void *)raw_sr +
|
nilfs_write_inode_common(nilfs->ns_cpfile, (void *)raw_sr +
|
||||||
NILFS_SR_CPFILE_OFFSET(isz), 1);
|
NILFS_SR_CPFILE_OFFSET(isz), 1);
|
||||||
@ -1160,7 +1159,7 @@ static int nilfs_segctor_collect_blocks(struct nilfs_sc_info *sci, int mode)
|
|||||||
sci->sc_stage.scnt++; /* Fall through */
|
sci->sc_stage.scnt++; /* Fall through */
|
||||||
case NILFS_ST_DAT:
|
case NILFS_ST_DAT:
|
||||||
dat_stage:
|
dat_stage:
|
||||||
err = nilfs_segctor_scan_file(sci, nilfs_dat_inode(nilfs),
|
err = nilfs_segctor_scan_file(sci, nilfs->ns_dat,
|
||||||
&nilfs_sc_dat_ops);
|
&nilfs_sc_dat_ops);
|
||||||
if (unlikely(err))
|
if (unlikely(err))
|
||||||
break;
|
break;
|
||||||
|
@ -650,12 +650,11 @@ int nilfs_discard_segments(struct the_nilfs *nilfs, __u64 *segnump,
|
|||||||
|
|
||||||
int nilfs_count_free_blocks(struct the_nilfs *nilfs, sector_t *nblocks)
|
int nilfs_count_free_blocks(struct the_nilfs *nilfs, sector_t *nblocks)
|
||||||
{
|
{
|
||||||
struct inode *dat = nilfs_dat_inode(nilfs);
|
|
||||||
unsigned long ncleansegs;
|
unsigned long ncleansegs;
|
||||||
|
|
||||||
down_read(&NILFS_MDT(dat)->mi_sem); /* XXX */
|
down_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem);
|
||||||
ncleansegs = nilfs_sufile_get_ncleansegs(nilfs->ns_sufile);
|
ncleansegs = nilfs_sufile_get_ncleansegs(nilfs->ns_sufile);
|
||||||
up_read(&NILFS_MDT(dat)->mi_sem); /* XXX */
|
up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem);
|
||||||
*nblocks = (sector_t)ncleansegs * nilfs->ns_blocks_per_segment;
|
*nblocks = (sector_t)ncleansegs * nilfs->ns_blocks_per_segment;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user