[dm-devel] blockdev --flushbufs required [was: parted issue/question

Jim Meyering jim at meyering.net
Wed Jan 18 13:44:42 UTC 2012


[Following up on this thread:
 http://thread.gmane.org/gmane.linux.kernel.device-mapper.devel/14999]

Alasdair G Kergon wrote:
> Try
>   blkdev --flushbufs
> after any cmd that writes to a dev to see if that makes any difference.

Thanks for the work-around.
Using "blockdev --flushbufs $dev" does indeed make parted
behave the same with dm-backed storage as with other devices.

Adjusting my small example,

  cd /tmp; truncate -s 10m g && loop=$(losetup --show -f g)
  echo 0 100 linear $loop 0 | dmsetup create zub
  dev=/dev/mapper/zub
  parted -s $dev \
    mklabel gpt \
    mkpart efi 34s 34s \
    mkpart root 35s 35s \
    mkpart roo2 36s 36s \
    u s p
  blockdev --flushbufs $dev # FIXME: required with device-mapper-1.02.65-5

  # write random bits to p1
  dd of=${dev}p1 if=/dev/urandom count=1
  dd if=${dev}p1 of=p1-copy.pre count=1
  parted -s $dev mkpart p4 37s 37s
  blockdev --flushbufs $dev # FIXME: required with device-mapper-1.02.65-5

  dd if=${dev}p1 of=p1-copy.post count=1
  cmp -l p1-copy.pre p1-copy.post

With that, the "cmp" show no differences.

Does this sound like a problem in device-mapper land,
or in how parted interacts with DM?




More information about the dm-devel mailing list