)]}'
{
  "commit": "0cad47cf13bc2e9142d3a11d9f50523797d0d4ea",
  "tree": "e0e71528060a11a909f4191738cb3f1abae2e89f",
  "parents": [
    "da3bbdd4632c0171406b2677e31494afa5bde2f8"
  ],
  "author": {
    "name": "Andy Whitcroft",
    "email": "apw@shadowen.org",
    "time": "Wed Jul 23 21:27:16 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Jul 24 10:47:15 2008 -0700"
  },
  "message": "page-flags: record page flag overlays explicitly\n\nWith the recent page flag reorganisation we have a single enum which\ndefines the valid page flags and their values, nice and clear.  However\nthere are a number of bits which are overloaded by different subsystems.\nFirstly there is PG_owner_priv_1 which is used by filesystems and by XEN.\nSecondly both SLOB and SLUB use a couple of extra page bits to manage\ninternal state for pages they own; both overlay other bits.  All of these\n\"aliases\" are scattered about the source making it very hard for a reader\nto know if the bits are safe to rely on in all contexts; confusion here is\nbad.\n\nAs we now have a single place where the bits are clearly assigned it makes\nsense to clarify the reuse of bits by making the aliases explicit and\nvisible with the original bit assignments.  This patch creates explicit\naliases within the enum itself for the overloaded bits, creates standard\nbit accessors PageFoo etc.  and uses those throughout.\n\nThis version pulls the bit manipulation out to standard named page bit\naccessors as suggested by Christoph, it retains the explicit mapping to\nthe overlayed bits.  A fusion of both ideas.  This has been SLUB and SLOB\nhave been compile tested on x86_64 only, and SLUB boot tested.  If people\nfeel this is worth doing then I can run a fuller set of testing.\n\nThis patch:\n\nSome page flags are used for more than one purpose, for example\nPG_owner_priv_1.  Currently there are individual accessors for each user,\neach built using the common flag name far away from the bit definitions.\nThis makes it hard to see all possible uses of these bits.\n\nNow that we have a single enum to generate the bit orders it makes sense\nto express overlays in the same place.  So create per use aliases for this\nbit in the main page-flags enum and use those in the accessors.\n\n[akpm@linux-foundation.org: fix xen]\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0d2a4e7012aa4663722527bba42c99e4b3b2a6a6",
      "old_mode": 33188,
      "old_path": "include/linux/page-flags.h",
      "new_id": "7d8db1233e4491bad3496f64ab69becc17893089",
      "new_mode": 33188,
      "new_path": "include/linux/page-flags.h"
    }
  ]
}
