)]}'
{
  "log": [
    {
      "commit": "e4ad08fe64afca4ef79ecc4c624e6e871688da0d",
      "tree": "5b8b390b874700041dc0c095e8ba9ac3ed42ea77",
      "parents": [
        "76f1418b485da2707531178e517bbb5cf06b3c76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "mm: bdi: add separate writeback accounting capability\n\nAdd a new BDI capability flag: BDI_CAP_NO_ACCT_WB.  If this flag is\nset, then don\u0027t update the per-bdi writeback stats from\ntest_set_page_writeback() and test_clear_page_writeback().\n\nMisc cleanups:\n\n - convert bdi_cap_writeback_dirty() and friends to static inline functions\n - create a flag that includes all three dirty/writeback related flags,\n   since almst all users will want to have them toghether\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71fe804b6d56d6a7aed680e096901434cef6a2c3",
      "tree": "3dd437e09fe6ee57644c72c79e08c562d4bb6389",
      "parents": [
        "3f226aa1cbc006f9d90f22084f519ad2a1286cd8"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Mon Apr 28 02:13:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:25 2008 -0700"
      },
      "message": "mempolicy: use struct mempolicy pointer in shmem_sb_info\n\nThis patch replaces the mempolicy mode, mode_flags, and nodemask in the\nshmem_sb_info struct with a struct mempolicy pointer, initialized to NULL.\nThis removes dependency on the details of mempolicy from shmem.c and hugetlbfs\ninode.c and simplifies the interfaces.\n\nmpol_parse_str() in mempolicy.c is changed to return, via a pointer to a\npointer arg, a struct mempolicy pointer on success.  For MPOL_DEFAULT, the\nreturned pointer is NULL.  Further, mpol_parse_str() now takes a \u0027no_context\u0027\nargument that causes the input nodemask to be stored in the w.user_nodemask of\nthe created mempolicy for use when the mempolicy is installed in a tmpfs inode\nshared policy tree.  At that time, any cpuset contextualization is applied to\nthe original input nodemask.  This preserves the previous behavior where the\ninput nodemask was stored in the superblock.  We can think of the returned\nmempolicy as \"context free\".\n\nBecause mpol_parse_str() is now calling mpol_new(), we can remove from\nmpol_to_str() the semantic checks that mpol_new() already performs.\n\nAdd \u0027no_context\u0027 parameter to mpol_to_str() to specify that it should format\nthe nodemask in w.user_nodemask for \u0027bind\u0027 and \u0027interleave\u0027 policies.\n\nChange mpol_shared_policy_init() to take a pointer to a \"context free\" struct\nmempolicy and to create a new, \"contextualized\" mempolicy using the mode,\nmode_flags and user_nodemask from the input mempolicy.\n\n  Note: we know that the mempolicy passed to mpol_to_str() or\n  mpol_shared_policy_init() from a tmpfs superblock is \"context free\".  This\n  is currently the only instance thereof.  However, if we found more uses for\n  this concept, and introduced any ambiguity as to whether a mempolicy was\n  context free or not, we could add another internal mode flag to identify\n  context free mempolicies.  Then, we could remove the \u0027no_context\u0027 argument\n  from mpol_to_str().\n\nAdded shmem_get_sbmpol() to return a reference counted superblock mempolicy,\nif one exists, to pass to mpol_shared_policy_init().  We must add the\nreference under the sb stat_lock to prevent races with replacement of the mpol\nby remount.  This reference is removed in mpol_shared_policy_init().\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: another build fix]\n[akpm@linux-foundation.org: yet another build fix]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "028fec414d803117eb4b2ed12acb4dd5da65b32d",
      "tree": "427f37ea0331369c1babc55c424c4fd2ac3b39f5",
      "parents": [
        "a3b51e0142d1be156ac697eaadadd6cfbb7ba32b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Apr 28 02:12:25 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:19 2008 -0700"
      },
      "message": "mempolicy: support optional mode flags\n\nWith the evolution of mempolicies, it is necessary to support mempolicy mode\nflags that specify how the policy shall behave in certain circumstances.  The\nmost immediate need for mode flag support is to suppress remapping the\nnodemask of a policy at the time of rebind.\n\nBoth the mempolicy mode and flags are passed by the user in the \u0027int policy\u0027\nformal of either the set_mempolicy() or mbind() syscall.  A new constant,\nMPOL_MODE_FLAGS, represents the union of legal optional flags that may be\npassed as part of this int.  Mempolicies that include illegal flags as part of\ntheir policy are rejected as invalid.\n\nAn additional member to struct mempolicy is added to support the mode flags:\n\n\tstruct mempolicy {\n\t\t...\n\t\tunsigned short policy;\n\t\tunsigned short flags;\n\t}\n\nThe splitting of the \u0027int\u0027 actual passed by the user is done in\nsys_set_mempolicy() and sys_mbind() for their respective syscalls.  This is\ndone by intersecting the actual with MPOL_MODE_FLAGS, rejecting the syscall of\nthere are additional flags, and storing it in the new \u0027flags\u0027 member of struct\nmempolicy.  The intersection of the actual with ~MPOL_MODE_FLAGS is stored in\nthe \u0027policy\u0027 member of the struct and all current users of pol-\u003epolicy remain\nunchanged.\n\nThe union of the policy mode and optional mode flags is passed back to the\nuser in get_mempolicy().\n\nThis combination of mode and flags within the same actual does not break\nuserspace code that relies on get_mempolicy(\u0026policy, ...) and either\n\n\tswitch (policy) {\n\tcase MPOL_BIND:\n\t\t...\n\tcase MPOL_INTERLEAVE:\n\t\t...\n\t};\n\nstatements or\n\n\tif (policy \u003d\u003d MPOL_INTERLEAVE) {\n\t\t...\n\t}\n\nstatements.  Such applications would need to use optional mode flags when\ncalling set_mempolicy() or mbind() for these previously implemented statements\nto stop working.  If an application does start using optional mode flags, it\nwill need to mask the optional flags off the policy in switch and conditional\nstatements that only test mode.\n\nAn additional member is also added to struct shmem_sb_info to store the\noptional mode flags.\n\n[hugh@veritas.com: shmem mpol: fix build warning]\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4d232e65fa274a715dae39f77191071324e602a",
      "tree": "e361724c1dd08a8947cd74b0b0e092438eb50887",
      "parents": [
        "8a03feab32dceb78b9b1edf220e833d36d416b00"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Feb 23 05:59:19 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 19 06:55:01 2008 -0400"
      },
      "message": "[PATCH] double iput() on failure exit in hugetlb\n\nonce we\u0027d done d_instantiate(), we should only do dput().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10f19a86a5e106edb86d354137ba6e7388ecd1ce",
      "tree": "4de5e7d7bd687320bac70d9b6aa8ed8b552a15e5",
      "parents": [
        "6d9c1fd425e6e1f0998218104cc046589e3af3d8"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 08 04:21:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:40 2008 -0800"
      },
      "message": "mount options: fix hugetlbfs\n\nAdd a .show_options super operation to hugetlbfs.\n\nUse generic_show_options() and save the complete option string in\nhugetlbfs_fill_super().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75897d60a54ccee94253312107f941a83b5077cb",
      "tree": "9c3ece84bfdaf6742457d665415cf6a7b6dd1591",
      "parents": [
        "b98938c373117043598002f197200d7ed08acd49"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Mon Feb 04 22:28:36 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:14 2008 -0800"
      },
      "message": "hugetlb: allow sticky directory mount option\n\nAllow sticky directory mount option for hugetlbfs.  This allows admin\nto create a shared hugetlbfs mount point for multiple users, while\nprevent accidental file deletion that users may step on each other.\nIt is similiar to default tmpfs mount option, or typical option used\non /tmp.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003chermes@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a119c056dc2a9970901954a6d561d50a95e528d",
      "tree": "22ca1f97f18f8a788757825bd4623d52d97a5abb",
      "parents": [
        "2fc39cec6a9b5b41727d3386b780b69422a15152"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Wed Nov 14 16:59:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:40 2007 -0800"
      },
      "message": "hugetlb: allow bulk updating in hugetlb_*_quota()\n\nAdd a second parameter \u0027delta\u0027 to hugetlb_get_quota and hugetlb_put_quota to\nallow bulk updating of the sbinfo-\u003efree_blocks counter.  This will be used by\nthe next patch in the series.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: David Gibson \u003chermes@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c79fb75e5a514a5a35f22c229042aa29f4237e3a",
      "tree": "012e5610e814ed938628af84ffa7c4775db113e2",
      "parents": [
        "348ea204cc23cda35faf962414b674c57da647d7"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Wed Nov 14 16:59:38 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:40 2007 -0800"
      },
      "message": "hugetlb: fix quota management for private mappings\n\nThe hugetlbfs quota management system was never taught to handle MAP_PRIVATE\nmappings when that support was added.  Currently, quota is debited at page\ninstantiation and credited at file truncation.  This approach works correctly\nfor shared pages but is incomplete for private pages.  In addition to\nhugetlb_no_page(), private pages can be instantiated by hugetlb_cow(); but\nthis function does not respect quotas.\n\nPrivate huge pages are treated very much like normal, anonymous pages.  They\nare not \"backed\" by the hugetlbfs file and are not stored in the mapping\u0027s\nradix tree.  This means that private pages are invisible to\ntruncate_hugepages() so that function will not credit the quota.\n\nThis patch (based on a prototype provided by Ken Chen) moves quota crediting\nfor all pages into free_huge_page().  page-\u003eprivate is used to store a pointer\nto the mapping to which this page belongs.  This is used to credit quota on\nthe appropriate hugetlbfs instance.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nCc: Ken Chen \u003ckenchen@google.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: David Gibson \u003chermes@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce8d2cdf3d2b73e346c82e6f0a46da331df6364c",
      "tree": "bf3597f2d4f57d6e30a7703d7fce0dbf8c757962",
      "parents": [
        "348366b963e4e1462c8354827a9cb910aa865bf2"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Tue Oct 16 23:31:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:04 2007 -0700"
      },
      "message": "r/o bind mounts: filesystem helpers for custom \u0027struct file\u0027s\n\nWhy do we need r/o bind mounts?\n\nThis feature allows a read-only view into a read-write filesystem.  In the\nprocess of doing that, it also provides infrastructure for keeping track of\nthe number of writers to any given mount.\n\nThis has a number of uses.  It allows chroots to have parts of filesystems\nwritable.  It will be useful for containers in the future because users may\nhave root inside a container, but should not be allowed to write to\nsomefilesystems.  This also replaces patches that vserver has had out of the\ntree for several years.\n\nIt allows security enhancement by making sure that parts of your filesystem\nread-only (such as when you don\u0027t trust your FTP server), when you don\u0027t want\nto have entire new filesystems mounted, or when you want atime selectively\nupdated.  I\u0027ve been using the following script to test that the feature is\nworking as desired.  It takes a directory and makes a regular bind and a r/o\nbind mount of it.  It then performs some normal filesystem operations on the\nthree directories, including ones that are expected to fail, like creating a\nfile on the r/o mount.\n\nThis patch:\n\nSome filesystems forego the vfs and may_open() and create their own \u0027struct\nfile\u0027s.\n\nThis patch creates a couple of helper functions which can be used by these\nfilesystems, and will provide a unified place which the r/o bind mount code\nmay patch.\n\nAlso, rename an existing, static-scope init_file() to a less generic name.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c0eeaf5698597146ed9b873e2f9e0961edcf0f9",
      "tree": "5265eac8437e8ce517a62db8fe2bd99db5b7019b",
      "parents": [
        "2e6883bdf49abd0e7f0d9b6297fc3be7ebb2250b"
      ],
      "author": {
        "name": "Joern Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Tue Oct 16 23:30:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:02 2007 -0700"
      },
      "message": "introduce I_SYNC\n\nI_LOCK was used for several unrelated purposes, which caused deadlock\nsituations in certain filesystems as a side effect.  One of the purposes\nnow uses the new I_SYNC bit.\n\nAlso document the various bits and change their order from historical to\nlogical.\n\n[bunk@stusta.de: make fs/inode.c:wake_up_inode() static]\nSigned-off-by: Joern Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Anton Altaparmakov \u003caia21@cam.ac.uk\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0bf68ddec4f4f90e5871404be4f1854c17f3120",
      "tree": "36203a3558cbe26d698bed18be69b3822fb5eef2",
      "parents": [
        "dc62a30e274d003a4d08fb888f1520add4b21373"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "mm: bdi init hooks\n\nprovide BDI constructor/destructor hooks\n\n[akpm@linux-foundation.org: compile fix]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e63e1e5a6b75416ab758025fd80e247c4f103b1b",
      "tree": "cfc15590308980ebc1794d5a44cb02120868a025",
      "parents": [
        "7aa91e104028b87ff13f5eeb7a0d7ffe7b5a2348"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Tue Oct 16 01:26:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:03 2007 -0700"
      },
      "message": "hugetlbfs read() support\n\nSupport for reading from hugetlbfs files.  libhugetlbfs lets application\ntext/data to be placed in large pages.  When we do that, oprofile doesn\u0027t\nwork - since libbfd tries to read from it.\n\nThis code is very similar to what do_generic_mapping_read() does, but I\ncan\u0027t use it since it has PAGE_CACHE_SIZE assumptions.\n\n[akpm@linux-foundation.org: cleanups, fix leak]\n[bunk@stusta.de: make hugetlbfs_read() static]\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nAcked-by: William Irwin \u003cbill.irwin@oracle.com\u003e\nTested-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7aa91e104028b87ff13f5eeb7a0d7ffe7b5a2348",
      "tree": "e6084d025a03e3b097c0a710e50fcae1d82f2fba",
      "parents": [
        "54f9f80d6543fb7b157d3b11e2e7911dc1379790"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Tue Oct 16 01:26:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:02 2007 -0700"
      },
      "message": "hugetlb: allow extending ftruncate on hugetlbfs\n\nFor historical reason, expanding ftruncate that increases file size on\nhugetlbfs is not allowed due to pages were pre-faulted and lack of fault\nhandler.  Now that we have demand faulting on hugetlb since 2.6.15, there\nis no reason to hold back that limitation.\n\nThis will make hugetlbfs behave more like a normal fs.  I\u0027m writing a user\nlevel code that uses hugetlbfs but will fall back to tmpfs if there are no\nhugetlb page available in the system.  Having hugetlbfs specific ftruncate\nbehavior is a bit quirky and I would like to remove that artificial\nlimitation.\n\nSigned-off-by: \u003ckenchen@google.com\u003e\nAcked-by: Wiliam Irwin \u003cwli@holomorphy.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "800d15a53e7d14fa26495b7b95d3bfe7877dd69d",
      "tree": "09a59e32043f1b601b73ad6105e7634679337884",
      "parents": [
        "674b892ede247ef4fb8d00918f02e29c32b9bbaf"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Oct 16 01:25:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:55 2007 -0700"
      },
      "message": "implement simple fs aops\n\nImplement new aops for some of the simpler filesystems.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dec4ad86c2fbea062e9ef9caa6d6e79f7c5e0b12",
      "tree": "9882d3b1f59fb293cf0f70afc80bdc7bb1e0021e",
      "parents": [
        "4a58448b0a375f7198de34dd0d3e2881afeaf025"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Thu Aug 30 23:56:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 31 01:42:23 2007 -0700"
      },
      "message": "hugepage: fix broken check for offset alignment in hugepage mappings\n\nFor hugepage mappings, the file offset, like the address and size, needs to\nbe aligned to the size of a hugepage.\n\nIn commit 68589bc353037f233fe510ad9ff432338c95db66, the check for this was\nmoved into prepare_hugepage_range() along with the address and size checks.\n But since BenH\u0027s rework of the get_unmapped_area() paths leading up to\ncommit 4b1d89290b62bb2db476c94c82cf7442aab440c8, prepare_hugepage_range()\nis only called for MAP_FIXED mappings, not for other mappings.  This means\nwe\u0027re no longer ever checking for an aligned offset - I\u0027ve confirmed that\nmmap() will (apparently) succeed with a misaligned offset on both powerpc\nand i386 at least.\n\nThis patch restores the check, removing it from prepare_hugepage_range()\nand putting it back into hugetlbfs_file_mmap().  I\u0027m putting it there,\nrather than in the get_unmapped_area() path so it only needs to go in one\nplace, than separately in the half-dozen or so arch-specific\nimplementations of hugetlb_get_unmapped_area().\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "b4c07bce796833401317519e44075889c5fd4d5f",
      "tree": "569448b0cc6e0eb1516e38c98bc770ad73308880",
      "parents": [
        "e73a75fa7f062b52d015f1c961685dcaac57f710"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sun Jul 15 23:40:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "hugetlbfs: handle empty options string\n\nI was seeing a null pointer deref in fs/super.c:vfs_kern_mount().\nSome file system get_sb() handler was returning NULL mnt_sb with\na non-negative return value.  I also noticed a \"hugetlbfs: Bad\nmount option:\" message in the log.\n\nTurns out that hugetlbfs_parse_options() was not checking for an\nempty option string after call to strsep().  On failure,\nhugetlbfs_parse_options() returns 1.  hugetlbfs_fill_super() just\npassed this return code back up the call stack where\nvfs_kern_mount() missed the error and proceeded with a NULL mnt_sb.\n\nApparently introduced by patch:\n\thugetlbfs-use-lib-parser-fix-docs.patch\n\nThe problem was exposed by this line in my fstab:\n\nnone        /huge       hugetlbfs   defaults    0 0\n\nIt can also be demonstrated by invoking mount of hugetlbfs\ndirectly with no options or a bogus option.\n\nThis patch:\n\n1) adds the check for empty option to hugetlbfs_parse_options(),\n2) enhances the error message to bracket any unrecognized\n   option with quotes ,\n3) modifies hugetlbfs_parse_options() to return -EINVAL on any\n   unrecognized option,\n4) adds a BUG_ON() to vfs_kern_mount() to catch any get_sb()\n   handler that returns a NULL mnt-\u003emnt_sb with a return value\n   \u003e\u003d 0.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e73a75fa7f062b52d015f1c961685dcaac57f710",
      "tree": "de9c45f6a3c59651f8cea516f88cd1f7f8e31855",
      "parents": [
        "5216184571946b8bbf06f0cd630c7754190fdd1a"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sun Jul 15 23:40:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "hugetlbfs: use lib/parser, fix docs\n\nUse lib/parser.c to parse hugetlbfs mount options.  Correct docs in\nhugetlbpage.txt.\n\nold size of hugetlbfs_fill_super:  675 bytes\nnew size of hugetlbfs_fill_super:  686 bytes\n(hugetlbfs_parse_options() is inlined)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d66586f7723b73c5925c7c7819c260484627851",
      "tree": "616c3c01282e0ca82c59b1496c385cf1e2961564",
      "parents": [
        "22741925d268e8479ef66312749bd8d96ed35365"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Jun 16 10:16:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:16 2007 -0700"
      },
      "message": "shm: fix the filename of hugetlb sysv shared memory\n\nSome user space tools need to identify SYSV shared memory when examining\n/proc/\u003cpid\u003e/maps.  To do so they look for a block device with major zero, a\ndentry named SYSV\u003csysv key\u003e, and having the minor of the internal sysv\nshared memory kernel mount.\n\nTo help these tools and to make it easier for people just browsing\n/proc/\u003cpid\u003e/maps this patch modifies hugetlb sysv shared memory to use the\nSYSV\u003ckey\u003e dentry naming convention.\n\nUser space tools will still have to be aware that hugetlb sysv shared\nmemory lives on a different internal kernel mount and so has a different\nblock device minor number from the rest of sysv shared memory.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nCc: Albert Cahalan \u003cacahalan@gmail.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5bc98594d59672303c4c9c07262ecc373dc374da",
      "tree": "bc9855b1448222819d75fb23e26fdcd09382e460",
      "parents": [
        "cfce66047f1893cb7d3abb0d53e65cbbd8d605f0"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sun May 06 14:50:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "hugetlbfs: add NULL check in hugetlb_zero_setup()\n\nIf hugetlbfs module_init() fails, hugetlbfs_vfsmount is not initialized and\nshmget() with SHM_HUGETLB flag will cause NULL pointer dereference.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "036e08568cbee4b16e14551e9f004c3d490d6271",
      "tree": "d5dff4ed1a4ed417f36291f9e79eca8ba703c8b3",
      "parents": [
        "11300a64d08ebce03e30cac8eb58e8ce008e4bb7"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sun May 06 14:50:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "get_unmapped_area handles MAP_FIXED in hugetlbfs\n\nGeneric hugetlb_get_unmapped_area() now handles MAP_FIXED by just calling\nprepare_hugepage_range()\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: William Irwin \u003cbill.irwin@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Grant Grundler \u003cgrundler@parisc-linux.org\u003e\nCc: Matthew Wilcox \u003cwilly@debian.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d85f33855c303acfa87fa457157cef755b6087df",
      "tree": "f1184a1a24b432727b0399594ede37c7539db888",
      "parents": [
        "30520864839dc796fd314812e7036e754880b47d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "Make page-\u003eprivate usable in compound pages\n\nIf we add a new flag so that we can distinguish between the first page and the\ntail pages then we can avoid to use page-\u003eprivate in the first page.\npage-\u003eprivate \u003d\u003d page for the first page, so there is no real information in\nthere.\n\nFreeing up page-\u003eprivate makes the use of compound pages more transparent.\nThey become more usable like real pages.  Right now we have to be careful f.e.\n if we are going beyond PAGE_SIZE allocations in the slab on i386 because we\ncan then no longer use the private field.  This is one of the issues that\ncause us not to support debugging for page size slabs in SLAB.\n\nHaving page-\u003eprivate available for SLUB would allow more meta information in\nthe page struct.  I can probably avoid the 16 bit ints that I have in there\nright now.\n\nAlso if page-\u003eprivate is available then a compound page may be equipped with\nbuffer heads.  This may free up the way for filesystems to support larger\nblocks than page size.\n\nWe add PageTail as an alias of PageReclaim.  Compound pages cannot currently\nbe reclaimed.  Because of the alias one needs to check PageCompound first.\n\nThe RFC for the this approach was discussed at\nhttp://marc.info/?t\u003d117574302800001\u0026r\u003d1\u0026w\u003d2\n\n[nacc@us.ibm.com: fix hugetlbfs]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2ba27e8007b35d24764c0877ab2428e00a5c5ab",
      "tree": "d4c645000da4c208dba37fdda9897f1b7295cce4",
      "parents": [
        "1b4244647ceaad42ea6eb12899d58753d82b7727"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun May 06 14:49:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "proper prototype for hugetlb_get_unmapped_area()\n\nAdd a proper prototype for hugetlb_get_unmapped_area() in\ninclude/linux/hugetlb.h.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122",
      "tree": "4eb22a9f6c38e9f4cc2a5100cd6659b0af08b7ae",
      "parents": [
        "754661f143e70d66eae6c48532ca245aa05dec0e"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 2\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6649a3863232eb2e2f15ea6c622bd8ceacf96d76",
      "tree": "c3b77d20afd1e7215186244375f6cdcaad94d4b2",
      "parents": [
        "f336953bfdee8d5e7f69cb8e080704546541f04b"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Thu Feb 08 14:20:27 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 09 09:25:46 2007 -0800"
      },
      "message": "[PATCH] hugetlb: preserve hugetlb pte dirty state\n\n__unmap_hugepage_range() is buggy that it does not preserve dirty state of\nhuge_pte when unmapping hugepage range.  It causes data corruption in the\nevent of dop_caches being used by sys admin.  For example, an application\ncreates a hugetlb file, modify pages, then unmap it.  While leaving the\nhugetlb file alive, comes along sys admin doing a \"echo 3 \u003e\n/proc/sys/vm/drop_caches\".\n\ndrop_pagecache_sb() will happily free all pages that aren\u0027t marked dirty if\nthere are no active mapping.  Later when application remaps the hugetlb\nfile back and all data are gone, triggering catastrophic flip over on\napplication.\n\nNot only that, the internal resv_huge_pages count will also get all messed\nup.  Fix it up by marking page dirty appropriately.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: \"Nish Aravamudan\" \u003cnish.aravamudan@gmail.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fba2591bf4e418b6c3f9f8794c9dd8fe40ae7bd9",
      "tree": "d6909973e402b3171ee409f660b33df2fad029ba",
      "parents": [
        "46d2277c796f9f4937bfa668c40b2e3f43e93dd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 20 13:46:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 21 09:19:57 2006 -0800"
      },
      "message": "VM: Remove \"clear_page_dirty()\" and \"test_clear_page_dirty()\" functions\n\nThey were horribly easy to mis-use because of their tempting naming, and\nthey also did way more than any users of them generally wanted them to\ndo.\n\nA dirty page can become clean under two circumstances:\n\n (a) when we write it out.  We have \"clear_page_dirty_for_io()\" for\n     this, and that function remains unchanged.\n\n     In the \"for IO\" case it is not sufficient to just clear the dirty\n     bit, you also have to mark the page as being under writeback etc.\n\n (b) when we actually remove a page due to it becoming inaccessible to\n     users, notably because it was truncate()\u0027d away or the file (or\n     metadata) no longer exists, and we thus want to cancel any\n     outstanding dirty state.\n\nFor the (b) case, we now introduce \"cancel_dirty_page()\", which only\ntouches the page state itself, and verifies that the page is not mapped\n(since cancelling writes on a mapped page would be actively wrong as it\nis still accessible to users).\n\nSome filesystems need to be fixed up for this: CIFS, FUSE, JFS,\nReiserFS, XFS all use the old confusing functions, and will be fixed\nseparately in subsequent commits (with some of them just removing the\noffending logic, and others using clear_page_dirty_for_io()).\n\nThis was confirmed by Martin Michlmayr to fix the apt database\ncorruption on ARM.\n\nCc: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Andrei Popa \u003candrei.popa@i-neo.ro\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Dave Kleikamp \u003cshaggy@linux.vnet.ibm.com\u003e\nCc: Gordon Farquharson \u003cgordonfarquharson@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b39424e274a17c9c3233c9911dd328b10370de8f",
      "tree": "104c4ec8544f4cfe69547c872e3f40a0512ba235",
      "parents": [
        "471b17e7ed0cb29338458eaa09103902891d802a"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:45 2006 -0800"
      },
      "message": "[PATCH] struct path: convert hugetlbfs\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68589bc353037f233fe510ad9ff432338c95db66",
      "tree": "dedc58ff66134f54796642917e2a2a26ac6802b0",
      "parents": [
        "69ae9e3ee4ce99140a7db424bebf55d8d180da2f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Nov 14 02:03:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Tue Nov 14 09:09:27 2006 -0800"
      },
      "message": "[PATCH] hugetlb: prepare_hugepage_range check offset too\n\n(David:)\n\nIf hugetlbfs_file_mmap() returns a failure to do_mmap_pgoff() - for example,\nbecause the given file offset is not hugepage aligned - then do_mmap_pgoff\nwill go to the unmap_and_free_vma backout path.\n\nBut at this stage the vma hasn\u0027t been marked as hugepage, and the backout path\nwill call unmap_region() on it.  That will eventually call down to the\nnon-hugepage version of unmap_page_range().  On ppc64, at least, that will\ncause serious problems if there are any existing hugepage pagetable entries in\nthe vicinity - for example if there are any other hugepage mappings under the\nsame PUD.  unmap_page_range() will trigger a bad_pud() on the hugepage pud\nentries.  I suspect this will also cause bad problems on ia64, though I don\u0027t\nhave a machine to test it on.\n\n(Hugh:)\n\nprepare_hugepage_range() should check file offset alignment when it checks\nvirtual address and length, to stop MAP_FIXED with a bad huge offset from\nunmapping before it fails further down.  PowerPC should apply the same\nprepare_hugepage_range alignment checks as ia64 and all the others do.\n\nThen none of the alignment checks in hugetlbfs_file_mmap are required (nor\nis the check for too small a mapping); but even so, move up setting of\nVM_HUGETLB and add a comment to warn of what David Gibson discovered - if\nhugetlbfs_file_mmap fails before setting it, do_mmap_pgoff\u0027s unmap_region\nwhen unwinding from error will go the non-huge way, which may cause bad\nbehaviour on architectures (powerpc and ia64) which segregate their huge\nmappings into a separate region of the address space.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "856fc29505556cf263f3dcda2533cf3766c14ab6",
      "tree": "986b301f967487043cac92c7381e6e92bbcfe146",
      "parents": [
        "b9d7e6ae82da124dc9c579fe1061264ef2a69407"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 28 10:38:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:53 2006 -0700"
      },
      "message": "[PATCH] hugetlb: fix prio_tree unit\n\nhugetlb_vmtruncate_list was misconverted to prio_tree: its prio_tree is in\nunits of PAGE_SIZE (PAGE_CACHE_SIZE) like any other, not HPAGE_SIZE (whereas\nits radix_tree is kept in units of HPAGE_SIZE, otherwise slots would be\nabsurdly sparse).\n\nAt first I thought the error benign, just calling __unmap_hugepage_range on\nmore vmas than necessary; but on 32-bit machines, when the prio_tree is\nsearched correctly, it happens to ensure the v_offset calculation won\u0027t\noverflow.  As it stood, when truncating at or beyond 4GB, it was liable to\ndiscard pages COWed from lower offsets; or even to clear pmd entries of\npreceding vmas, triggering exit_mmap\u0027s BUG_ON(nr_ptes).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b9d7e6ae82da124dc9c579fe1061264ef2a69407",
      "tree": "868894a168bd7873232cada240acf88a252014cb",
      "parents": [
        "7b92aadfdae85ef837db343be38d4172115be72b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 28 10:38:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:53 2006 -0700"
      },
      "message": "[PATCH] hugetlb: fix size\u003d4G parsing\n\nOn 32-bit machines, mount -t hugetlbfs -o size\u003d4G gave a 0GB filesystem,\nsize\u003d5G gave a 1GB filesystem etc: there\u0027s no point in masking size with\nHPAGE_MASK just before shifting its lower bits away, and since HPAGE_MASK is a\nUL, that removed all the higher bits of the unsigned long long size.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "502717f4e112b18d9c37753a32f675bec9f2838b",
      "tree": "90e674229bbd7caa05e740dfe719cf8749d0eb27",
      "parents": [
        "97c7801cd5b0bb6a38c16108a496235474dc6310"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Wed Oct 11 01:20:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 11 11:14:15 2006 -0700"
      },
      "message": "[PATCH] hugetlb: fix linked list corruption in unmap_hugepage_range()\n\ncommit fe1668ae5bf0145014c71797febd9ad5670d5d05 causes kernel to oops with\nlibhugetlbfs test suite.  The problem is that hugetlb pages can be shared\nby multiple mappings.  Multiple threads can fight over page-\u003elru in the\nunmap path and bad things happen.  We now serialize __unmap_hugepage_range\nto void concurrent linked list manipulation.  Such serialization is also\nneeded for shared page table page on hugetlb area.  This patch will fixed\nthe bug and also serve as a prepatch for shared page table.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d8c76e6f45c111c32a4b3e50a2adc9210737b0d8",
      "tree": "25521b59d48c6d8c9aec1af54dbe5008ad4b215b",
      "parents": [
        "9a53c3a783c2fa9b969628e65695c11c3e51e673"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Sep 30 23:29:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:30 2006 -0700"
      },
      "message": "[PATCH] r/o bind mount prepwork: inc_nlink() helper\n\nThis is mostly included for parity with dec_nlink(), where we will have some\nmore hooks.  This one should stay pretty darn straightforward for now.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ddc0a51d2e351985aa542ff650635e2fd62d3f8b",
      "tree": "e257e32dae1622c83aa720f5b08c10e29af5167f",
      "parents": [
        "105f4d7a813e9ef6be58549f5d2a49af1764da19"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josht@us.ibm.com",
        "time": "Fri Sep 29 01:59:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:08 2006 -0700"
      },
      "message": "[PATCH] hugetlbfs: add lock annotation to hugetlbfs_forget_inode()\n\nhugetlbfs_forget_inode releases inode_lock.  Add a lock annotation to this\nfunction so that sparse can check callers for lock pairing, and so that\nsparse will not complain about this functions since it intentionally uses\nthe lock in this manner.\n\nSigned-off-by: Josh Triplett \u003cjosh@freedesktop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b6174df5eec9cdfd598c03d6d0807e344e109213",
      "tree": "d61c8627138a8feee31de8320e337251d567fca9",
      "parents": [
        "d6b7d3b62069be60d5b13358bac8670dacdd7a81"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin.zhang@intel.com",
        "time": "Mon Jul 10 04:44:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 10 13:24:21 2006 -0700"
      },
      "message": "[PATCH] mmap zero-length hugetlb file with PROT_NONE to protect a hugetlb virtual area\n\nSometimes, applications need below call to be successful although\n\"/mnt/hugepages/file1\" doesn\u0027t exist.\n\nfd \u003d open(\"/mnt/hugepages/file1\", O_CREAT|O_RDWR, 0755);\n*addr \u003d mmap(NULL, 0x1024*1024*256, PROT_NONE, 0, fd, 0);\n\nAs for regular pages (or files), above call does work, but as for huge\npages, above call would fail because hugetlbfs_file_mmap would fail if\n(!(vma-\u003evm_flags \u0026 VM_WRITE) \u0026\u0026 len \u003e inode-\u003ei_size).\n\nThis capability on huge page is useful on ia64 when the process wants to\nprotect one area on region 4, so other threads couldn\u0027t read/write this\narea.  A famous JVM (Java Virtual Machine) implementation on IA64 needs the\ncapability.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin.zhang@intel.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\n[ Expand-on-mmap semantics again... this time matching normal fs\u0027s. wli ]\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a43a8c39bbb493c9e93f6764b350de2e33e18e92",
      "tree": "a3f0042371810ce6d076751d8e403baaa3d2630e",
      "parents": [
        "e8f03d02080b25f53cd6bba8dc3a297803f18c01"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Fri Jun 23 02:03:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:48 2006 -0700"
      },
      "message": "[PATCH] tightening hugetlb strict accounting\n\nCurrent hugetlb strict accounting for shared mapping always assume mapping\nstarts at zero file offset and reserves pages between zero and size of the\nfile.  This assumption often reserves (or lock down) a lot more pages then\nnecessary if application maps at none zero file offset.  libhugetlbfs is\none example that requires proper reservation on shared mapping starts at\nnone zero offset.\n\nThis patch extends the reservation and hugetlb strict accounting to support\nany arbitrary pair of (offset, len), resulting a much more robust and\naccurate scheme.  More importantly, it won\u0027t lock down any hugetlb pages\noutside file mapping.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bba1e9b2111b14625f670bd07e57fd7ed57ce804",
      "tree": "fc46b8702597fafde7d1a550dcbc948f173303ad",
      "parents": [
        "42b88befd6e0dae1a5fe04c03925037fa890e1f3"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Wed Mar 22 00:09:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:04 2006 -0800"
      },
      "message": "[PATCH] convert hugetlbfs_counter to atomic\n\nImplementation of hugetlbfs_counter() is functionally equivalent to\natomic_inc_return().  Use the simpler atomic form.\n\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b45b5bd65f668a665db40d093e4e1fe563533608",
      "tree": "aa3806bd87fd7aa719b561e4d468c779f6adb31b",
      "parents": [
        "3935baa9bcda3ccaee4f7849f5157d316e34412e"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Wed Mar 22 00:08:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:03 2006 -0800"
      },
      "message": "[PATCH] hugepage: Strict page reservation for hugepage inodes\n\nThese days, hugepages are demand-allocated at first fault time.  There\u0027s a\nsomewhat dubious (and racy) heuristic when making a new mmap() to check if\nthere are enough available hugepages to fully satisfy that mapping.\n\nA particularly obvious case where the heuristic breaks down is where a\nprocess maps its hugepages not as a single chunk, but as a bunch of\nindividually mmap()ed (or shmat()ed) blocks without touching and\ninstantiating the pages in between allocations.  In this case the size of\neach block is compared against the total number of available hugepages.\nIt\u0027s thus easy for the process to become overcommitted, because each block\nmapping will succeed, although the total number of hugepages required by\nall blocks exceeds the number available.  In particular, this defeats such\na program which will detect a mapping failure and adjust its hugepage usage\ndownward accordingly.\n\nThe patch below addresses this problem, by strictly reserving a number of\nphysical hugepages for hugepage inodes which have been mapped, but not\ninstatiated.  MAP_SHARED mappings are thus \"safe\" - they will fail on\nmmap(), not later with an OOM SIGKILL.  MAP_PRIVATE mappings can still\ntrigger an OOM.  (Actually SHARED mappings can technically still OOM, but\nonly if the sysadmin explicitly reduces the hugepage pool between mapping\nand instantiation)\n\nThis patch appears to address the problem at hand - it allows DB2 to start\ncorrectly, for instance, which previously suffered the failure described\nabove.\n\nThis patch causes no regressions on the libhugetblfs testsuite, and makes a\ntest (designed to catch this problem) pass which previously failed (ppc64,\nPOWER5).\n\nSigned-off-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4e6a510a74145585f4111d60d1b5fd450d795dd8",
      "tree": "ff1cb5ba871d6c3f1b90276b865853e20cddefff",
      "parents": [
        "9884fd8df195fe48d4e1be2279b419be96127cae"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Feb 01 03:05:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:15 2006 -0800"
      },
      "message": "[PATCH] mm: hugepage accounting fix\n\n2.6.15\u0027s hugepage faulting introduced huge_pages_needed accounting into\nhugetlbfs: to count how many pages are already in cache, for spot check on\nhow far a new mapping may be allowed to extend the file.  But it\u0027s muddled:\neach hugepage found covers HPAGE_SIZE, not PAGE_SIZE.  Once pages were\nalready in cache, it would overshoot, wrap its hugepages count backwards,\nand so fail a harmless repeat mapping with -ENOMEM.  Fixes the problem\nfound by Don Dupuis.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-By: Adam Litke \u003cagl@us.ibm.com\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7339ff8302fd70aabf5f1ae26e0c4905fa74a495",
      "tree": "38ee561d51b7e4db7c0d6dd9ebd9fc22c2b6ab88",
      "parents": [
        "852cf918dcf2ae46468b425e679fbcbf0ea8fdbb"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Sat Jan 14 13:20:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jan 14 18:27:07 2006 -0800"
      },
      "message": "[PATCH] Add tmpfs options for memory placement policies\n\nAnything that writes into a tmpfs filesystem is liable to disproportionately\ndecrease the available memory on a particular node.  Since there\u0027s no telling\nwhat sort of application (e.g.  dd/cp/cat) might be dropping large files\nthere, this lets the admin choose the appropriate default behavior for their\nsite\u0027s situation.\n\nIntroduce a tmpfs mount option which allows specifying a memory policy and\na second option to specify the nodelist for that policy.  With the default\npolicy, tmpfs will behave as it does today.  This patch adds support for\npreferred, bind, and interleave policies.\n\nThe default policy will cause pages to be added to tmpfs files on the node\nwhich is doing the writing.  Some jobs expect a single process to create\nand manage the tmpfs files.  This results in a node which has a\nsignificantly reduced number of free pages.\n\nWith this patch, the administrator can specify the policy and nodes for\nthat policy where they would prefer allocations.\n\nThis patch was originally written by Brent Casavant and Hugh Dickins.  I\nadded support for the bind and preferred policies and the mpol_nodelist\nmount option.\n\nSigned-off-by: Brent Casavant \u003cbcasavan@sgi.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "16f7e0fe2ecc30f30652e8185e1772cdebe39109",
      "tree": "e668703267c7b02f1af3cc1581bb4366a5370fdd",
      "parents": [
        "c59ede7b78db329949d9cdcd7064e22d357560ef"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:13 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (fs/)\n\nfs: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1e8f889b10d8d2223105719e36ce45688fedbd59",
      "tree": "86dee89e4363aaf6c7ec7c9751ea37f725c95bb9",
      "parents": [
        "86e5216f8d8aa258ba836caffe2613d79cc9aead"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Fri Jan 06 00:10:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Copy on Write support\n\nImplement copy-on-write support for hugetlb mappings so MAP_PRIVATE can be\nsupported.  This helps us to safely use hugetlb pages in many more\napplications.  The patch makes the following changes.  If needed, I also have\nit broken out according to the following paragraphs.\n\n1. Add a pair of functions to set/clear write access on huge ptes.  The\n   writable check in make_huge_pte is moved out to the caller for use by COW\n   later.\n\n2. Hugetlb copy-on-write requires special case handling in the following\n   situations:\n\n   - copy_hugetlb_page_range() - Copied pages must be write protected so\n     a COW fault will be triggered (if necessary) if those pages are written\n     to.\n\n   - find_or_alloc_huge_page() - Only MAP_SHARED pages are added to the\n     page cache.  MAP_PRIVATE pages still need to be locked however.\n\n3. Provide hugetlb_cow() and calls from hugetlb_fault() and\n   hugetlb_no_page() which handles the COW fault by making the actual copy.\n\n4. Remove the check in hugetlbfs_file_map() so that MAP_PRIVATE mmaps\n   will be allowed.  Make MAP_HUGETLB exempt from the depricated VM_RESERVED\n   mapping check.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74a8a65c526187fe636a6a2abcb7d9ebc5c753ab",
      "tree": "97900dc68c67eb0d9e2010e34a0c00e27c1ffc1d",
      "parents": [
        "86e07ce71a8aad5074f7316f9b297d2137630283"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Mon Nov 21 21:32:24 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:43 2005 -0800"
      },
      "message": "[PATCH] Fix hugetlbfs_statfs() reporting of block limits\n\nCurrently, if a hugetlbfs is mounted without limits (the default), statfs()\nwill return -1 for max/free/used blocks.  This does not appear to be in\nline with normal convention: simple_statfs() and shmem_statfs() both return\n0 in similar cases.  Worse, it confuses the translation logic in\nput_compat_statfs(), causing it to return -EOVERFLOW on such a mount.\n\nThis patch alters hugetlbfs_statfs() to return 0 for max/free/used blocks\non a mount without limits.  Note that we need the test in the patch below,\nrather than just using 0 in the sbinfo structure, because the -1 marked in\nthe free blocks field is used internally to tell the\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d3d81cf023f34fa42955ce0a6e77e7c340a9d9d",
      "tree": "72070444e3046dc90cf26d532040c15b2dd6de5c",
      "parents": [
        "252ac865535e1ea9cc2d28be83f477d8d8b961a2"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Nov 08 21:39:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:56:41 2005 -0800"
      },
      "message": "[PATCH] fs/hugetlbfs/inode.c: make a function static\n\nThis patch makes a needlessly global function static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2e9b367c2273ed21c9852a04d90944d472c4f3e6",
      "tree": "75e802f07a8c4f0554547e8dd795f544c7e9d7e8",
      "parents": [
        "4c887265977213985091476be40ab11dfdcb4caf"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Sat Oct 29 18:16:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] hugetlb: overcommit accounting check\n\nBasic overcommit checking for hugetlb_file_map() based on an implementation\nused with demand faulting in SLES9.\n\nSince demand faulting can\u0027t guarantee the availability of pages at mmap\ntime, this patch implements a basic sanity check to ensure that the number\nof huge pages required to satisfy the mmap are currently available.\nDespite the obvious race, I think it is a good start on doing proper\naccounting.  I\u0027d like to work towards an accounting system that mimics the\nsemantics of normal pages (especially for the MAP_PRIVATE/COW case).  That\nwork is underway and builds on what this patch starts.\n\nHuge page shared memory segments are simpler and still maintain their\ncommit on shmget semantics.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c887265977213985091476be40ab11dfdcb4caf",
      "tree": "82ee135f8678094664d7311617287802d54d52cf",
      "parents": [
        "551110a94aa15890d1709b179c4be1e66ff6db53"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Sat Oct 29 18:16:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] hugetlb: demand fault handler\n\nBelow is a patch to implement demand faulting for huge pages.  The main\nmotivation for changing from prefaulting to demand faulting is so that huge\npage memory areas can be allocated according to NUMA policy.\n\nThanks to consolidated hugetlb code, switching the behavior requires changing\nonly one fault handler.  The bulk of the patch just moves the logic from\nhugelb_prefault() to hugetlb_pte_fault() and find_get_huge_page().\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b1533f67cc1a595457af6d05ab3510294e2ca9c",
      "tree": "4cebbfe7632c0967a52f7c7fb7b0c15954eaab3a",
      "parents": [
        "6b09b9df05f319ec27e0dae1721efe097b8b23ad"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 29 18:16:45 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] cleanup hugelbfs_forget_inode\n\nReformat hugelbfs_forget_inode and add the missing but harmless\nwrite_inode_now call.  It looks the same as generic_forget_inode now except\nfor the call to truncate_hugepages instead of truncate_inode_pages.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b09b9df05f319ec27e0dae1721efe097b8b23ad",
      "tree": "93f68801f5d0d8b93e0771dfc002163d97c5db6e",
      "parents": [
        "149f4211afda85743e3a3db3fa3abbd81506cf2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 29 18:16:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] kill hugelbfs_do_delete_inode\n\nhugetlbfs_do_delete_inode is the same as generic_delete_inode now, so remove\nit in favour of the latter.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "149f4211afda85743e3a3db3fa3abbd81506cf2b",
      "tree": "f4709ee1ae5e8d580e4594db5c21add717a24324",
      "parents": [
        "96527980d4cb8f65fe49efdbc4ab92c0837d42f6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 29 18:16:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] hugetlbfs: clean up hugetlbfs_delete_inode\n\nMake hugetlbfs looks the same as generic_detelte_inode, fixing a bunch of\nmissing updates to it at the same time.  Rename it to\nhugetlbfs_do_delete_inode and add a real hugetlbfs_delete_inode that\nimplements -\u003edelete_inode.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "96527980d4cb8f65fe49efdbc4ab92c0837d42f6",
      "tree": "93b6b438cee41d62e562ae277e67c9b6cad288a7",
      "parents": [
        "b8072f099b7829a6ff3eba618e1d079a81f753f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Oct 29 18:16:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] hugetlbfs: move free_inodes accounting\n\nMove hugetlbfs accounting into -\u003ealloc_inode / -\u003edestroy_inode.  This keeps\nthe code simpler, fixes a loeak where a failing inode allocation wouldn\u0027t\ndecrement the counter and moves hugetlbfs_delete_inode and\nhugetlbfs_forget_inode closer to their generic counterparts.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "508034a32b819a2d40aa7ac0dbc8cd2e044c2de6",
      "tree": "906a8f0095af24f403b30d649d3ec1ffb4ff2f50",
      "parents": [
        "8f4f8c164cb4af1432cc25eda82928ea4519ba72"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: unmap_vmas with inner ptlock\n\nRemove the page_table_lock from around the calls to unmap_vmas, and replace\nthe pte_offset_map in zap_pte_range by pte_offset_map_lock: all callers are\nnow safe to descend without page_table_lock.\n\nDon\u0027t attempt fancy locking for hugepages, just take page_table_lock in\nunmap_hugepage_range.  Which makes zap_hugepage_range, and the hugetlb test in\nzap_page_range, redundant: unmap_vmas calls unmap_hugepage_range anyway.  Nor\ndoes unmap_vmas have much use for its mm arg now.\n\nThe tlb_start_vma and tlb_end_vma in unmap_page_range are now called without\npage_table_lock: if they\u0027re implemented at all, they typically come down to\nflush_cache_range (usually done outside page_table_lock) and flush_tlb_range\n(which we already audited for the mprotect case).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1363c3cd8603a913a27e2995dccbd70d5312d8e6",
      "tree": "405e7fc1ef44678f3ca0a54c536d0457e6e80f45",
      "parents": [
        "e7c8d5c9955a4d2e88e36b640563f5d6d5aba48a"
      ],
      "author": {
        "name": "Wolfgang Wander",
        "email": "wwc@rentec.com",
        "time": "Tue Jun 21 17:14:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:16 2005 -0700"
      },
      "message": "[PATCH] Avoiding mmap fragmentation\n\nIngo recently introduced a great speedup for allocating new mmaps using the\nfree_area_cache pointer which boosts the specweb SSL benchmark by 4-5% and\ncauses huge performance increases in thread creation.\n\nThe downside of this patch is that it does lead to fragmentation in the\nmmap-ed areas (visible via /proc/self/maps), such that some applications\nthat work fine under 2.4 kernels quickly run out of memory on any 2.6\nkernel.\n\nThe problem is twofold:\n\n  1) the free_area_cache is used to continue a search for memory where\n     the last search ended.  Before the change new areas were always\n     searched from the base address on.\n\n     So now new small areas are cluttering holes of all sizes\n     throughout the whole mmap-able region whereas before small holes\n     tended to close holes near the base leaving holes far from the base\n     large and available for larger requests.\n\n  2) the free_area_cache also is set to the location of the last\n     munmap-ed area so in scenarios where we allocate e.g.  five regions of\n     1K each, then free regions 4 2 3 in this order the next request for 1K\n     will be placed in the position of the old region 3, whereas before we\n     appended it to the still active region 1, placing it at the location\n     of the old region 2.  Before we had 1 free region of 2K, now we only\n     get two free regions of 1K -\u003e fragmentation.\n\nThe patch addresses thes issues by introducing yet another cache descriptor\ncached_hole_size that contains the largest known hole size below the\ncurrent free_area_cache.  If a new request comes in the size is compared\nagainst the cached_hole_size and if the request can be filled with a hole\nbelow free_area_cache the search is started from the base instead.\n\nThe results look promising: Whereas 2.6.12-rc4 fragments quickly and my\n(earlier posted) leakme.c test program terminates after 50000+ iterations\nwith 96 distinct and fragmented maps in /proc/self/maps it performs nicely\n(as expected) with thread creation, Ingo\u0027s test_str02 with 20000 threads\nrequires 0.7s system time.\n\nTaking out Ingo\u0027s patch (un-patch available per request) by basically\ndeleting all mentions of free_area_cache from the kernel and starting the\nsearch for new memory always at the respective bases we observe: leakme\nterminates successfully with 11 distinctive hardly fragmented areas in\n/proc/self/maps but thread creating is gringdingly slow: 30+s(!) system\ntime for Ingo\u0027s test_str02 with 20000 threads.\n\nNow - drumroll ;-) the appended patch works fine with leakme: it ends with\nonly 7 distinct areas in /proc/self/maps and also thread creation seems\nsufficiently fast with 0.71s for 20000 threads.\n\nSigned-off-by: Wolfgang Wander \u003cwwc@rentec.com\u003e\nCredit-to: \"Richard Purdie\" \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e (partly)\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
