Messages in this thread | | | Date | Tue, 4 Feb 2014 13:34:29 -0800 (PST) | From | David Rientjes <> | Subject | Re: [PATCH] __set_page_dirty uses spin_lock_irqsave instead of spin_lock_irq |
| |
On Tue, 4 Feb 2014, kosaki.motohiro@gmail.com wrote:
> From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> > > To use spin_{un}lock_irq is dangerous if caller disabled interrupt. > During aio buffer migration, we have a possibility to see the > following call stack. > > aio_migratepage [disable interrupt] > migrate_page_copy > clear_page_dirty_for_io > set_page_dirty > __set_page_dirty_buffers > __set_page_dirty > spin_lock_irq > > This mean, current aio migration is a deadlockable. spin_lock_irqsave > is a safer alternative and we should use it. > > Reported-by: David Rientjes rientjes@google.com> > Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> > Cc: stable@vger.kernel.org
Acked-by: David Rientjes <rientjes@google.com>
| |