From: Mike Snitzer <snitzer@redhat.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: dm-devel@redhat.com, Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org, Christoph Hellwig <hch@lst.de>
Subject: Re: WARNING: at fs/block_dev.c:5 when removing LV on removed device
Date: Thu, 18 Jun 2015 15:28:21 -0400 [thread overview]
Message-ID: <20150618192821.GA4027@redhat.com> (raw)
In-Reply-To: <20150618190815.GA6390@redhat.com>
On Thu, Jun 18 2015 at 3:08pm -0400,
Vivek Goyal <vgoyal@redhat.com> wrote:
> 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@firstfloor.org> 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.
write_inode_now() should fail.. the device is no longer there. No idea
how virtio-blk avoids it, devil is in the blkdev refcount details I'm
sure.
> WARN_ON_ONCE(write_inode_now(inode, true))
>
> If we failed to write back inode, then warning about it sounds right?
A warning is fine.. not a WARN_ON(). Pretty alarming backtrace spew but
maybe I'm missing something and DM's blkdev refcount mgmt couldn't
trigger this WARN_ON()? I fail to see how to avoid it given the device
isn't thre so write_inode_now() fails.
> What's wrong with that? Should it be just a kernel log of level KERN_WARN
> instead?
Ideally, but I honestly don't have all the details paged in my head to
say definitively. First need to answer how vitrio-blk isn't hitting
this (and DM is). Could it be that __blkdev_put isn't getting called
for virtio-blk!?
next prev parent reply other threads:[~2015-06-18 19:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-18 16:57 WARNING: at fs/block_dev.c:5 when removing LV on removed device Andi Kleen
2015-06-18 18:04 ` Mike Snitzer
2015-06-18 18:08 ` Andi Kleen
2015-06-18 18:16 ` Mike Snitzer
2015-06-18 19:08 ` [dm-devel] " Vivek Goyal
2015-06-18 19:28 ` Mike Snitzer [this message]
2015-06-19 6:47 ` Christoph Hellwig
2015-06-22 17:46 ` Vivek Goyal
2015-06-22 17:52 ` Tejun Heo
2015-06-22 17:55 ` Vivek Goyal
2015-06-23 10:08 ` Christoph Hellwig
2015-06-18 19:53 ` [dm-devel] " Andi Kleen
2015-06-18 21:01 ` Vivek Goyal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150618192821.GA4027@redhat.com \
--to=snitzer@redhat.com \
--cc=andi@firstfloor.org \
--cc=dm-devel@redhat.com \
--cc=hch@lst.de \
--cc=linux-kernel@vger.kernel.org \
--cc=vgoyal@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).