On Mon, 3 Feb 2014, Christoph Hellwig wrote: > On Fri, Jan 31, 2014 at 03:20:17AM -0500, Mikulas Patocka wrote: > > So if you think you can support 16TiB devices and leave pgoff_t 32-bit, > > send a patch that does it. > > > > Until you make it, you should apply the patch that I sent, that prevents > > kernel lockups or data corruption when the user uses 16TiB device on > > 32-bit kernel. > > Exactly. I had actually looked into support for > 16TiB devices for > a NAS use case a while ago, but when explaining the effort involves > the idea was dropped quickly. The Linux block device is too deeply > tied to the pagecache to make it easily feasible. The memory management routines use pgoff_t, so we could define pgoff_t to be 64-bit type. But there is lib/radix_tree.c that uses unsigned long as an index into the radix tree - and pgoff_t is cast to unsigned long when calling the radix_tree routines - so we'd need to change lib/radix_tree to use pgoff_t. Then, there may be other places where pgoff_t is cast to unsigned long and they are not trivial to find (one could enable some extra compiler warnings about truncating values when casting them, but I suppose, this would trigger a lot of false positives). This needs some deep review by people who designed the memory management code. Mikulas -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>