diff --git a/[refs] b/[refs] index 3cd6e654ea93..91d6ab51baeb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1601ff0e29cfe112b06aa9bb2fb3519a1125baaa +refs/heads/master: ebf7a227dd1d810203a19642655d2fa293f395dd diff --git a/trunk/fs/buffer.c b/trunk/fs/buffer.c index 16cfbcd254f1..eeb8ac1aa856 100644 --- a/trunk/fs/buffer.c +++ b/trunk/fs/buffer.c @@ -701,7 +701,10 @@ EXPORT_SYMBOL(mark_buffer_dirty_inode); */ int __set_page_dirty_buffers(struct page *page) { - struct address_space * const mapping = page->mapping; + struct address_space * const mapping = page_mapping(page); + + if (unlikely(!mapping)) + return !TestSetPageDirty(page); spin_lock(&mapping->private_lock); if (page_has_buffers(page)) {