From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fengguang Wu Subject: Re: [PATCH] writeback: fix hung_task alarm when sync block Date: Wed, 13 Jun 2012 09:18:17 +0800 Message-ID: <20120613011817.GA24315@localhost> References: <1339548774-4834-1-git-send-email-liwp.linux@gmail.com> <20120613005945.GA24091@localhost> <20120613011151.GA2181@kernel> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Alexander Viro , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Gavin Shan To: Wanpeng Li Return-path: Content-Disposition: inline In-Reply-To: <20120613011151.GA2181@kernel> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org > >> @@ -1311,7 +1312,12 @@ void writeback_inodes_sb_nr(struct super_block *sb, > >> > >> WARN_ON(!rwsem_is_locked(&sb->s_umount)); > >> bdi_queue_work(sb->s_bdi, &work); > >> - wait_for_completion(&done); > >> + hangcheck = sysctl_hung_task_timeout_secs; > >> + if (hangcheck) > > > >The hangcheck variable looks redundant. > > if sysctl_hung_task_timeout_secs is equal to ZERO, it means infinite > timeout -- no checking done. So I think wait_for_completion_timeout > makes no sense this time. I mean, you can test sysctl_hung_task_timeout_secs directly? It's a one shot test anyway. > >> + while (!wait_for_completion_timeout(&done, HZ/2)) > >> + ; > >> + else > >> + wait_for_completion(&done); > >> } > >> EXPORT_SYMBOL(writeback_inodes_sb_nr); > >> > >> -- > >> 1.7.9.5