Merge branch 'drm-vmwgfx-fixes' of ssh://people.freedesktop.org/~syeh/repos_linux...
[cascardo/linux.git] / include / linux / pagemap.h
index 747f401..dd15d39 100644 (file)
 #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 {
-       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 */
-       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)
@@ -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)
 {
-       return (__force gfp_t)mapping->flags & __GFP_BITS_MASK;
+       return mapping->gfp_mask;
 }
 
 /* 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)
 {
-       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);