Re: [PATCH] bcache: Take data offset from the bdev superblock.

From: Gabriel
Date: Mon Apr 08 2013 - 17:24:16 EST


Le lun. 08 avril 2013 22:49:56 CEST, Kent Overstreet a Ãcrit :
On Mon, Apr 08, 2013 at 12:11:06PM +0200, Gabriel wrote:
Add a new superblock version, and consolidate related defines.

So, I think BDEV_WITH_OFFSET looks ok, but what's the use case for it? I
was going to add it way back but we decided not to implement the hack we
thought we needed it for - if you or someone is going to use it I'll go
ahead and apply it.

It's for converting existing devices to bcache.

https://github.com/g2p/blocks converts a partition to bcache by putting
a bcache superblock immediately before and shifting the partition start
to the left by exactly 1MB. The 1MB alignment is to play nice with other partitioning tools and drives with 4k sectors.

blocks also converts logical volumes to bcache, and for that it has to insert exactly 4MB (an LVM physical extent) before the filesystem data.

I'm already using the new format, it allowed me to get rid of some complicated stuff that sandwiched a partition table on top of an LV so that the original filesystem data was at the start of its container device.

As for BCACHE_SB_VERSION_CDEV_WITH_UUID, can you explain why you added
that? I suspect it's needed but I can't remember why I didn't add it
when I added the new UUID format (or perhaps I just forgot)

I took the name from a comment in the kernel-side bcache.h.
BCACHE_SB_VERSION_CDEV is the version make-bcache writes, and BCACHE_SB_VERSION_CDEV_WITH_UUID is what the kernel updates it too; I just changed the version names so that user-side and kernel-side were more consistent, internally and with each other.
The kernel doesn't discriminate these two versions when opening, so it should be possible to define only the latter and deprecate the other.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/