summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/fat/fat_write.c3
-rw-r--r--include/fat.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index 0583af3..40a3860 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -327,7 +327,8 @@ static void flush_dir_table(fsdata *mydata, dir_entry **dentptr);
static void
fill_dir_slot(fsdata *mydata, dir_entry **dentptr, const char *l_name)
{
- dir_slot *slotptr = (dir_slot *)get_contents_vfatname_block;
+ __u8 temp_dir_slot_buffer[MAX_LFN_SLOT * sizeof(dir_slot)];
+ dir_slot *slotptr = (dir_slot *)temp_dir_slot_buffer;
__u8 counter = 0, checksum;
int idx = 0, ret;
diff --git a/include/fat.h b/include/fat.h
index 8ec91cd..e38f380 100644
--- a/include/fat.h
+++ b/include/fat.h
@@ -33,6 +33,8 @@
#define FAT16BUFSIZE (FATBUFSIZE/2)
#define FAT32BUFSIZE (FATBUFSIZE/4)
+/* Maximum number of entry for long file name according to spec */
+#define MAX_LFN_SLOT 20
/* Filesystem identifiers */
#define FAT12_SIGN "FAT12 "