Skip to content

Commit 9da2285

Browse files
carmeli-tamirtorvalds
authored andcommitted
include/uapi/linux/msdos_fs.h: use MSDOS_NAME for volume label size
The FAT file system volume label file stored in the root directory should match the volume label field in the FAT boot sector. As consequence, the max length of these fields ought to be the same. This patch replaces the magic '11' usef in the struct fat_boot_sector with MSDOS_NAME, which is used in struct msdos_dir_entry. Please check the following references: 1. Microsoft FAT specification 2005 (http://read.pudn.com/downloads77/ebook/294884/FAT32%20Spec%20%28SDA%20Contribution%29.pdf). Search for 'volume label'. 2. Microsoft Extensible Firmware Initiative, FAT32 File System Specification (https://staff.washington.edu/dittrich/misc/fatgen103.pdf). Search for 'volume label'. 3. User space code that creates FAT filesystem sometimes uses MSDOS_NAME for the label, sometimes not. Search for 'if (memcmp(label, NO_NAME, MSDOS_NAME))'. I consider to make the same patch there as well. https://github.com/dosfstools/dosfstools/blob/master/src/mkfs.fat.c Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Carmeli Tamir <[email protected]> Reviewed-by: Sergey Senozhatsky <[email protected]> Reviewed-by: Johannes Thumshirn <[email protected]> Acked-by: OGAWA Hirofumi <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Bart Van Assche <[email protected]> Cc: Martin K. Petersen <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
1 parent f93ca1e commit 9da2285

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

include/uapi/linux/msdos_fs.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ struct fat_boot_sector {
135135
for mount state. */
136136
__u8 signature; /* extended boot signature */
137137
__u8 vol_id[4]; /* volume ID */
138-
__u8 vol_label[11]; /* volume label */
138+
__u8 vol_label[MSDOS_NAME]; /* volume label */
139139
__u8 fs_type[8]; /* file system type */
140140
/* other fields are not added here */
141141
} fat16;
@@ -158,7 +158,7 @@ struct fat_boot_sector {
158158
for mount state. */
159159
__u8 signature; /* extended boot signature */
160160
__u8 vol_id[4]; /* volume ID */
161-
__u8 vol_label[11]; /* volume label */
161+
__u8 vol_label[MSDOS_NAME]; /* volume label */
162162
__u8 fs_type[8]; /* file system type */
163163
/* other fields are not added here */
164164
} fat32;

0 commit comments

Comments
 (0)