|
@@ -16,17 +16,16 @@
|
|
#include <linux/hugetlb_inline.h>
|
|
#include <linux/hugetlb_inline.h>
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Bits in mapping->flags. The lower __GFP_BITS_SHIFT bits are the page
|
|
|
|
- * allocation mode flags.
|
|
|
|
|
|
+ * Bits in mapping->flags.
|
|
*/
|
|
*/
|
|
enum mapping_flags {
|
|
enum mapping_flags {
|
|
- AS_EIO = __GFP_BITS_SHIFT + 0, /* IO error on async write */
|
|
|
|
- AS_ENOSPC = __GFP_BITS_SHIFT + 1, /* ENOSPC on async write */
|
|
|
|
- AS_MM_ALL_LOCKS = __GFP_BITS_SHIFT + 2, /* under mm_take_all_locks() */
|
|
|
|
- AS_UNEVICTABLE = __GFP_BITS_SHIFT + 3, /* e.g., ramdisk, SHM_LOCK */
|
|
|
|
- AS_EXITING = __GFP_BITS_SHIFT + 4, /* final truncate in progress */
|
|
|
|
|
|
+ AS_EIO = 0, /* IO error on async write */
|
|
|
|
+ AS_ENOSPC = 1, /* ENOSPC on async write */
|
|
|
|
+ AS_MM_ALL_LOCKS = 2, /* under mm_take_all_locks() */
|
|
|
|
+ AS_UNEVICTABLE = 3, /* e.g., ramdisk, SHM_LOCK */
|
|
|
|
+ AS_EXITING = 4, /* final truncate in progress */
|
|
/* writeback related tags are not used */
|
|
/* writeback related tags are not used */
|
|
- AS_NO_WRITEBACK_TAGS = __GFP_BITS_SHIFT + 5,
|
|
|
|
|
|
+ AS_NO_WRITEBACK_TAGS = 5,
|
|
};
|
|
};
|
|
|
|
|
|
static inline void mapping_set_error(struct address_space *mapping, int error)
|
|
static inline void mapping_set_error(struct address_space *mapping, int error)
|
|
@@ -78,7 +77,7 @@ static inline int mapping_use_writeback_tags(struct address_space *mapping)
|
|
|
|
|
|
static inline gfp_t mapping_gfp_mask(struct address_space * mapping)
|
|
static inline gfp_t mapping_gfp_mask(struct address_space * mapping)
|
|
{
|
|
{
|
|
- return (__force gfp_t)mapping->flags & __GFP_BITS_MASK;
|
|
|
|
|
|
+ return mapping->gfp_mask;
|
|
}
|
|
}
|
|
|
|
|
|
/* Restricts the given gfp_mask to what the mapping allows. */
|
|
/* Restricts the given gfp_mask to what the mapping allows. */
|
|
@@ -94,8 +93,7 @@ static inline gfp_t mapping_gfp_constraint(struct address_space *mapping,
|
|
*/
|
|
*/
|
|
static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
|
|
static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
|
|
{
|
|
{
|
|
- m->flags = (m->flags & ~(__force unsigned long)__GFP_BITS_MASK) |
|
|
|
|
- (__force unsigned long)mask;
|
|
|
|
|
|
+ m->gfp_mask = mask;
|
|
}
|
|
}
|
|
|
|
|
|
void release_pages(struct page **pages, int nr, bool cold);
|
|
void release_pages(struct page **pages, int nr, bool cold);
|