diff options
Diffstat (limited to 'include/linux/swapops.h')
| -rw-r--r-- | include/linux/swapops.h | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/include/linux/swapops.h b/include/linux/swapops.h index 792d16d9cbc..47ead515c81 100644 --- a/include/linux/swapops.h +++ b/include/linux/swapops.h @@ -9,13 +9,15 @@   * get good packing density in that tree, so the index should be dense in   * the low-order bits.   * - * We arrange the `type' and `offset' fields so that `type' is at the five + * We arrange the `type' and `offset' fields so that `type' is at the seven   * high-order bits of the swp_entry_t and `offset' is right-aligned in the - * remaining bits. + * remaining bits.  Although `type' itself needs only five bits, we allow for + * shmem/tmpfs to shift it all up a further two bits: see swp_to_radix_entry().   *   * swp_entry_t's are *never* stored anywhere in their arch-dependent format.   */ -#define SWP_TYPE_SHIFT(e)	(sizeof(e.val) * 8 - MAX_SWAPFILES_SHIFT) +#define SWP_TYPE_SHIFT(e)	((sizeof(e.val) * 8) - \ +			(MAX_SWAPFILES_SHIFT + RADIX_TREE_EXCEPTIONAL_SHIFT))  #define SWP_OFFSET_MASK(e)	((1UL << SWP_TYPE_SHIFT(e)) - 1)  /*  |