mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
[PATCH] BLOCK: Move functions out of buffer code [try #6]
Move some functions out of the buffering code that aren't strictly buffering
specific. This is a precursor to being able to disable the block layer.
(*) Moved some stuff out of fs/buffer.c:
(*) The file sync and general sync stuff moved to fs/sync.c.
(*) The superblock sync stuff moved to fs/super.c.
(*) do_invalidatepage() moved to mm/truncate.c.
(*) try_to_release_page() moved to mm/filemap.c.
(*) Moved some related declarations between header files:
(*) declarations for do_invalidatepage() and try_to_release_page() moved
to linux/mm.h.
(*) __set_page_dirty_buffers() moved to linux/buffer_head.h.
Signed-Off-By: David Howells <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
4090959aee
commit
cf9a2ae8d4
9 changed files with 204 additions and 177 deletions
|
|
@ -17,6 +17,30 @@
|
|||
do_invalidatepage */
|
||||
|
||||
|
||||
/**
|
||||
* do_invalidatepage - invalidate part of all of a page
|
||||
* @page: the page which is affected
|
||||
* @offset: the index of the truncation point
|
||||
*
|
||||
* do_invalidatepage() is called when all or part of the page has become
|
||||
* invalidated by a truncate operation.
|
||||
*
|
||||
* do_invalidatepage() does not have to release all buffers, but it must
|
||||
* ensure that no dirty buffer is left outside @offset and that no I/O
|
||||
* is underway against any of the blocks which are outside the truncation
|
||||
* point. Because the caller is about to free (and possibly reuse) those
|
||||
* blocks on-disk.
|
||||
*/
|
||||
void do_invalidatepage(struct page *page, unsigned long offset)
|
||||
{
|
||||
void (*invalidatepage)(struct page *, unsigned long);
|
||||
invalidatepage = page->mapping->a_ops->invalidatepage;
|
||||
if (!invalidatepage)
|
||||
invalidatepage = block_invalidatepage;
|
||||
if (invalidatepage)
|
||||
(*invalidatepage)(page, offset);
|
||||
}
|
||||
|
||||
static inline void truncate_partial_page(struct page *page, unsigned partial)
|
||||
{
|
||||
memclear_highpage_flush(page, partial, PAGE_CACHE_SIZE-partial);
|
||||
|
|
|
|||
Loading…
Reference in a new issue