aboutsummaryrefslogtreecommitdiffstats
path: root/fsck/f2fs.h
diff options
context:
space:
mode:
authorChangman Lee <cm224.lee@samsung.com>2014-05-12 22:03:46 +0900
committerJaegeuk Kim <jaegeuk@kernel.org>2014-06-04 13:32:07 +0900
commit4ea4f1db27c0d0d3e40f561191b4ceeecb80ab1a (patch)
treeef6090ff5ec4a7d15909044714941ecf7a381a7e /fsck/f2fs.h
parent03ca33c40720a122e956989bd95f1229881dacae (diff)
downloadandroid_external_f2fs-tools-4ea4f1db27c0d0d3e40f561191b4ceeecb80ab1a.tar.gz
android_external_f2fs-tools-4ea4f1db27c0d0d3e40f561191b4ceeecb80ab1a.tar.bz2
android_external_f2fs-tools-4ea4f1db27c0d0d3e40f561191b4ceeecb80ab1a.zip
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.h14
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)