[dm-devel] [RFC, PATCH] dm-log.c: Work with devices with hard-sector-size > 512 bytes

Kevin Corry kevcorry at us.ibm.com
Tue Mar 28 22:58:36 UTC 2006


On Tue March 28 2006 9:01 am, Alasdair G Kergon wrote:
> A couple of options:
>
>   Retain the existing on-disk format exactly, but adjust the offsets and
>   sizes used in the reads and writes to avoid the problems (pre-reading
>   other data if necessary to extend a write).

This method seems like it should be easy to implement. We could just extend 
the buffer for the disk-header and always read and write both the header and 
the log at the same time, and just point lc->clean_bits at the appropriate 
offset within that buffer. The log could then remain at offset 1k, and the 
version wouldn't have to change.

>   Add an option to create version 3 metadata storing the offset in the
>   on-disk header but continue to use version 2 by default.

I think this is a better overall solution - less kludgy and more flexible.

>   Update userspace code to request version 3 (via new log parameter) for
>   new mirror logs by default, but still permit version 2 for new logs.

Is there a situation where someone would still need to create a new version 2 
log? I would think it would be far simpler to switch all new logs to use 
version 3, and revert back to version 2 only when the log offset recorded in 
the on-disk header is blank.

Or were you thinking of using this new log parameter to allow user-space to 
specify the offset of the log?

On a related note, shouldn't log_header.nr_regions be a uint64_t instead of a 
sector_t? The header_to_disk() and header_from_disk() routines already treat 
it as 64-bit.

-- 
Kevin Corry
kevcorry at us.ibm.com
http://www.ibm.com/linux/
http://evms.sourceforge.net/




More information about the dm-devel mailing list