]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
f2fs: fix sparse warnings
authorEric Biggers <ebiggers@google.com>
Tue, 11 Oct 2016 17:36:12 +0000 (10:36 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 23 Nov 2016 20:10:57 +0000 (12:10 -0800)
f2fs contained a number of endianness conversion bugs.

Also, one function should have been 'static'.

Found with sparse by running 'make C=2 CF=-D__CHECK_ENDIAN__ fs/f2fs/'

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/dir.c
fs/f2fs/inline.c
fs/f2fs/node.c
fs/f2fs/node.h
fs/f2fs/segment.c

index 4df6168f43de60ef6e6644546dc1aa2917ade431..9fd1b0e6d572b18337457d7feba5ddb5f6eae718 100644 (file)
@@ -136,7 +136,7 @@ struct f2fs_dir_entry *find_target_dentry(struct fscrypt_name *fname,
 
                /* show encrypted name */
                if (fname->hash) {
-                       if (de->hash_code == fname->hash)
+                       if (de->hash_code == cpu_to_le32(fname->hash))
                                goto found;
                } else if (de_name.len == name->len &&
                        de->hash_code == namehash &&
index 210b2dc795356cc6b966801adcb0317cf8279ccd..9cd3379581be4e1d5310812c37818fc08044615f 100644 (file)
@@ -421,7 +421,7 @@ static int f2fs_add_inline_entries(struct inode *dir,
                }
 
                new_name.name = d.filename[bit_pos];
-               new_name.len = de->name_len;
+               new_name.len = le16_to_cpu(de->name_len);
 
                ino = le32_to_cpu(de->ino);
                fake_mode = get_de_type(de) << S_SHIFT;
index 975909c146a1a94c851552b2ecb8c3b403a28088..6f99907bc8d7f2078460111ed07caa03a0c1f8a0 100644 (file)
@@ -270,8 +270,9 @@ static void cache_nat_entry(struct f2fs_sb_info *sbi, nid_t nid,
                e = grab_nat_entry(nm_i, nid);
                node_info_from_raw_nat(&e->ni, ne);
        } else {
-               f2fs_bug_on(sbi, nat_get_ino(e) != ne->ino ||
-                               nat_get_blkaddr(e) != ne->block_addr ||
+               f2fs_bug_on(sbi, nat_get_ino(e) != le32_to_cpu(ne->ino) ||
+                               nat_get_blkaddr(e) !=
+                                       le32_to_cpu(ne->block_addr) ||
                                nat_get_version(e) != ne->version);
        }
 }
index 868bec65e51c216290e00dbcb391d92aecfd7f47..cfdcf98516a1f911ebd60f158c073b40e16f6bc3 100644 (file)
@@ -313,7 +313,7 @@ static inline bool is_recoverable_dnode(struct page *page)
                                ((unsigned char *)ckpt + crc_offset)));
                cp_ver |= (crc << 32);
        }
-       return cpu_to_le64(cp_ver) == cpver_of_node(page);
+       return cp_ver == cpver_of_node(page);
 }
 
 /*
index f7e73b2afe68169ae33dac522392caf24d821705..5e1b4a9e2cd2de953b1377daa5c224dfe5e8e897 100644 (file)
@@ -635,7 +635,7 @@ static void f2fs_submit_bio_wait_endio(struct bio *bio)
 }
 
 /* this function is copied from blkdev_issue_discard from block/blk-lib.c */
-int __f2fs_issue_discard_async(struct f2fs_sb_info *sbi, sector_t sector,
+static int __f2fs_issue_discard_async(struct f2fs_sb_info *sbi, sector_t sector,
                sector_t nr_sects, gfp_t gfp_mask, unsigned long flags)
 {
        struct block_device *bdev = sbi->sb->s_bdev;