From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 5 Aug 2016 22:14:47 +0200 From: Pavel Machek To: Charles Gong Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com, Christoph Hellwig Subject: Re: [PATCH] Fix sysrq emergency thaw Message-ID: <20160805201447.GC7999@amd> References: <5823da614460b8c40809e6e0a6de172a9c4f4611.1468965479.git.cggong@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5823da614460b8c40809e6e0a6de172a9c4f4611.1468965479.git.cggong@fb.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: On Wed 2016-07-20 16:11:16, Charles Gong wrote: > "SYSRQ + J" triggers a call to emergency_thaw_all(). Currently, this > is an infinite loop. Once we trigger it, we'll need to do a hard > power-cycle. There are users reporting this bug from 2012 to 2016, for > example, at https://bugzilla.kernel.org/show_bug.cgi?id=47741. > > This happens because thaw_bdev() fails to return -EINVAL in the > non-frozen case, so fix it so that do_one_thaw() can recognize this case > and quit from looping. I checked that none of the other thaw_bdev() > callers check the return value. > > The regression was introduced in commit 4504230a7156 ("freeze_bdev: grab > active reference to frozen superblocks"). > > Reviewed-by: Chris Mason > Signed-off-by: Charles Gong Acked-by: Pavel Machek (even magic should be finite...) -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html