diff options
author | Tom Rini <trini@ti.com> | 2014-11-24 11:50:46 -0500 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-12-01 15:21:57 -0500 |
commit | 9e374e7b729dc9f68be89cd3e3b1d4d48c768ecf (patch) | |
tree | 159d3795f8fd20087fa4123a26c3e2efdde02121 /fs/fat | |
parent | e17e998d7fee2e7d381b7bff21aca3714387d5d7 (diff) | |
download | u-boot-imx-9e374e7b729dc9f68be89cd3e3b1d4d48c768ecf.zip u-boot-imx-9e374e7b729dc9f68be89cd3e3b1d4d48c768ecf.tar.gz u-boot-imx-9e374e7b729dc9f68be89cd3e3b1d4d48c768ecf.tar.bz2 |
fs/ext4/ext4fs.c, fs/fs.c fs/fat/fat_write.c: Adjust 64bit math methods
The changes to introduce loff_t into filesize means that we need to do
64bit math on 32bit platforms. Make sure we use the right wrappers for
these operations.
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Suriyan Ramasami <suriyan.r@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@ti.com>
Tested-by: Pierre Aubert <p.aubert@staubli.com>
Diffstat (limited to 'fs/fat')
-rw-r--r-- | fs/fat/fat_write.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index 88dd495..98b88ad 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -13,6 +13,8 @@ #include <asm/byteorder.h> #include <part.h> #include <linux/ctype.h> +#include <div64.h> +#include <linux/math64.h> #include "fat.c" static void uppercase(char *str, int len) @@ -770,7 +772,7 @@ static void fill_dentry(fsdata *mydata, dir_entry *dentptr, */ static int check_overflow(fsdata *mydata, __u32 clustnum, loff_t size) { - __u32 startsect, sect_num; + __u32 startsect, sect_num, offset; if (clustnum > 0) { startsect = mydata->data_begin + @@ -779,13 +781,13 @@ static int check_overflow(fsdata *mydata, __u32 clustnum, loff_t size) startsect = mydata->rootdir_sect; } - sect_num = size / mydata->sect_size; - if (size % mydata->sect_size) + sect_num = div_u64_rem(size, mydata->sect_size, &offset); + + if (offset != 0) sect_num++; if (startsect + sect_num > cur_part_info.start + total_sector) return -1; - return 0; } |