summaryrefslogtreecommitdiffstats
path: root/fs/fat/fat.c
diff options
context:
space:
mode:
authorSuriyan Ramasami <suriyan.r@gmail.com>2014-11-17 14:39:38 -0800
committerTom Rini <trini@ti.com>2014-11-23 06:49:04 -0500
commitd455d8789d5b35a39a0a179b3af4b423db13bfdd (patch)
tree751a2fa1db26cd7b6666bdf96cafc17db310e2b7 /fs/fat/fat.c
parent96b1046d1c68352677aa888cc110951a68daf155 (diff)
downloadblackbird-obmc-uboot-d455d8789d5b35a39a0a179b3af4b423db13bfdd.tar.gz
blackbird-obmc-uboot-d455d8789d5b35a39a0a179b3af4b423db13bfdd.zip
fs: API changes enabling extra parameter to return size of type loff_t
The sandbox/ext4/fat/generic fs commands do not gracefully deal with files greater than 2GB. Negative values are returned in such cases. To handle this, the fs functions have been modified to take an additional parameter of type "* loff_t" which is then populated. The return value of the fs functions are used only for error conditions. Signed-off-by: Suriyan Ramasami <suriyan.r@gmail.com> Acked-by: Simon Glass <sjg@chromium.org> [trini: Update board/gdsys/p1022/controlcenterd-id.c, drivers/fpga/zynqpl.c for changes] Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'fs/fat/fat.c')
-rw-r--r--fs/fat/fat.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index 83d9ce7c57..04a51db6d4 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -1248,16 +1248,9 @@ int fat_exists(const char *filename)
return ret == 0;
}
-int fat_size(const char *filename)
+int fat_size(const char *filename, loff_t *size)
{
- loff_t size;
- int ret;
-
- ret = do_fat_read_at(filename, 0, NULL, 0, LS_NO, 1, &size);
- if (ret)
- return ret;
- else
- return size;
+ return do_fat_read_at(filename, 0, NULL, 0, LS_NO, 1, size);
}
int file_fat_read_at(const char *filename, loff_t pos, void *buffer,
@@ -1280,18 +1273,16 @@ int file_fat_read(const char *filename, void *buffer, int maxsize)
return actread;
}
-int fat_read_file(const char *filename, void *buf, int offset, int len)
+int fat_read_file(const char *filename, void *buf, loff_t offset, loff_t len,
+ loff_t *actread)
{
int ret;
- loff_t actread;
- ret = file_fat_read_at(filename, offset, buf, len, &actread);
- if (ret) {
+ ret = file_fat_read_at(filename, offset, buf, len, actread);
+ if (ret)
printf("** Unable to read file %s **\n", filename);
- return ret;
- }
- return actread;
+ return ret;
}
void fat_close(void)
OpenPOWER on IntegriCloud