summaryrefslogtreecommitdiff
path: root/fs/fat/fat_write.c
diff options
context:
space:
mode:
authorDonggeun Kim <dg77.kim@samsung.com>2012-03-22 04:38:55 +0000
committerAnatolij Gustschin <agust@denx.de>2012-03-24 23:27:32 +0100
commit079df7223c05518687cbd2eb9ad1b3d1712ee6d7 (patch)
treeb95010f6313f85826e3f2e64d76f31aca91dcc24 /fs/fat/fat_write.c
parent7cb30b13f12077c7eec8ce2419cd96cd65ace8e2 (diff)
FAT write: Fix compile errors
This patch removes compile errors introduced by commit 9813b750f32c0056f0a35813b9a9ec0f68b664af 'fs/fat: Fix FAT detection to support non-DOS partition tables' fat_write.c: In function 'disk_write': fat_write.c:54: error: 'part_offset' undeclared (first use in this function) fat_write.c:54: error: (Each undeclared identifier is reported only once fat_write.c:54: error: for each function it appears in.) fat_write.c: In function 'do_fat_write': fat_write.c:950: error: 'part_size' undeclared (first use in this function) These errors only appear when this code is enabled by defining CONFIG_FAT_WRITE option. This patch was originally part of http://article.gmane.org/gmane.comp.boot-loaders.u-boot/121847 Signed-off-by: Donggeun Kim <dg77.kim@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Maximilian Schwerin <mvs@tigris.de> Fixed patch author and added all needed SoB from the original patch and also submitter's SoB. Extended commit log. Signed-off-by: Anatolij Gustschin <agust@denx.de>
Diffstat (limited to 'fs/fat/fat_write.c')
-rw-r--r--fs/fat/fat_write.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index 3bfc1c4b32..16f8400b39 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -41,23 +41,19 @@ static void uppercase(char *str, int len)
}
static int total_sector;
-static int disk_write(__u32 startblock, __u32 getsize, __u8 *bufptr)
+static int disk_write(__u32 block, __u32 nr_blocks, void *buf)
{
- if (cur_dev == NULL)
+ if (!cur_dev || !cur_dev->block_write)
return -1;
- if (startblock + getsize > total_sector) {
+ if (cur_part_info.start + block + nr_blocks >
+ cur_part_info.start + total_sector) {
printf("error: overflow occurs\n");
return -1;
}
- startblock += part_offset;
-
- if (cur_dev->block_read) {
- return cur_dev->block_write(cur_dev->dev, startblock, getsize,
- (unsigned long *) bufptr);
- }
- return -1;
+ return cur_dev->block_write(cur_dev->dev,
+ cur_part_info.start + block, nr_blocks, buf);
}
/*
@@ -797,7 +793,7 @@ static int check_overflow(fsdata *mydata, __u32 clustnum, unsigned long size)
if (size % mydata->sect_size)
sect_num++;
- if (startsect + sect_num > total_sector)
+ if (startsect + sect_num > cur_part_info.start + total_sector)
return -1;
return 0;
@@ -947,7 +943,7 @@ static int do_fat_write(const char *filename, void *buffer,
total_sector = bs.total_sect;
if (total_sector == 0)
- total_sector = part_size;
+ total_sector = cur_part_info.size;
root_cluster = bs.root_cluster;