#include <linux/msdos_fs.h>
#include <linux/smp_lock.h>
+/* MS-DOS "device special files" */
+static const unsigned char *reserved_names[] = {
+ "CON ", "PRN ", "NUL ", "AUX ",
+ "LPT1 ", "LPT2 ", "LPT3 ", "LPT4 ",
+ "COM1 ", "COM2 ", "COM3 ", "COM4 ",
+ NULL
+};
+
/* Characters that are undesirable in an MS-DOS file name */
static unsigned char bad_chars[] = "*?<>|\"";
static unsigned char bad_if_strict_pc[] = "+=,; ";
*/
{
unsigned char *walk;
+ const unsigned char **reserved;
unsigned char c;
int space;
}
while (walk - res < MSDOS_NAME)
*walk++ = ' ';
-
+ if (!opts->atari)
+ /* GEMDOS is less stupid and has no reserved names */
+ for (reserved = reserved_names; *reserved; reserved++)
+ if (!strncmp(res, *reserved, 8))
+ return -EINVAL;
return 0;
}