Fix some bugs in mtd/jffs2 on 64bit platform. The MEMGETBADBLOCK/MEMSETBADBLOCK ioctl are not listed in compat_ioctl.h. And some variables in jffs2 are declared as uint32_t but used to hold size_t values.
Unified · Split
| @@ -406,7 +406,8 @@ static int check_node_data(struct jffs2_sb_info *c, struct jffs2_tmp_dnode_info · 405 unmodified lines | ||
| 406 | 406 | int err = 0, pointed = 0; |
| 407 | 407 | struct jffs2_eraseblock *jeb; |
| 408 | 408 | unsigned char *buffer; |
| 409 | − uint32_t crc, ofs, retlen, len; | |
| 409 | + uint32_t crc, ofs, len; | |
| 410 | + size_t retlen; | |
| 410 | 411 | |
| 411 | 412 | BUG_ON(tn->csize == 0); |
| 412 | 413 | |
| @@ -112,7 +112,7 @@ static struct jffs2_raw_node_ref *jffs2_first_valid_node(struct jffs2_raw_node_r · 111 unmodified lines | ||
| 112 | 112 | * negative error code on failure. |
| 113 | 113 | */ |
| 114 | 114 | static inline int read_direntry(struct jffs2_sb_info *c, struct jffs2_raw_node_ref *ref, |
| 115 | − struct jffs2_raw_dirent *rd, uint32_t read, struct jffs2_full_dirent **fdp, | |
| 115 | + struct jffs2_raw_dirent *rd, size_t read, struct jffs2_full_dirent **fdp, | |
| 116 | 116 | uint32_t *latest_mctime, uint32_t *mctime_ver) |
| 117 | 117 | { |
| 118 | 118 | struct jffs2_full_dirent *fd; |
| @@ -696,6 +696,8 @@ COMPATIBLE_IOCTL(MEMLOCK) · 695 unmodified lines | ||
| 696 | 696 | COMPATIBLE_IOCTL(MEMUNLOCK) |
| 697 | 697 | COMPATIBLE_IOCTL(MEMGETREGIONCOUNT) |
| 698 | 698 | COMPATIBLE_IOCTL(MEMGETREGIONINFO) |
| 699 | +COMPATIBLE_IOCTL(MEMGETBADBLOCK) | |
| 700 | +COMPATIBLE_IOCTL(MEMSETBADBLOCK) | |
| 699 | 701 | /* NBD */ |
| 700 | 702 | ULONG_IOCTL(NBD_SET_SOCK) |
| 701 | 703 | ULONG_IOCTL(NBD_SET_BLKSIZE) |