mm: return boolean from page_has_private()
Make page_has_private() return a true boolean value and remove the double negations from the two callsites using it for arithmetic. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Christoph Lameter <cl@linux-foundation.org> Reviewed-by: Christoph Lameter <cl@linux-foundation.org> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
6c0b13519d
Коммит
edcf4748cd
|
@ -402,8 +402,8 @@ static inline void __ClearPageTail(struct page *page)
|
||||||
*/
|
*/
|
||||||
#define PAGE_FLAGS_CHECK_AT_PREP ((1 << NR_PAGEFLAGS) - 1)
|
#define PAGE_FLAGS_CHECK_AT_PREP ((1 << NR_PAGEFLAGS) - 1)
|
||||||
|
|
||||||
#endif /* !__GENERATING_BOUNDS_H */
|
#define PAGE_FLAGS_PRIVATE \
|
||||||
|
(1 << PG_private | 1 << PG_private_2)
|
||||||
/**
|
/**
|
||||||
* page_has_private - Determine if page has private stuff
|
* page_has_private - Determine if page has private stuff
|
||||||
* @page: The page to be checked
|
* @page: The page to be checked
|
||||||
|
@ -411,8 +411,11 @@ static inline void __ClearPageTail(struct page *page)
|
||||||
* Determine if a page has private stuff, indicating that release routines
|
* Determine if a page has private stuff, indicating that release routines
|
||||||
* should be invoked upon it.
|
* should be invoked upon it.
|
||||||
*/
|
*/
|
||||||
#define page_has_private(page) \
|
static inline int page_has_private(struct page *page)
|
||||||
((page)->flags & ((1 << PG_private) | \
|
{
|
||||||
(1 << PG_private_2)))
|
return !!(page->flags & PAGE_FLAGS_PRIVATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* !__GENERATING_BOUNDS_H */
|
||||||
|
|
||||||
#endif /* PAGE_FLAGS_H */
|
#endif /* PAGE_FLAGS_H */
|
||||||
|
|
|
@ -272,7 +272,7 @@ static int migrate_page_move_mapping(struct address_space *mapping,
|
||||||
pslot = radix_tree_lookup_slot(&mapping->page_tree,
|
pslot = radix_tree_lookup_slot(&mapping->page_tree,
|
||||||
page_index(page));
|
page_index(page));
|
||||||
|
|
||||||
expected_count = 2 + !!page_has_private(page);
|
expected_count = 2 + page_has_private(page);
|
||||||
if (page_count(page) != expected_count ||
|
if (page_count(page) != expected_count ||
|
||||||
(struct page *)radix_tree_deref_slot(pslot) != page) {
|
(struct page *)radix_tree_deref_slot(pslot) != page) {
|
||||||
spin_unlock_irq(&mapping->tree_lock);
|
spin_unlock_irq(&mapping->tree_lock);
|
||||||
|
|
|
@ -286,7 +286,7 @@ static inline int page_mapping_inuse(struct page *page)
|
||||||
|
|
||||||
static inline int is_page_cache_freeable(struct page *page)
|
static inline int is_page_cache_freeable(struct page *page)
|
||||||
{
|
{
|
||||||
return page_count(page) - !!page_has_private(page) == 2;
|
return page_count(page) - page_has_private(page) == 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int may_write_to_queue(struct backing_dev_info *bdi)
|
static int may_write_to_queue(struct backing_dev_info *bdi)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче