Re: Bug in BLKBSZSET/GET ioctl ?

From: Wu Fengguang
Date: Wed Dec 28 2011 - 23:41:06 EST


On Thu, Dec 29, 2011 at 12:28:44PM +0800, Wanlong Gao wrote:
> On 12/29/2011 12:20 PM, Wu Fengguang wrote:
>
> > On Thu, Dec 29, 2011 at 11:51:45AM +0800, Wanlong Gao wrote:
> >> Hi all:
> >>
> >> This is first reported to *libguestfs*: https://bugzilla.redhat.com/show_bug.cgi?id=624335
> >>
> >> Then, I looked into upstream util-linux and it seems nothing wrong. I'm not convinced that it's a kernel bug.
> >>
> >> produce:
> >>
> >> ---
> >> # ./util-linux/disk-utils/blockdev --getbsz /dev/sda6
> >> 4096
> >> # ./util-linux/disk-utils/blockdev --setbsz 2048 /dev/sda6
> >> # ./util-linux/disk-utils/blockdev --getbsz /dev/sda6
> >> 4096
> >> # ./util-linux/disk-utils/blockdev --setbsz 512 /dev/sda6
> >> # ./util-linux/disk-utils/blockdev --getbsz /dev/sda6
> >> 4096
> >
> > I think each blockdev invocation is working on a *new* bdev object.
>
>
> But the address of *new* bdev is the same?
> I did printk, and they all returned the same address.

Then the block size value should be reset in one of the bd_set_size()
calls in __blkdev_get().

> > You'll get consistent results if somehow keep it referenced, for
>
>
> But isn't it a bug? It seems that the setbsz has no effect?

Yeah, it does look like unexpected behavior to the end user..

Thanks,
Fengguang
--
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/