Long file name support for the FAT file system are covered by Microsoft patents. Microsoft offers licenses for use of the FAT specification with long file name support, asking 0.25 USD per device sold, to a maximum of 250000 USD. Long file name support is what allows FAT to handle file names that are longer than the 8.3 configuration. This 8.3 configuration pre-dates FAT, and was already in use by DEC, Data General, and CP/M before MS-DOS was conceived.
In any case, this patent issue was what caused the fallout between Microsoft and Dutch navigation equipment maker TomTom earlier this year. TomTom didn't buy the license, but still offered support for long file names in FAT through its use of the Linux kernel. Microsoft sued them for patent infringement, but the two settled their dispute, with TomTom promising to remove the infringing functionality from their devices.
Microsoft claims the lawsuit was an incident, and that the rest of the Linux world have nothing to fear. Still, it is understandable that many Linux device makers who require FAT support aren't particularly comfortable with a vague promise, and would much prefer a solution where the Linux kernel still offers support for long file names in FAT, but without infringing any Microsoft patents. The ideal situation, obviously, would be to get rid of FAT altogether, but that will take time, and in the meantime, FAT needs to be supported.
Andrew Tridgell, of SAMBA fame, has posted a patch on the LKML that does just that. The new patch offers support for long file names without infringing any of Microsoft's patents. This isn't just an empty claim; several patent lawyers with expertise in this area have investigated the patch and concluded that it does not infringe the patents.
In a Q&A about the patch, more details were revealed about how it avoids the patents:
So, are there any downsides to this patch? Well, only if you are unlucky enough to still be using Windows 9x-based or MS-DOS operating systems. Tridgell believes this scenario is too rare to worry about, and there's always the
msdos file system, which forces 8.3 and doesn't use long file names altogether.