Re: [dm-devel] WARNING: at fs/block_dev.c:5 when removing LV on removed device
From: Vivek Goyal
Date: Thu Jun 18 2015 - 15:08:25 EST
On Thu, Jun 18, 2015 at 02:16:19PM -0400, Mike Snitzer wrote:
> On Thu, Jun 18 2015 at 2:08pm -0400,
> Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
> > > Hmm, so you have a filesystem active on it too?
> > I unmounted it before.
> > >
> > > > Also the VG removal did not work of course.
> > >
> > > Once you resolve the filesystem piece, from vgremove man page:
> > >
> > > "vgremove allows you to remove one or more volume groups. If one or
> > > more physical volumes in the volume group are lost, consider vgreduce
> > > --removemissing to make the volume group metadata consistent again."
> > Well in any case there should not be WARN()s.
> Yes well I don't even know what WARN_ON you're hitting. You're running
> a 4.0.4 fedora kernel. Which WARN_ON() is triggering? The
> WARN_ON_ONCE() in bdev_write_inode()? -- likely since the only caller of
> bdev_write_inode is __blkdev_put...
> * write_inode_now - write an inode to disk
> * @inode: inode to write to disk
> * @sync: whether the write should be synchronous or not
> * This function commits an inode to disk immediately if it is dirty. This is
> * primarily needed by knfsd.
> * The caller must either have a ref on the inode or must have set I_WILL_FREE.
> So I have no idea why bdev_write_inode() is using WARN_ON_ONCE.. makes
> since that write_inode_now() will fail if the disk no longer exists. SO
> the WARN_ON_ONCE seems misplaced.
> Git blame shows its all hch's fault:
> 564f00f6c (Christoph Hellwig 2015-01-14 10:42:33 +0100 57) WARN_ON_ONCE(write_inode_now(inode, true));
> 564f00f6c block_dev: only write bdev inode on close
I can reproduce it too in a Fedora 22 virtual machine. I just have to do
"umount <mnt>" after hot unplugging the virtIO disk.
But it does not happen without lvm. If I create ext4 fs directly on
/dev/vda1, then when disk goes way, fs automatically gets unmounted.
But same does not happen when /dev/vda1 is added to a volume group and
I carve out a logical volume and create and mount fs.
In that case if I do umount after device has gone away, I can see above
WARN(). And it does seem to be coming from.
If we failed to write back inode, then warning about it sounds right?
What's wrong with that? Should it be just a kernel log of level KERN_WARN
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/