On Thu, May 10, 2012 at 07:06:14AM -0700, Greg KH wrote: > On Thu, May 10, 2012 at 01:36:31PM +0200, maximilian attems wrote: > > From: Kazuya Mio <k-...@sx.jp.nec.com> > > > > dd slept infinitely when fsfeeze failed because of EIO. > > To fix this problem, if ->freeze_fs fails, freeze_super() wakes up > > the tasks waiting for the filesystem to become unfrozen. > > > > When s_frozen isn't SB_UNFROZEN in __generic_file_aio_write(), > > the function sleeps until FITHAW ioctl wakes up s_wait_unfrozen. > > > > However, if ->freeze_fs fails, s_frozen is set to SB_UNFROZEN and then > > freeze_super() returns an error number. In this case, FITHAW ioctl returns > > EINVAL because s_frozen is already SB_UNFROZEN. There is no way to wake up > > s_wait_unfrozen, so __generic_file_aio_write() sleeps infinitely. > > > > Signed-off-by: Kazuya Mio <k-...@sx.jp.nec.com> > > Signed-off-by: Al Viro <v...@zeniv.linux.org.uk> > > --- > > Please consider for 3.2, seems to have been missed out there. > > Shipps with >= 3.3 linux. Can be triggered with dd testcase. > > > <formletter> > > </formletter>
This is e1616300a20c80396109c1cf013ba9a36055a3da -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html