diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2010-12-26 10:07:30 -0500 |
---|---|---|
committer | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2011-01-10 00:38:39 -0500 |
commit | 365e215ce1f154e288ff0f7c9acbdf5421f57949 (patch) | |
tree | 864a8cadeb2c373a0fbbbd90464cf745ac7616f7 /fs/nilfs2 | |
parent | bcbc8c648d6cc88f771435d8031c1a13e00945ed (diff) |
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>
Diffstat (limited to 'fs/nilfs2')
-rw-r--r-- | fs/nilfs2/bmap.c | 2 | ||||
-rw-r--r-- | fs/nilfs2/btnode.c | 3 | ||||
-rw-r--r-- | fs/nilfs2/inode.c | 11 | ||||
-rw-r--r-- | fs/nilfs2/ioctl.c | 12 | ||||
-rw-r--r-- | fs/nilfs2/nilfs.h | 5 | ||||
-rw-r--r-- | fs/nilfs2/segment.c | 11 | ||||
-rw-r--r-- | fs/nilfs2/the_nilfs.c | 5 |
7 files changed, 19 insertions, 30 deletions
diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c index 4b7aeb34cc75..3ee67c67cc52 100644 --- a/fs/nilfs2/bmap.c +++ b/fs/nilfs2/bmap.c | |||
@@ -35,7 +35,7 @@ | |||
35 | 35 | ||
36 | struct inode *nilfs_bmap_get_dat(const struct nilfs_bmap *bmap) | 36 | struct inode *nilfs_bmap_get_dat(const struct nilfs_bmap *bmap) |
37 | { | 37 | { |
38 | return nilfs_dat_inode(NILFS_I_NILFS(bmap->b_inode)); | 38 | return NILFS_I_NILFS(bmap->b_inode)->ns_dat; |
39 | } | 39 | } |
40 | 40 | ||
41 | static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap, | 41 | static int nilfs_bmap_convert_error(struct nilfs_bmap *bmap, |
diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c index 5115814cb745..388e9e8f5286 100644 --- a/fs/nilfs2/btnode.c +++ b/fs/nilfs2/btnode.c | |||
@@ -104,8 +104,7 @@ int nilfs_btnode_submit_block(struct address_space *btnc, __u64 blocknr, | |||
104 | if (pblocknr == 0) { | 104 | if (pblocknr == 0) { |
105 | pblocknr = blocknr; | 105 | pblocknr = blocknr; |
106 | if (inode->i_ino != NILFS_DAT_INO) { | 106 | if (inode->i_ino != NILFS_DAT_INO) { |
107 | struct inode *dat = | 107 | struct inode *dat = NILFS_I_NILFS(inode)->ns_dat; |
108 | nilfs_dat_inode(NILFS_I_NILFS(inode)); | ||
109 | 108 | ||
110 | /* blocknr is a virtual block number */ | 109 | /* blocknr is a virtual block number */ |
111 | err = nilfs_dat_translate(dat, blocknr, &pblocknr); | 110 | err = nilfs_dat_translate(dat, blocknr, &pblocknr); |
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 43416470e07b..2fd440d8d6b8 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c | |||
@@ -58,7 +58,7 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff, | |||
58 | struct nilfs_inode_info *ii = NILFS_I(inode); | 58 | struct nilfs_inode_info *ii = NILFS_I(inode); |
59 | __u64 blknum = 0; | 59 | __u64 blknum = 0; |
60 | int err = 0, ret; | 60 | int err = 0, ret; |
61 | struct inode *dat = nilfs_dat_inode(NILFS_I_NILFS(inode)); | 61 | struct inode *dat = NILFS_I_NILFS(inode)->ns_dat; |
62 | unsigned maxblocks = bh_result->b_size >> inode->i_blkbits; | 62 | unsigned maxblocks = bh_result->b_size >> inode->i_blkbits; |
63 | 63 | ||
64 | down_read(&NILFS_MDT(dat)->mi_sem); | 64 | down_read(&NILFS_MDT(dat)->mi_sem); |
@@ -420,13 +420,12 @@ static int __nilfs_read_inode(struct super_block *sb, | |||
420 | struct nilfs_root *root, unsigned long ino, | 420 | struct nilfs_root *root, unsigned long ino, |
421 | struct inode *inode) | 421 | struct inode *inode) |
422 | { | 422 | { |
423 | struct nilfs_sb_info *sbi = NILFS_SB(sb); | 423 | struct the_nilfs *nilfs = NILFS_SB(sb)->s_nilfs; |
424 | struct inode *dat = nilfs_dat_inode(sbi->s_nilfs); | ||
425 | struct buffer_head *bh; | 424 | struct buffer_head *bh; |
426 | struct nilfs_inode *raw_inode; | 425 | struct nilfs_inode *raw_inode; |
427 | int err; | 426 | int err; |
428 | 427 | ||
429 | down_read(&NILFS_MDT(dat)->mi_sem); /* XXX */ | 428 | down_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); |
430 | err = nilfs_ifile_get_inode_block(root->ifile, ino, &bh); | 429 | err = nilfs_ifile_get_inode_block(root->ifile, ino, &bh); |
431 | if (unlikely(err)) | 430 | if (unlikely(err)) |
432 | goto bad_inode; | 431 | goto bad_inode; |
@@ -456,7 +455,7 @@ static int __nilfs_read_inode(struct super_block *sb, | |||
456 | } | 455 | } |
457 | nilfs_ifile_unmap_inode(root->ifile, ino, bh); | 456 | nilfs_ifile_unmap_inode(root->ifile, ino, bh); |
458 | brelse(bh); | 457 | brelse(bh); |
459 | up_read(&NILFS_MDT(dat)->mi_sem); /* XXX */ | 458 | up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); |
460 | nilfs_set_inode_flags(inode); | 459 | nilfs_set_inode_flags(inode); |
461 | return 0; | 460 | return 0; |
462 | 461 | ||
@@ -465,7 +464,7 @@ static int __nilfs_read_inode(struct super_block *sb, | |||
465 | brelse(bh); | 464 | brelse(bh); |
466 | 465 | ||
467 | bad_inode: | 466 | bad_inode: |
468 | up_read(&NILFS_MDT(dat)->mi_sem); /* XXX */ | 467 | up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); |
469 | return err; | 468 | return err; |
470 | } | 469 | } |
471 | 470 | ||
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c index b185e937a335..496738963fdb 100644 --- a/fs/nilfs2/ioctl.c +++ b/fs/nilfs2/ioctl.c | |||
@@ -233,7 +233,7 @@ nilfs_ioctl_do_get_vinfo(struct the_nilfs *nilfs, __u64 *posp, int flags, | |||
233 | int ret; | 233 | int ret; |
234 | 234 | ||
235 | down_read(&nilfs->ns_segctor_sem); | 235 | down_read(&nilfs->ns_segctor_sem); |
236 | ret = nilfs_dat_get_vinfo(nilfs_dat_inode(nilfs), buf, size, nmembs); | 236 | ret = nilfs_dat_get_vinfo(nilfs->ns_dat, buf, size, nmembs); |
237 | up_read(&nilfs->ns_segctor_sem); | 237 | up_read(&nilfs->ns_segctor_sem); |
238 | return ret; | 238 | return ret; |
239 | } | 239 | } |
@@ -242,8 +242,7 @@ static ssize_t | |||
242 | nilfs_ioctl_do_get_bdescs(struct the_nilfs *nilfs, __u64 *posp, int flags, | 242 | nilfs_ioctl_do_get_bdescs(struct the_nilfs *nilfs, __u64 *posp, int flags, |
243 | void *buf, size_t size, size_t nmembs) | 243 | void *buf, size_t size, size_t nmembs) |
244 | { | 244 | { |
245 | struct inode *dat = nilfs_dat_inode(nilfs); | 245 | struct nilfs_bmap *bmap = NILFS_I(nilfs->ns_dat)->i_bmap; |
246 | struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap; | ||
247 | struct nilfs_bdesc *bdescs = buf; | 246 | struct nilfs_bdesc *bdescs = buf; |
248 | int ret, i; | 247 | int ret, i; |
249 | 248 | ||
@@ -421,7 +420,7 @@ static int nilfs_ioctl_free_vblocknrs(struct the_nilfs *nilfs, | |||
421 | size_t nmembs = argv->v_nmembs; | 420 | size_t nmembs = argv->v_nmembs; |
422 | int ret; | 421 | int ret; |
423 | 422 | ||
424 | ret = nilfs_dat_freev(nilfs_dat_inode(nilfs), buf, nmembs); | 423 | ret = nilfs_dat_freev(nilfs->ns_dat, buf, nmembs); |
425 | 424 | ||
426 | return (ret < 0) ? ret : nmembs; | 425 | return (ret < 0) ? ret : nmembs; |
427 | } | 426 | } |
@@ -430,8 +429,7 @@ static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs, | |||
430 | struct nilfs_argv *argv, void *buf) | 429 | struct nilfs_argv *argv, void *buf) |
431 | { | 430 | { |
432 | size_t nmembs = argv->v_nmembs; | 431 | size_t nmembs = argv->v_nmembs; |
433 | struct inode *dat = nilfs_dat_inode(nilfs); | 432 | struct nilfs_bmap *bmap = NILFS_I(nilfs->ns_dat)->i_bmap; |
434 | struct nilfs_bmap *bmap = NILFS_I(dat)->i_bmap; | ||
435 | struct nilfs_bdesc *bdescs = buf; | 433 | struct nilfs_bdesc *bdescs = buf; |
436 | int ret, i; | 434 | int ret, i; |
437 | 435 | ||
@@ -450,7 +448,7 @@ static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs, | |||
450 | /* skip dead block */ | 448 | /* skip dead block */ |
451 | continue; | 449 | continue; |
452 | if (bdescs[i].bd_level == 0) { | 450 | if (bdescs[i].bd_level == 0) { |
453 | ret = nilfs_mdt_mark_block_dirty(dat, | 451 | ret = nilfs_mdt_mark_block_dirty(nilfs->ns_dat, |
454 | bdescs[i].bd_offset); | 452 | bdescs[i].bd_offset); |
455 | if (ret < 0) { | 453 | if (ret < 0) { |
456 | WARN_ON(ret == -ENOENT); | 454 | WARN_ON(ret == -ENOENT); |
diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h index 981183d01250..777e8fd04304 100644 --- a/fs/nilfs2/nilfs.h +++ b/fs/nilfs2/nilfs.h | |||
@@ -190,11 +190,6 @@ static inline int nilfs_doing_construction(void) | |||
190 | return nilfs_test_transaction_flag(NILFS_TI_WRITER); | 190 | return nilfs_test_transaction_flag(NILFS_TI_WRITER); |
191 | } | 191 | } |
192 | 192 | ||
193 | static inline struct inode *nilfs_dat_inode(const struct the_nilfs *nilfs) | ||
194 | { | ||
195 | return nilfs->ns_dat; | ||
196 | } | ||
197 | |||
198 | /* | 193 | /* |
199 | * function prototype | 194 | * function prototype |
200 | */ | 195 | */ |
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index efc7d0a1bbf7..55ebae5c7f39 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -757,9 +757,8 @@ static int nilfs_test_metadata_dirty(struct the_nilfs *nilfs, | |||
757 | ret++; | 757 | ret++; |
758 | if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile)) | 758 | if (nilfs_mdt_fetch_dirty(nilfs->ns_sufile)) |
759 | ret++; | 759 | ret++; |
760 | if (ret || nilfs_doing_gc()) | 760 | if ((ret || nilfs_doing_gc()) && nilfs_mdt_fetch_dirty(nilfs->ns_dat)) |
761 | if (nilfs_mdt_fetch_dirty(nilfs_dat_inode(nilfs))) | 761 | ret++; |
762 | ret++; | ||
763 | return ret; | 762 | return ret; |
764 | } | 763 | } |
765 | 764 | ||
@@ -795,7 +794,7 @@ static void nilfs_segctor_clear_metadata_dirty(struct nilfs_sc_info *sci) | |||
795 | nilfs_mdt_clear_dirty(sci->sc_root->ifile); | 794 | nilfs_mdt_clear_dirty(sci->sc_root->ifile); |
796 | nilfs_mdt_clear_dirty(nilfs->ns_cpfile); | 795 | nilfs_mdt_clear_dirty(nilfs->ns_cpfile); |
797 | nilfs_mdt_clear_dirty(nilfs->ns_sufile); | 796 | nilfs_mdt_clear_dirty(nilfs->ns_sufile); |
798 | nilfs_mdt_clear_dirty(nilfs_dat_inode(nilfs)); | 797 | nilfs_mdt_clear_dirty(nilfs->ns_dat); |
799 | } | 798 | } |
800 | 799 | ||
801 | static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci) | 800 | 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, | |||
904 | nilfs->ns_nongc_ctime : sci->sc_seg_ctime); | 903 | nilfs->ns_nongc_ctime : sci->sc_seg_ctime); |
905 | raw_sr->sr_flags = 0; | 904 | raw_sr->sr_flags = 0; |
906 | 905 | ||
907 | nilfs_write_inode_common(nilfs_dat_inode(nilfs), (void *)raw_sr + | 906 | nilfs_write_inode_common(nilfs->ns_dat, (void *)raw_sr + |
908 | NILFS_SR_DAT_OFFSET(isz), 1); | 907 | NILFS_SR_DAT_OFFSET(isz), 1); |
909 | nilfs_write_inode_common(nilfs->ns_cpfile, (void *)raw_sr + | 908 | nilfs_write_inode_common(nilfs->ns_cpfile, (void *)raw_sr + |
910 | NILFS_SR_CPFILE_OFFSET(isz), 1); | 909 | NILFS_SR_CPFILE_OFFSET(isz), 1); |
@@ -1160,7 +1159,7 @@ static int nilfs_segctor_collect_blocks(struct nilfs_sc_info *sci, int mode) | |||
1160 | sci->sc_stage.scnt++; /* Fall through */ | 1159 | sci->sc_stage.scnt++; /* Fall through */ |
1161 | case NILFS_ST_DAT: | 1160 | case NILFS_ST_DAT: |
1162 | dat_stage: | 1161 | dat_stage: |
1163 | err = nilfs_segctor_scan_file(sci, nilfs_dat_inode(nilfs), | 1162 | err = nilfs_segctor_scan_file(sci, nilfs->ns_dat, |
1164 | &nilfs_sc_dat_ops); | 1163 | &nilfs_sc_dat_ops); |
1165 | if (unlikely(err)) | 1164 | if (unlikely(err)) |
1166 | break; | 1165 | break; |
diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c index 95e444319f12..ad4ac607cf57 100644 --- a/fs/nilfs2/the_nilfs.c +++ b/fs/nilfs2/the_nilfs.c | |||
@@ -650,12 +650,11 @@ int nilfs_discard_segments(struct the_nilfs *nilfs, __u64 *segnump, | |||
650 | 650 | ||
651 | int nilfs_count_free_blocks(struct the_nilfs *nilfs, sector_t *nblocks) | 651 | int nilfs_count_free_blocks(struct the_nilfs *nilfs, sector_t *nblocks) |
652 | { | 652 | { |
653 | struct inode *dat = nilfs_dat_inode(nilfs); | ||
654 | unsigned long ncleansegs; | 653 | unsigned long ncleansegs; |
655 | 654 | ||
656 | down_read(&NILFS_MDT(dat)->mi_sem); /* XXX */ | 655 | down_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); |
657 | ncleansegs = nilfs_sufile_get_ncleansegs(nilfs->ns_sufile); | 656 | ncleansegs = nilfs_sufile_get_ncleansegs(nilfs->ns_sufile); |
658 | up_read(&NILFS_MDT(dat)->mi_sem); /* XXX */ | 657 | up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); |
659 | *nblocks = (sector_t)ncleansegs * nilfs->ns_blocks_per_segment; | 658 | *nblocks = (sector_t)ncleansegs * nilfs->ns_blocks_per_segment; |
660 | return 0; | 659 | return 0; |
661 | } | 660 | } |