Attaching below patch that fix the sparse warning for ext4. NOTE: yet to test the changes. diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 390b36d..a3ffa15 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -2567,7 +2567,7 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode, /* previous routine could use block we allocated */ newblock = ext_pblock(&newex); - allocated = newex.ee_len; + allocated = le16_to_cpu(newex.ee_len); outnew: __set_bit(BH_New, &bh_result->b_state); diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 89837eb..2136f43 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3298,12 +3298,12 @@ int ext4_mark_inode_dirty(handle_t *handle, struct inode *inode) iloc, handle); if (ret) { EXT4_I(inode)->i_state |= EXT4_STATE_NO_EXPAND; - if (mnt_count != sbi->s_es->s_mnt_count) { + if (mnt_count != le16_to_cpu(sbi->s_es->s_mnt_count)) { ext4_warning(inode->i_sb, __FUNCTION__, "Unable to expand inode %lu. Delete" " some EAs or run e2fsck.", inode->i_ino); - mnt_count = sbi->s_es->s_mnt_count; + mnt_count = le16_to_cpu(sbi->s_es->s_mnt_count); } } } diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 7b1c640..4ece35c 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c @@ -2747,7 +2747,7 @@ static int ext4_mb_read_prealloc_table(char *page, char **start, } static int ext4_mb_write_prealloc_table(struct file *file, - const char *buf, unsigned long cnt, void *data) + const char __user *buf, unsigned long cnt, void *data) { struct ext4_sb_info *sbi = data; unsigned long value; @@ -2809,7 +2809,7 @@ static int ext4_mb_read_##name(char *page, char **start, \ #define MB_PROC_VALUE_WRITE(name) \ static int ext4_mb_write_##name(struct file *file, \ - const char *buf, unsigned long cnt, void *data) \ + const char __user *buf, unsigned long cnt, void *data) \ { \ struct ext4_sb_info *sbi = data; \ char str[32]; \ diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h index 81e0e8d..17afd97 100644 --- a/include/linux/ext4_fs.h +++ b/include/linux/ext4_fs.h @@ -156,7 +156,7 @@ struct ext4_group_desc __le16 bg_free_blocks_count; /* Free blocks count */ __le16 bg_free_inodes_count; /* Free inodes count */ __le16 bg_used_dirs_count; /* Directories count */ - __u16 bg_flags; + __le16 bg_flags; __u32 bg_reserved[2]; __le16 bg_itable_unused; /* Unused inodes count */ __le16 bg_checksum; /* crc16(sb_uuid+group+desc) */ @@ -332,7 +332,7 @@ struct ext4_inode { __le32 i_flags; /* File flags */ union { struct { - __u32 l_i_version; + __le32 l_i_version; } linux1; struct { __u32 h_i_translator; @@ -636,13 +636,13 @@ struct ext4_super_block { /*150*/ __le32 s_blocks_count_hi; /* Blocks count */ __le32 s_r_blocks_count_hi; /* Reserved blocks count */ __le32 s_free_blocks_count_hi; /* Free blocks count */ - __u16 s_min_extra_isize; /* All inodes have at least # bytes */ - __u16 s_want_extra_isize; /* New inodes should reserve # bytes */ - __u32 s_flags; /* Miscellaneous flags */ - __u16 s_raid_stride; /* RAID stride */ - __u16 s_mmp_interval; /* # seconds to wait in MMP checking */ - __u64 s_mmp_block; /* Block for multi-mount protection */ - __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/ + __le16 s_min_extra_isize; /* All inodes have at least # bytes */ + __le16 s_want_extra_isize; /* New inodes should reserve # bytes */ + __le32 s_flags; /* Miscellaneous flags */ + __le16 s_raid_stride; /* RAID stride */ + __le16 s_mmp_interval; /* # seconds to wait in MMP checking */ + __le64 s_mmp_block; /* Block for multi-mount protection */ + __le32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/ __u32 s_reserved[163]; /* Padding to the end of the block */ }; - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html