Matthew Wilcox 133ca5c712 fs/mpage.c: fix mpage_writepage() for pages with buffers
commit f892760aa66a2d657deaf59538fb69433036767c upstream.

When using FAT on a block device which supports rw_page, we can hit
BUG_ON(!PageLocked(page)) in try_to_free_buffers().  This is because we
call clean_buffers() after unlocking the page we've written.  Introduce
a new clean_page_buffers() which cleans all buffers associated with a
page and call it from within bdev_write_page().

[akpm@linux-foundation.org: s/PAGE_SIZE/~0U/ per Linus and Matthew]
Link: http://lkml.kernel.org/r/20171006211541.GA7409@bombadil.infradead.org
Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
Reported-by: Toshi Kani <toshi.kani@hpe.com>
Reported-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Tested-by: Toshi Kani <toshi.kani@hpe.com>
Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
Cc: Ross Zwisler <ross.zwisler@linux.intel.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>
2017-10-18 09:35:39 +02:00
..
2017-05-14 14:00:13 +02:00
2016-10-15 12:09:13 -07:00
2017-09-07 08:35:40 +02:00
2017-10-18 09:35:37 +02:00
2017-08-06 18:59:43 -07:00
2017-10-08 10:26:10 +02:00
2017-06-14 15:06:00 +02:00
2017-08-06 18:59:43 -07:00
2017-10-08 10:26:11 +02:00
2017-07-05 14:40:26 +02:00
2017-06-14 15:06:00 +02:00
2016-09-27 21:20:53 -04:00
2017-08-06 18:59:43 -07:00
2017-06-14 15:06:00 +02:00
2017-07-12 15:01:02 +02:00
2016-09-27 18:47:38 -04:00
2016-06-21 09:23:11 +10:00
2017-08-06 18:59:43 -07:00
2017-06-14 15:06:01 +02:00