My static checker complains that segment is a u64 but only the lower 31 bits can be used before we hit a shift wrapping bug.
Signed-off-by: Dan Carpenter <[email protected]> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index b423005..d8ed1b8 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -949,7 +949,7 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range) block_t start_addr = SM_I(sbi)->main_blkaddr; __u64 start = range->start >> sbi->log_blocksize; __u64 end = start + (range->len >> sbi->log_blocksize) - 1; - __u64 segment = 1 << (sbi->log_blocksize + sbi->log_blocks_per_seg); + __u64 segment = 1ULL << (sbi->log_blocksize + sbi->log_blocks_per_seg); unsigned int start_segno, end_segno; struct cp_control cpc; ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
