diff options
author | Changman Lee <cm224.lee@samsung.com> | 2014-05-12 22:03:46 +0900 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-06-04 13:32:07 +0900 |
commit | 4ea4f1db27c0d0d3e40f561191b4ceeecb80ab1a (patch) | |
tree | ef6090ff5ec4a7d15909044714941ecf7a381a7e /fsck/f2fs.h | |
parent | 03ca33c40720a122e956989bd95f1229881dacae (diff) | |
download | f2fs-tools-4ea4f1db27c0d0d3e40f561191b4ceeecb80ab1a.tar.gz |
fsck.f2fs: large volume support
This patch support large volume over about 3TB.
Signed-off-by: Changman Lee <cm224.lee@samsung.com>
[Jaegeuk Kim: add missing cp_payload in f2fs_super_block]
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fsck/f2fs.h')
-rw-r--r-- | fsck/f2fs.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fsck/f2fs.h b/fsck/f2fs.h index e1740fe..427a733 100644 --- a/fsck/f2fs.h +++ b/fsck/f2fs.h @@ -203,9 +203,17 @@ static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag) static inline void *__bitmap_ptr(struct f2fs_sb_info *sbi, int flag) { struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi); - int offset = (flag == NAT_BITMAP) ? - le32_to_cpu(ckpt->sit_ver_bitmap_bytesize) : 0; - return &ckpt->sit_nat_version_bitmap + offset; + int offset; + if (le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_payload) > 0) { + if (flag == NAT_BITMAP) + return &ckpt->sit_nat_version_bitmap; + else + return ((char *)ckpt + F2FS_BLKSIZE); + } else { + offset = (flag == NAT_BITMAP) ? + le32_to_cpu(ckpt->sit_ver_bitmap_bytesize) : 0; + return &ckpt->sit_nat_version_bitmap + offset; + } } static inline bool is_set_ckpt_flags(struct f2fs_checkpoint *cp, unsigned int f) |