Hi Hannes,loop.c does this (in do_loop_switch()):
Hannes Reinecke <hare@xxxxxxx> writes:
When running on files the physical blocksize is actually 4k,
How did you come to that conclusion? Are you basing it on the file
system block size? If so, that's configurable at mkfs time and can be
anything from 512 bytes to 64k on current in-tree file systems that I
know of (depending on platform, of course).
The main use for physical block size, as I understand it, is to allowThe main point here is that some utilities (eg bootloaders) need to know the _physical_ location of a particular blob, for which it needs to know the physical blocksize.
partitioning utilities to place partitions on physical block boundaries
of the underlying storage. The benefit of that is to avoid
read-modify-writes for I/O which is naturally sized and aligned. If we
carry that forward to loop, then I think it does makes sense to key off
of the file system block size, but the fact remains that 4k is not
universal.
So, I think the idea is sound, but you should be setting the physicalNeither do I. But the code doesn't treat it that way, so I elected
block size to sb->s_blocksize. And I don't see any reason why we
wouldn't do this by default, do you?
If you end up reposting this patch, would you mind including more ofSure.
this rationale in your commit message?