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 from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html