[dm-devel] Question about dm target size

Mike Snitzer snitzer at redhat.com
Wed Nov 12 02:06:41 UTC 2014

On Tue, Nov 11 2014 at  7:37pm -0500,
Josef Bacik <jbacik at fb.com> wrote:

> Hello,
> I'm creating a dm target to better test power fail situations and
> I'm having trouble figuring out how to make the dm device appear as
> a different size.  So for example you do the normal dm table
> offset size power-fail /dev/whatever args

So "size" should be constrained to:
size=$(sudo blockdev --getsz /dev/whatever); $((size/2))

> I want to use the entire size of /dev/whatever, but I want my dm
> device to show up as size/2.  So right now I'm doing this in my
> ->ctr function
> ti->len /= 2;

You don't want to mess with ti->len.  If you have "size" be size/2
then ti->len will automatically reflect that.

But anyway, I'm mot really following how you'd map the entire
/dev/whatever but only expose half its size to the user.  What would the
target's ->map function be doing?
> Is that acceptable, or will this have some side-effect that's going
> to bite me in the ass?  I can't see any other target that does
> something similar and there appears to be no helper function.  This
> seems to work as far as blockdev --getsz is concerned, but I'm
> worried I need to do more.  Thanks,

dm-thinp is all about establishing thin volumes of fictional size...
wondering what kind of helper you were hoping to find.

The target's ->ctr would open /dev/whatever and internalize
/dev/whatever's size and ->map would deal with remapping of bios sent to
the target over to /dev/whatever.

More information about the dm-devel mailing list