Files
linux/fs
KOSAKI Motohiro 7e405afc25 mm: __set_page_dirty uses spin_lock_irqsave instead of spin_lock_irq
commit 227d53b397 upstream.

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.

Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Reported-by: David Rientjes rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-20 11:06:11 -08:00
..
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-03-12 18:55:21 -07:00
2014-02-13 13:47:59 -08:00
2013-05-24 16:22:51 -07:00
2013-07-13 11:42:26 -07:00
2013-04-29 15:41:42 -04:00
2013-11-13 12:05:31 +09:00
2013-03-23 14:15:31 -07:00
2014-02-13 13:48:00 -08:00
2013-05-07 20:16:25 -07:00
2013-08-14 22:59:10 -07:00
2013-07-21 18:21:36 -07:00
2013-04-29 15:40:23 -04:00
2013-10-05 07:13:09 -07:00
2013-05-07 20:16:25 -07:00
2013-02-22 23:31:31 -05:00
2013-02-22 23:31:31 -05:00
2013-04-17 13:25:09 +01:00
2013-02-22 23:31:31 -05:00
2013-05-31 15:16:33 -04:00
2013-02-22 23:31:31 -05:00
2014-02-13 13:47:59 -08:00
2013-02-26 02:46:08 -05:00
2013-08-04 16:51:15 +08:00