)]}'
{
  "log": [
    {
      "commit": "9d8cebd4bcd7c3878462fdfda34bbcdeb4df7ef4",
      "tree": "0f0a6dadb4430aef18f1491003d70d9351d7b619",
      "parents": [
        "93e4a89a8c987189b168a530a331ef6d0fcf07a7"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:57 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm: fix mbind vma merge problem\n\nStrangely, current mbind() doesn\u0027t merge vma with neighbor vma although it\u0027s possible.\nUnfortunately, many vma can reduce performance...\n\nThis patch fixes it.\n\n    reproduced program\n    ----------------------------------------------------------------\n     #include \u003cnumaif.h\u003e\n     #include \u003cnuma.h\u003e\n     #include \u003csys/mman.h\u003e\n     #include \u003cstdio.h\u003e\n     #include \u003cunistd.h\u003e\n     #include \u003cstdlib.h\u003e\n     #include \u003cstring.h\u003e\n\n    static unsigned long pagesize;\n\n    int main(int argc, char** argv)\n    {\n    \tvoid* addr;\n    \tint ch;\n    \tint node;\n    \tstruct bitmask *nmask \u003d numa_allocate_nodemask();\n    \tint err;\n    \tint node_set \u003d 0;\n    \tchar buf[128];\n\n    \twhile ((ch \u003d getopt(argc, argv, \"n:\")) !\u003d -1){\n    \t\tswitch (ch){\n    \t\tcase \u0027n\u0027:\n    \t\t\tnode \u003d strtol(optarg, NULL, 0);\n    \t\t\tnuma_bitmask_setbit(nmask, node);\n    \t\t\tnode_set \u003d 1;\n    \t\t\tbreak;\n    \t\tdefault:\n    \t\t\t;\n    \t\t}\n    \t}\n    \targc -\u003d optind;\n    \targv +\u003d optind;\n\n    \tif (!node_set)\n    \t\tnuma_bitmask_setbit(nmask, 0);\n\n    \tpagesize \u003d getpagesize();\n\n    \taddr \u003d mmap(NULL, pagesize*3, PROT_READ|PROT_WRITE,\n    \t\t    MAP_ANON|MAP_PRIVATE, 0, 0);\n    \tif (addr \u003d\u003d MAP_FAILED)\n    \t\tperror(\"mmap \"), exit(1);\n\n    \tfprintf(stderr, \"pid \u003d %d \\n\" \"addr \u003d %p\\n\", getpid(), addr);\n\n    \t/* make page populate */\n    \tmemset(addr, 0, pagesize*3);\n\n    \t/* first mbind */\n    \terr \u003d mbind(addr+pagesize, pagesize, MPOL_BIND, nmask-\u003emaskp,\n    \t\t    nmask-\u003esize, MPOL_MF_MOVE_ALL);\n    \tif (err)\n    \t\terror(\"mbind1 \");\n\n    \t/* second mbind */\n    \terr \u003d mbind(addr, pagesize*3, MPOL_DEFAULT, NULL, 0, 0);\n    \tif (err)\n    \t\terror(\"mbind2 \");\n\n    \tsprintf(buf, \"cat /proc/%d/maps\", getpid());\n    \tsystem(buf);\n\n    \treturn 0;\n    }\n    ----------------------------------------------------------------\n\nresult without this patch\n\n\taddr \u003d 0x7fe26ef09000\n\t[snip]\n\t7fe26ef09000-7fe26ef0a000 rw-p 00000000 00:00 0\n\t7fe26ef0a000-7fe26ef0b000 rw-p 00000000 00:00 0\n\t7fe26ef0b000-7fe26ef0c000 rw-p 00000000 00:00 0\n\t7fe26ef0c000-7fe26ef0d000 rw-p 00000000 00:00 0\n\n\t\u003d\u003e 0x7fe26ef09000-0x7fe26ef0c000 have three vmas.\n\nresult with this patch\n\n\taddr \u003d 0x7fc9ebc76000\n\t[snip]\n\t7fc9ebc76000-7fc9ebc7a000 rw-p 00000000 00:00 0\n\t7fffbe690000-7fffbe6a5000 rw-p 00000000\t00:00 0\t[stack]\n\n\t\u003d\u003e 0x7fc9ebc76000-0x7fc9ebc7a000 have only one vma.\n\n[minchan.kim@gmail.com: fix file offset passed to vma_merge()]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93e4a89a8c987189b168a530a331ef6d0fcf07a7",
      "tree": "deb08017c0e4874539549d3ea9bf2d7b447a43be",
      "parents": [
        "fc91668eaf9e7ba61e867fc2218b7e9fb67faa4f"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:55 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm: restore zone-\u003eall_unreclaimable to independence word\n\ncommit e815af95 (\"change all_unreclaimable zone member to flags\") changed\nall_unreclaimable member to bit flag.  But it had an undesireble side\neffect.  free_one_page() is one of most hot path in linux kernel and\nincreasing atomic ops in it can reduce kernel performance a bit.\n\nThus, this patch revert such commit partially. at least\nall_unreclaimable shouldn\u0027t share memory word with other zone flags.\n\n[akpm@linux-foundation.org: fix patch interaction]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc91668eaf9e7ba61e867fc2218b7e9fb67faa4f",
      "tree": "08d443d76255e8d60ae6ba07d52cdc295172ded8",
      "parents": [
        "c475dab63ae798d81fb597a6a1859986b296d9d0"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Mar 05 13:41:54 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:25 2010 -0800"
      },
      "message": "mm: remove free_hot_page()\n\nfree_hot_page() is just a wrapper around free_hot_cold_page() with\nparameter \u0027cold \u003d 0\u0027.  After adding a clear comment for\nfree_hot_cold_page(), it is reasonable to remove a level of call.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Ming Chun \u003cmacli@brc.ubc.ca\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c475dab63ae798d81fb597a6a1859986b296d9d0",
      "tree": "f2c18302f0fa261b0e82b4bf91bce48fe96209fb",
      "parents": [
        "f650316c8b80fe61a31b8b575405b37cbf170459"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Mar 05 13:41:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm/page_alloc.c: adjust a call site to trace_mm_page_free_direct\n\nMove a call of trace_mm_page_free_direct() from free_hot_page() to\nfree_hot_cold_page().  It is clearer and close to kmemcheck_free_shadow(),\nas it is done in function __free_pages_ok().\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Ming Chun \u003cmacli@brc.ubc.ca\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f650316c8b80fe61a31b8b575405b37cbf170459",
      "tree": "6526cb3de41384eeea81e18b640396138371fbb4",
      "parents": [
        "76ca542d880ebe59a7a03c1597e73e1ded271857"
      ],
      "author": {
        "name": "Li Hong",
        "email": "lihong.hi@gmail.com",
        "time": "Fri Mar 05 13:41:52 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm/page_alloc.c: remove duplicate call to trace_mm_page_free_direct\n\ntrace_mm_page_free_direct() is called in function __free_pages().  But it\nis called again in free_hot_page() if order \u003d\u003d 0 and produce duplicate\nrecords in trace file for mm_page_free_direct event.  As below:\n\nK-PID    CPU#    TIMESTAMP  FUNCTION\n  gnome-terminal-1567  [000]  4415.246466: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n  gnome-terminal-1567  [000]  4415.246468: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n  gnome-terminal-1567  [000]  4415.246506: mm_page_alloc: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0 migratetype\u003d0 gfp_flags\u003dGFP_KERNEL\n  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n  gnome-terminal-1567  [000]  4415.255557: mm_page_free_direct: page\u003dffffea0003db9f40 pfn\u003d1155800 order\u003d0\n\nThis patch removes the first call and adds a call to\ntrace_mm_page_free_direct() in __free_pages_ok().\n\nSigned-off-by: Li Hong \u003clihong.hi@gmail.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Li Ming Chun \u003cmacli@brc.ubc.ca\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76ca542d880ebe59a7a03c1597e73e1ded271857",
      "tree": "d5e1a5dc88150ccbfeba811769ac066021b3041b",
      "parents": [
        "84b18490d1f1bc7ed5095c929f78bc002eb70f26"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:47 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm, lockdep: annotate reclaim context to zone reclaim too\n\nCommit cf40bd16fd (\"lockdep: annotate reclaim context\") introduced reclaim\ncontext annotation.  But it didn\u0027t annotate zone reclaim.  This patch do\nit.\n\nThe point is, commit cf40bd16fd annotate __alloc_pages_direct_reclaim but\nzone-reclaim doesn\u0027t use __alloc_pages_direct_reclaim.\n\ncurrent call graph is\n\n__alloc_pages_nodemask\n   get_page_from_freelist\n       zone_reclaim()\n   __alloc_pages_slowpath\n       __alloc_pages_direct_reclaim\n           try_to_free_pages\n\nActually, if zone_reclaim_mode\u003d1, VM never call\n__alloc_pages_direct_reclaim in usual VM pressure.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84b18490d1f1bc7ed5095c929f78bc002eb70f26",
      "tree": "2543443925b2852436979d4bdf18d916a6b5c11e",
      "parents": [
        "45973d74fd3b1e3e16c025b688a725c7653b1443"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:47 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "vmscan: get_scan_ratio() cleanup\n\nThe get_scan_ratio() should have all scan-ratio related calculations.\nThus, this patch move some calculation into get_scan_ratio.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45973d74fd3b1e3e16c025b688a725c7653b1443",
      "tree": "79b002bf8da8807a4d82314426611ca2109f83e8",
      "parents": [
        "59e99e5b9706867f18d4a36c1e4645fbaacbec2e"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Fri Mar 05 13:41:45 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "vmscan: check high watermark after shrink zone\n\nKswapd checks that zone has sufficient pages free via zone_watermark_ok().\n\nIf any zone doesn\u0027t have enough pages, we set all_zones_ok to zero.\n!all_zone_ok makes kswapd retry rather than sleeping.\n\nI think the watermark check before shrink_zone() is pointless.  Only after\nkswapd has tried to shrink the zone is the check meaningful.\n\nMove the check to after the call to shrink_zone().\n\n[akpm@linux-foundation.org: fix comment, layout]\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@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": "59e99e5b9706867f18d4a36c1e4645fbaacbec2e",
      "tree": "e977fb5eecccf1446296fd196072bd1287b0a92f",
      "parents": [
        "06f9d8c2b50060543fb6e0af87ddb86e654dee6b"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Fri Mar 05 13:41:44 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: use rlimit helpers\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in\n3e10e716abf3c71bdb5d86b8f507f9e72236c9cd (\"resource: add helpers for\nfetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06f9d8c2b50060543fb6e0af87ddb86e654dee6b",
      "tree": "0e0f7687c58e0948334f238208529d65de165eea",
      "parents": [
        "c58267c32429ea6535428ca6b8a036892c1697f2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: mlock_vma_pages_range() only return success or failure\n\nCurrently, mlock_vma_pages_range() only return len or 0.  then current\nerror handling of mmap_region() is meaningless complex.\n\nThis patch makes simplify and makes consist with brk() code.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamewzawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c58267c32429ea6535428ca6b8a036892c1697f2",
      "tree": "c763a26e45a38b2115a2e09eb01b254284c1198b",
      "parents": [
        "b084d4353ff99d824d3bc5a5c2c22c70b1fba722"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: mlock_vma_pages_range() never return negative value\n\nCurrently, mlock_vma_pages_range() never return negative value.  Then, we\ncan remove some worthless error check.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamewzawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b084d4353ff99d824d3bc5a5c2c22c70b1fba722",
      "tree": "8178db2b337fc8a36e6ca2e1fc2e7d7473957e27",
      "parents": [
        "34e55232e59f7b19050267a05ff1226e5cd122a5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:42 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: count swap usage\n\nA frequent questions from users about memory management is what numbers of\nswap ents are user for processes.  And this information will give some\nhints to oom-killer.\n\nBesides we can count the number of swapents per a process by scanning\n/proc/\u003cpid\u003e/smaps, this is very slow and not good for usual process\ninformation handler which works like \u0027ps\u0027 or \u0027top\u0027.  (ps or top is now\nenough slow..)\n\nThis patch adds a counter of swapents to mm_counter and update is at each\nswap events.  Information is exported via /proc/\u003cpid\u003e/status file as\n\n[kamezawa@bluextal memory]$ cat /proc/self/status\nName:   cat\nState:  R (running)\nTgid:   2910\nPid:    2910\nPPid:   2823\nTracerPid:      0\nUid:    500     500     500     500\nGid:    500     500     500     500\nFDSize: 256\nGroups: 500\nVmPeak:    82696 kB\nVmSize:    82696 kB\nVmLck:         0 kB\nVmHWM:       432 kB\nVmRSS:       432 kB\nVmData:      172 kB\nVmStk:        84 kB\nVmExe:        48 kB\nVmLib:      1568 kB\nVmPTE:        40 kB\nVmSwap:        0 kB \u003c\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d this.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34e55232e59f7b19050267a05ff1226e5cd122a5",
      "tree": "6b94e776e87d2a2fe1ceca7c5606901575323900",
      "parents": [
        "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: avoid false sharing of mm_counter\n\nConsidering the nature of per mm stats, it\u0027s the shared object among\nthreads and can be a cache-miss point in the page fault path.\n\nThis patch adds per-thread cache for mm_counter.  RSS value will be\ncounted into a struct in task_struct and synchronized with mm\u0027s one at\nevents.\n\nNow, in this patch, the event is the number of calls to handle_mm_fault.\nPer-thread value is added to mm at each 64 calls.\n\n rough estimation with small benchmark on parallel thread (2threads) shows\n [before]\n     4.5 cache-miss/faults\n [after]\n     4.0 cache-miss/faults\n Anyway, the most contended object is mmap_sem if the number of threads grows.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1",
      "tree": "aa968c8a4093234e4623a34c0415bf9d8683671c",
      "parents": [
        "19b629f581320999ddb9f6597051b79cdb53459c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "mm: clean up mm_counter\n\nPresently, per-mm statistics counter is defined by macro in sched.h\n\nThis patch modifies it to\n  - defined in mm.h as inlinf functions\n  - use array instead of macro\u0027s name creation.\n\nThis patch is for reducing patch size in future patch to modify\nimplementation of per-mm counter.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19b629f581320999ddb9f6597051b79cdb53459c",
      "tree": "2be48184b1ec83f61ae4ab8a4e160d79597a30a4",
      "parents": [
        "984b3f5746ed2cde3d184651dabf26980f2b66e5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 05 13:41:38 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "infiniband: use for_each_set_bit()\n\nReplace open-coded loop with for_each_set_bit().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nAcked-by: Roland Dreier \u003crolandd@cisco.com\u003e\nCc: Sean Hefty \u003csean.hefty@intel.com\u003e\nCc: Hal Rosenstock \u003chal.rosenstock@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "984b3f5746ed2cde3d184651dabf26980f2b66e5",
      "tree": "87dc2162b4778b0075874d9592384530022e15a4",
      "parents": [
        "e3cb91ce1ac1d93a7cc6f81bb5247f7602b572bb"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Mar 05 13:41:37 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "bitops: rename for_each_bit() to for_each_set_bit()\n\nRename for_each_bit to for_each_set_bit in the kernel source tree.  To\npermit for_each_clear_bit(), should that ever be added.\n\nThe patch includes a macro to map the old for_each_bit() onto the new\nfor_each_set_bit().  This is a (very) temporary thing to ease the migration.\n\n[akpm@linux-foundation.org: add temporary for_each_bit()]\nSuggested-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3cb91ce1ac1d93a7cc6f81bb5247f7602b572bb",
      "tree": "5b7043c797650d1866b684a0330fea92b98333bb",
      "parents": [
        "781b16775ba0bb55fac0e1757bf0bd87c8879632"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Mar 05 13:41:36 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "timbgpio: fix build\n\nUse of get_irq_chip_data() et al.  requires including linux/irq.h\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Richard Röjfors \u003crichard.rojfors@pelagicore.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "781b16775ba0bb55fac0e1757bf0bd87c8879632",
      "tree": "f081f67fe98a50a217a8c9be8d55e64854e46193",
      "parents": [
        "64096c17417380d8a472d096645f4cbc9406c987"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Mar 06 18:41:07 2010 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 10:54:48 2010 -0800"
      },
      "message": "Fix a dumb typo - use of \u0026 instead of \u0026\u0026\n\nWe managed to lose O_DIRECTORY testing due to a stupid typo in commit\n1f36f774b2 (\"Switch !O_CREAT case to use of do_last()\")\n\nReported-by: Walter Sheets \u003cw41ter@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64096c17417380d8a472d096645f4cbc9406c987",
      "tree": "e01d22012de7694206143b5606f7d51f225eb249",
      "parents": [
        "cc7889ff5ee7a1c1a2b5073c53db5ad9b76f14e2",
        "1154fab73ccbab010cfaa272b6987c624cfd63c6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 14:35:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 14:35:40 2010 -0800"
      },
      "message": "Merge branch \u0027slab-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027slab-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  SLUB: Fix per-cpu merge conflict\n  failslab: add ability to filter slab caches\n  slab: fix regression in touched logic\n  dma kmalloc handling fixes\n  slub: remove impossible condition\n  slab: initialize unused alien cache entry as NULL at alloc_alien_cache().\n  SLUB: Make slub statistics use this_cpu_inc\n  SLUB: this_cpu: Remove slub kmem_cache fields\n  SLUB: Get rid of dynamic DMA kmalloc cache allocation\n  SLUB: Use this_cpu operations in slub\n"
    },
    {
      "commit": "cc7889ff5ee7a1c1a2b5073c53db5ad9b76f14e2",
      "tree": "647e11872abe7c20c0145de9adbb60f15085dad0",
      "parents": [
        "b13d3c6e8ab6ac53e8c1858a9c837cb6ba3bbef0",
        "3fa04ecd72780da31ba8b329e148179bc24a9c7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:45 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:45 2010 -0800"
      },
      "message": "Merge branch \u0027nfs-for-2.6.34\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.34\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (44 commits)\n  NFS: Remove requirement for inode-\u003ei_mutex from nfs_invalidate_mapping\n  NFS: Clean up nfs_sync_mapping\n  NFS: Simplify nfs_wb_page()\n  NFS: Replace __nfs_write_mapping with sync_inode()\n  NFS: Simplify nfs_wb_page_cancel()\n  NFS: Ensure inode is always marked I_DIRTY_DATASYNC, if it has unstable pages\n  NFS: Run COMMIT as an asynchronous RPC call when wbc-\u003efor_background is set\n  NFS: Reduce the number of unnecessary COMMIT calls\n  NFS: Add a count of the number of unstable writes carried by an inode\n  NFS: Cleanup - move nfs_write_inode() into fs/nfs/write.c\n  nfs41 fix NFS4ERR_CLID_INUSE for exchange id\n  NFS: Fix an allocation-under-spinlock bug\n  SUNRPC: Handle EINVAL error returns from the TCP connect operation\n  NFSv4.1: Various fixes to the sequence flag error handling\n  nfs4: renewd renew operations should take/put a client reference\n  nfs41: renewd sequence operations should take/put client reference\n  nfs: prevent backlogging of renewd requests\n  nfs: kill renewd before clearing client minor version\n  NFS: Make close(2) asynchronous when closing NFS O_DIRECT files\n  NFS: Improve NFS iostat byte count accuracy for writes\n  ...\n"
    },
    {
      "commit": "b13d3c6e8ab6ac53e8c1858a9c837cb6ba3bbef0",
      "tree": "4c0b6cba4975b0d7871096e0a99406d450b0272f",
      "parents": [
        "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
        "5717144a01d701614cfdb15f09ed562d720cf3db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:24 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:25:24 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  fs/9p: Add hardlink support to .u extension\n  9P2010.L handshake: .L protocol negotiation\n  9P2010.L handshake: Remove \"dotu\" variable\n  9P2010.L handshake: Add mount option\n  9P2010.L handshake: Add VFS flags\n  net/9p: Handle mount errors correctly.\n  net/9p: Remove MAX_9P_CHAN limit\n  net/9p: Add multi channel support.\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
      "tree": "d454f518db51a4de700cf3dcd4c3c71ee7288b47",
      "parents": [
        "9467c4fdd66f6810cecef0f1173330f3c6e67d45",
        "d2be1651b736002e0c76d7095d6c0ba77b4a897c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:12:34 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:12:34 2010 -0800"
      },
      "message": "Merge branch \u0027kvm-updates/2.6.34\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm\n\n* \u0027kvm-updates/2.6.34\u0027 of git://git.kernel.org/pub/scm/virt/kvm/kvm: (145 commits)\n  KVM: x86: Add KVM_CAP_X86_ROBUST_SINGLESTEP\n  KVM: VMX: Update instruction length on intercepted BP\n  KVM: Fix emulate_sys[call, enter, exit]()\u0027s fault handling\n  KVM: Fix segment descriptor loading\n  KVM: Fix load_guest_segment_descriptor() to inject page fault\n  KVM: x86 emulator: Forbid modifying CS segment register by mov instruction\n  KVM: Convert kvm-\u003erequests_lock to raw_spinlock_t\n  KVM: Convert i8254/i8259 locks to raw_spinlocks\n  KVM: x86 emulator: disallow opcode 82 in 64-bit mode\n  KVM: x86 emulator: code style cleanup\n  KVM: Plan obsolescence of kernel allocated slots, paravirt mmu\n  KVM: x86 emulator: Add LOCK prefix validity checking\n  KVM: x86 emulator: Check CPL level during privilege instruction emulation\n  KVM: x86 emulator: Fix popf emulation\n  KVM: x86 emulator: Check IOPL level during io instruction emulation\n  KVM: x86 emulator: fix memory access during x86 emulation\n  KVM: x86 emulator: Add Virtual-8086 mode of emulation\n  KVM: x86 emulator: Add group9 instruction decoding\n  KVM: x86 emulator: Add group8 instruction decoding\n  KVM: do not store wqh in irqfd\n  ...\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "5717144a01d701614cfdb15f09ed562d720cf3db",
      "tree": "ad9e54c39587483b0f680d3dbf4f8dd606f1f9c0",
      "parents": [
        "c5a7697da9775f7a0e122fa23180becc311772d1"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Fri Mar 05 14:43:43 2010 -0600"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:42 2010 -0600"
      },
      "message": "fs/9p: Add hardlink support to .u extension\n\nFor regular file and directories we put the link\ncount in th extension field in a tagged string format.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "c5a7697da9775f7a0e122fa23180becc311772d1",
      "tree": "c1113133d1f99cb00a636780242a4c99810b540e",
      "parents": [
        "342fee1d5c7dfa05f4e14ec1e583df4553b09776"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Fri Mar 05 18:51:04 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:42 2010 -0600"
      },
      "message": "9P2010.L handshake: .L protocol negotiation\n\nThis patch adds 9P2010.L protocol negotiation with the server\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "342fee1d5c7dfa05f4e14ec1e583df4553b09776",
      "tree": "87931dea926f16b44374db8a849ef131cd6ff3de",
      "parents": [
        "0fb80abd911a7cb1e6548b5279568dc1e8949702"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Fri Mar 05 18:50:14 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:42 2010 -0600"
      },
      "message": "9P2010.L handshake: Remove \"dotu\" variable\n\nRemoves \u0027dotu\u0027 variable and make everything dependent\non \u0027proto_version\u0027 field.\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "0fb80abd911a7cb1e6548b5279568dc1e8949702",
      "tree": "0c179f49f2f0d0bf2c979ee1b1f1cfd864122029",
      "parents": [
        "dd6102fbd917889384d89bc427e98e85e8fda000"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Fri Mar 05 18:49:11 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:42 2010 -0600"
      },
      "message": "9P2010.L handshake: Add mount option\n\nAdd new mount V9FS mount option to specify protocol version\n\nThis patch adds a new mount option to specify protocol version.\nWith this option it is possible to use \"-o version\u003d\" switch to\nspecify 9P protocol version to use. Valid options for version\nare:\n9p2000\n9p2000.u\n9p2010.L\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "dd6102fbd917889384d89bc427e98e85e8fda000",
      "tree": "06028b4b6a964c6a1578702c69c0731e3f03538c",
      "parents": [
        "c1a7c2262035e83a8f70ebe1328b3451702cf51b"
      ],
      "author": {
        "name": "Sripathi Kodi",
        "email": "sripathik@in.ibm.com",
        "time": "Fri Mar 05 18:48:00 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:41 2010 -0600"
      },
      "message": "9P2010.L handshake: Add VFS flags\n\nAdd 9P2000.u and 9P2010.L protocol flags to V9FS VFS\n\nThis patch adds 9P2000.u and 9P2010.L protocol flags into V9FS VFS side code\nand removes the single flag used for \u0027extended\u0027.\n\nSigned-off-by: Sripathi Kodi \u003csripathik@in.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "c1a7c2262035e83a8f70ebe1328b3451702cf51b",
      "tree": "e5bdb780478c839c20099cc3b5f6ecce7f88c0ea",
      "parents": [
        "37c1209d413242d9560e343c040777049a8dd869"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Feb 15 17:27:02 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:41 2010 -0600"
      },
      "message": "net/9p: Handle mount errors correctly.\n\nWith this patch we have\n\n# mount -t 9p -o trans\u003dvirtio virtio2 /mnt/\n# mount -t 9p -o trans\u003dvirtio virtio2 /mnt/\nmount: virtio2 already mounted or /mnt/ busy\nmount: according to mtab, virtio2 is already mounted on /mnt\n# mount -t 9p -o trans\u003dvirtio virtio3 /mnt/ -o debug\u003d0xfff\nmount: special device virtio3 does not exist\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "37c1209d413242d9560e343c040777049a8dd869",
      "tree": "d0fa67f83df03bd9450c710b56752a9f6b8cc5b9",
      "parents": [
        "f75580c4afb72c156746b3fc1ec977b1a85d3dee"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Feb 15 17:27:01 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:41 2010 -0600"
      },
      "message": "net/9p: Remove MAX_9P_CHAN limit\n\nUse a list to track the channel instead of statically\nallocated array\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "f75580c4afb72c156746b3fc1ec977b1a85d3dee",
      "tree": "b576ddedbb51a0227597920dd849e98487c872fb",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Mon Feb 15 17:27:00 2010 +0000"
      },
      "committer": {
        "name": "Eric Van Hensbergen",
        "email": "ericvh@gmail.com",
        "time": "Fri Mar 05 15:04:41 2010 -0600"
      },
      "message": "net/9p: Add multi channel support.\n\nThis is needed for supporting multiple mount points.\n\nWe can find out the device names to be used with mount by checking\n\n/sys/devices/virtio-pci/virtio*/device file\n\nif the device file have value 9 then the specific virtio device can\nbe used for mounting.\n\nex:\n #cat /sys/devices/virtio-pci/virtio1/device\n 9\n\nnow we can mount using\n# mount -t 9p -o trans\u003dvirtio virtio1  /mnt/\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Eric Van Hensbergen \u003cericvh@gmail.com\u003e\n"
    },
    {
      "commit": "3fa04ecd72780da31ba8b329e148179bc24a9c7d",
      "tree": "f5d462fd4aee086952d18f159f737c450ab46b3b",
      "parents": [
        "180b62a3d837613fcac3ce89576526423926c3c3",
        "1cda707d52e51a6cafac0aef12d2bd7052d572e6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:46:18 2010 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:46:18 2010 -0500"
      },
      "message": "Merge branch \u0027writeback-for-2.6.34\u0027 into nfs-for-2.6.34\n"
    },
    {
      "commit": "1cda707d52e51a6cafac0aef12d2bd7052d572e6",
      "tree": "7a63b005631cca98f62ea199fef739eddce85d32",
      "parents": [
        "5cf95214ccb915591e2214f81de4659302d3e452"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:30 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:56 2010 -0500"
      },
      "message": "NFS: Remove requirement for inode-\u003ei_mutex from nfs_invalidate_mapping\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5cf95214ccb915591e2214f81de4659302d3e452",
      "tree": "3afcc0d8db911b117a3537846d81d5a5172827cc",
      "parents": [
        "7f2f12d963e7c33a93bfb0b22f0178eb1e6a4196"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:29 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:56 2010 -0500"
      },
      "message": "NFS: Clean up nfs_sync_mapping\n\nRemove the redundant call to filemap_write_and_wait().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7f2f12d963e7c33a93bfb0b22f0178eb1e6a4196",
      "tree": "cfc2694fd38f40bc22d22c3ef228f871ed827fe2",
      "parents": [
        "acdc53b2146c7ee67feb1f02f7bc3020126514b8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:28 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:55 2010 -0500"
      },
      "message": "NFS: Simplify nfs_wb_page()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "acdc53b2146c7ee67feb1f02f7bc3020126514b8",
      "tree": "3d8b087e8526c4caed87229fe12c2a2b261dd0a5",
      "parents": [
        "c988950eb6dd6f8e6d98503ca094622729e9aa13"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:26 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:55 2010 -0500"
      },
      "message": "NFS: Replace __nfs_write_mapping with sync_inode()\n\nNow that we have correct COMMIT semantics in writeback_single_inode, we can\nreduce and simplify nfs_wb_all(). Also replace nfs_wb_nocommit() with a\ncall to filemap_write_and_wait(), which doesn\u0027t need to hold the\ninode-\u003ei_mutex.\n\nWith that done, we can eliminate nfs_write_mapping() altogether.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c988950eb6dd6f8e6d98503ca094622729e9aa13",
      "tree": "5a5b34050d4f20909e7378108aa131e615ef52cd",
      "parents": [
        "2928db1ffeacc9717c2d5c230d450bcc377b3ae9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:21 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:55 2010 -0500"
      },
      "message": "NFS: Simplify nfs_wb_page_cancel()\n\nIn all cases we should be able to just remove the request and call\ncancel_dirty_page().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2928db1ffeacc9717c2d5c230d450bcc377b3ae9",
      "tree": "c0dea3d26d45c3ea1a3602984ed4738b93373f67",
      "parents": [
        "5bad5abec4058c5214bfc72cec418348d6747977"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:03:18 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Ensure inode is always marked I_DIRTY_DATASYNC, if it has unstable pages\n\nSince nfs_scan_list() doesn\u0027t wait for locked pages, we have a race in\nwhich it is possible to end up with an inode that needs to send a COMMIT,\nbut which does not have the I_DIRTY_DATASYNC flag set.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5bad5abec4058c5214bfc72cec418348d6747977",
      "tree": "dab4b4916a3709632da7d3f43df63a5b8601414c",
      "parents": [
        "420e3646bb7d93a571734034249fbb1ae1a7a5c7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:02:24 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Run COMMIT as an asynchronous RPC call when wbc-\u003efor_background is set\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "420e3646bb7d93a571734034249fbb1ae1a7a5c7",
      "tree": "dc3328f6df5769e275253c23d862cb0a16ab50f1",
      "parents": [
        "ff778d02bf867e1733a09b34ad6dbb723b024814"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 17:00:02 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Reduce the number of unnecessary COMMIT calls\n\nIf the caller is doing a non-blocking flush, and there are still writebacks\npending on the wire, we can usually defer the COMMIT call until those\nwrites are done.\n\nAlso ensure that we honour the wbc-\u003enonblocking flag.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff778d02bf867e1733a09b34ad6dbb723b024814",
      "tree": "d22e33628b93f31c08089a3bf0ec4cc00a409b7a",
      "parents": [
        "8fc795f703c5138e1a8bfb88c69f52632031aa6a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 16:53:39 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:54 2010 -0500"
      },
      "message": "NFS: Add a count of the number of unstable writes carried by an inode\n\nIn order to know when we should do opportunistic commits of the unstable\nwrites, when the VM is doing a background flush, we add a field to count\nthe number of unstable writes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fc795f703c5138e1a8bfb88c69f52632031aa6a",
      "tree": "aed975562fe5557ff552bc0fe45b5d2b6f5e56c9",
      "parents": [
        "9467c4fdd66f6810cecef0f1173330f3c6e67d45"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 19 16:46:56 2010 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Mar 05 15:44:53 2010 -0500"
      },
      "message": "NFS: Cleanup - move nfs_write_inode() into fs/nfs/write.c\n\nThe sole purpose of nfs_write_inode is to commit unstable writes, so\nmove it into fs/nfs/write.c, and make nfs_commit_inode static.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9467c4fdd66f6810cecef0f1173330f3c6e67d45",
      "tree": "5fea180a10127c893b288dff2c8788b72d2eaea3",
      "parents": [
        "35c2e967d067ff02dc944f2434f024419c2fe83a",
        "a9185b41a4f84971b930c519f0c63bd450c4810d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:53:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:53:53 2010 -0800"
      },
      "message": "Merge branch \u0027write_inode2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027write_inode2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  pass writeback_control to -\u003ewrite_inode\n  make sure data is on disk before calling -\u003ewrite_inode\n"
    },
    {
      "commit": "35c2e967d067ff02dc944f2434f024419c2fe83a",
      "tree": "3fcecfe650d359f9a63a2a22c9faa3dff2b0a7a6",
      "parents": [
        "6c550ee41596798cbd873d3df9f8ea0a4ce7ad2f",
        "1f36f774b22a0ceb7dd33eca626746c81a97b6a5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:46:31 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:46:31 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Switch !O_CREAT case to use of do_last()\n  Get rid of symlink body copying\n  Finish pulling of -ESTALE handling to upper level in do_filp_open()\n  Turn do_link spaghetty into a normal loop\n  Unify exits in O_CREAT handling\n  Kill is_link argument of do_last()\n  Pull handling of LAST_BIND into do_last(), clean up ok: part in do_filp_open()\n  Leave mangled flag only for setting nd.intent.open.flag\n  Get rid of passing mangled flag to do_last()\n  Don\u0027t pass mangled open_flag to finish_open()\n  pull more into do_last()\n  bail out with ELOOP earlier in do_link loop\n  pull the common predecessors into do_last()\n  postpone __putname() until after do_last()\n  unroll do_last: loop in do_filp_open()\n  Shift releasing nd-\u003eroot from do_last() to its caller\n  gut do_filp_open() a bit more (do_last separation)\n  beginning to untangle do_filp_open()\n"
    },
    {
      "commit": "6c550ee41596798cbd873d3df9f8ea0a4ce7ad2f",
      "tree": "b85b8382cba39a48875f7b007bd105f62720afd4",
      "parents": [
        "660f6a360be399f4ebdd6572a3d24afe54e9bb1c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Mar 05 09:52:52 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 11:46:03 2010 -0800"
      },
      "message": "x86: fix mtrr missing kernel-doc\n\nFix missing kernel-doc notation in mtrr/main.c:\n\nWarning(arch/x86/kernel/cpu/mtrr/main.c:152): No description found for parameter \u0027info\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "660f6a360be399f4ebdd6572a3d24afe54e9bb1c",
      "tree": "9c16463c495a656e34577d59c97b58997b61d242",
      "parents": [
        "586fac13f8685bf9dfb32e1ee98bfb14f0dd0061",
        "e5a11016643d1ab7172193591506d33a844734cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:50:22 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:50:22 2010 -0800"
      },
      "message": "Merge branch \u0027perf-probes-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-probes-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Issue at least one memory barrier in stop_machine_text_poke()\n  perf probe: Correct probe syntax on command line help\n  perf probe: Add lazy line matching support\n  perf probe: Show more lines after last line\n  perf probe: Check function address range strictly in line finder\n  perf probe: Use libdw callback routines\n  perf probe: Use elfutils-libdw for analyzing debuginfo\n  perf probe: Rename probe finder functions\n  perf probe: Fix bugs in line range finder\n  perf probe: Update perf probe document\n  perf probe: Do not show --line option without dwarf support\n  kprobes: Add documents of jump optimization\n  kprobes/x86: Support kprobes jump optimization on x86\n  x86: Add text_poke_smp for SMP cross modifying code\n  kprobes/x86: Cleanup save/restore registers\n  kprobes/x86: Boost probes when reentering\n  kprobes: Jump optimization sysctl interface\n  kprobes: Introduce kprobes jump optimization\n  kprobes: Introduce generic insn_slot framework\n  kprobes/x86: Cleanup RELATIVEJUMP_INSTRUCTION to RELATIVEJUMP_OPCODE\n"
    },
    {
      "commit": "586fac13f8685bf9dfb32e1ee98bfb14f0dd0061",
      "tree": "6fe7df764a4298a15967139b8f2c69f88d5e22fc",
      "parents": [
        "1f63b9c15b17d5af360c180f5c71537e954d5d3b",
        "74781387822cd7a549123ae2b35862bf802689be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:57 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:57 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:\n  padata: Allocate the cpumask for the padata instance\n  crypto: authenc - Move saved IV in front of the ablkcipher request\n  crypto: hash - Fix handling of unaligned buffers\n  crypto: authenc - Use correct ahash complete functions\n  crypto: md5 - Set statesize\n"
    },
    {
      "commit": "1f63b9c15b17d5af360c180f5c71537e954d5d3b",
      "tree": "4da17d6f2035ae093680fa2caa3e1c84b44bb237",
      "parents": [
        "b24bc1e61cec2174faf5dfa632da16b6ca17144f",
        "64e290ec69be39f1887fa0b403c1e417b6b038e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:00 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:47:00 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (36 commits)\n  ext4: fix up rb_root initializations to use RB_ROOT\n  ext4: Code cleanup for EXT4_IOC_MOVE_EXT ioctl\n  ext4: Fix the NULL reference in double_down_write_data_sem()\n  ext4: Fix insertion point of extent in mext_insert_across_blocks()\n  ext4: consolidate in_range() definitions\n  ext4: cleanup to use ext4_grp_offs_to_block()\n  ext4: cleanup to use ext4_group_first_block_no()\n  ext4: Release page references acquired in ext4_da_block_invalidatepages\n  ext4: Fix ext4_quota_write cross block boundary behaviour\n  ext4: Convert BUG_ON checks to use ext4_error() instead\n  ext4: Use direct_IO_no_locking in ext4 dio read\n  ext4: use ext4_get_block_write in buffer write\n  ext4: mechanical rename some of the direct I/O get_block\u0027s identifiers\n  ext4: make \"offset\" consistent in ext4_check_dir_entry()\n  ext4: Handle non empty on-disk orphan link\n  ext4: explicitly remove inode from orphan list after failed direct io\n  ext4: fix error handling in migrate\n  ext4: deprecate obsoleted mount options\n  ext4: Fix fencepost error in chosing choosing group vs file preallocation.\n  jbd2: clean up an assertion in jbd2_journal_commit_transaction()\n  ...\n"
    },
    {
      "commit": "b24bc1e61cec2174faf5dfa632da16b6ca17144f",
      "tree": "33abe2345c70d4bce31cda8fe2e562a8a9a24dfc",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4",
        "06862f884d9c2453daaf0c1d070c69cf444f10b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:46:04 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 10:46:04 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus:\n  Squashfs: get rid of obsolete definition in header file\n  Squashfs: get rid of obsolete variable in struct squashfs_sb_info\n  Squashfs: add decompressor entries for lzma and lzo\n  Squashfs: add a decompressor framework\n  Squashfs: factor out remaining zlib dependencies into separate wrapper file\n  Squashfs: move zlib decompression wrapper code into a separate file\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "26821ed40b4230259e770c9911180f38fcaa6f59",
      "tree": "40cd0fed705ec59dd3c909b96452bae1fc532796",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:21 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:10 2010 -0500"
      },
      "message": "make sure data is on disk before calling -\u003ewrite_inode\n\nSimilar to the fsync issue fixed a while ago in commit\n2daea67e966dc0c42067ebea015ddac6834cef88 we need to write for data to\nactually hit the disk before writing out the metadata to guarantee\ndata integrity for filesystems that modify the inode in the data I/O\ncompletion path.  Currently XFS and NFS handle this manually, and AFS\nhas a write_inode method that does nothing but waiting for data, while\nothers are possibly missing out on this.\n\nFortunately this change has a lot less impact than the fsync change\nas none of the write_inode methods starts data writeout of any form\nby itself.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "06862f884d9c2453daaf0c1d070c69cf444f10b1",
      "tree": "43f3f5124675e3c38c1093d22a1230c584246c99",
      "parents": [
        "ae4a3179b11a97a5b36a768ae6ac1662d0315ff0"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Feb 25 01:31:13 2010 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Mar 05 15:35:35 2010 +0000"
      },
      "message": "Squashfs: get rid of obsolete definition in header file\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "ae4a3179b11a97a5b36a768ae6ac1662d0315ff0",
      "tree": "bd762d892c4abc6fcfc9bbec146452776c299f81",
      "parents": [
        "dc3256782f88602953676c447b243dedb1be99ad"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Thu Feb 25 00:54:48 2010 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@lougher.demon.co.uk",
        "time": "Fri Mar 05 15:35:20 2010 +0000"
      },
      "message": "Squashfs: get rid of obsolete variable in struct squashfs_sb_info\n\nSigned-off-by: Phillip Lougher \u003cphillip@lougher.demon.co.uk\u003e\n"
    },
    {
      "commit": "1f36f774b22a0ceb7dd33eca626746c81a97b6a5",
      "tree": "cfc2757bb3e21d484ce28bd3030e649b5767b5a1",
      "parents": [
        "def4af30cf945a3735ffca865788ea84b30b25d9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 10:56:19 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:22:25 2010 -0500"
      },
      "message": "Switch !O_CREAT case to use of do_last()\n\n... and now we have all intents crap well localized\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "def4af30cf945a3735ffca865788ea84b30b25d9",
      "tree": "adeac07e1675c51e8d9fa42ccf284b7b893041f1",
      "parents": [
        "3866248e5f86d74960a3d1592882490ec3021675"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 08:37:05 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:40 2010 -0500"
      },
      "message": "Get rid of symlink body copying\n\nNow that nd-\u003elast stays around until -\u003eput_link() is called, we can\njust postpone that -\u003eput_link() in do_filp_open() a bit and don\u0027t\nbother with copying.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3866248e5f86d74960a3d1592882490ec3021675",
      "tree": "af44e08612f8895a81aea230739439d4ef09cfaf",
      "parents": [
        "806b681cbe588bebe8fe47dd24da62f2d1c55851"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:21:48 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:38 2010 -0500"
      },
      "message": "Finish pulling of -ESTALE handling to upper level in do_filp_open()\n\nDon\u0027t bother with path_walk() (and its retry loop); link_path_walk()\nwill do it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "806b681cbe588bebe8fe47dd24da62f2d1c55851",
      "tree": "030d0e479f0c3e462930d18134a15092803d1ad3",
      "parents": [
        "10fa8e62f2bc33c452516585911f151d88389e4c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:16:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:36 2010 -0500"
      },
      "message": "Turn do_link spaghetty into a normal loop\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10fa8e62f2bc33c452516585911f151d88389e4c",
      "tree": "9a69dd68ffdf419cd6391f198ff40ac0943b9a35",
      "parents": [
        "9e67f36169117e07daf16dc7ca314f1db9e2050a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:09:49 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:35 2010 -0500"
      },
      "message": "Unify exits in O_CREAT handling\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9e67f36169117e07daf16dc7ca314f1db9e2050a",
      "tree": "7090b0fdafa07c91afa3fcc1eede94d0df74942f",
      "parents": [
        "67ee3ad21d0d0b2cc0b70708de8aed860fadda44"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:04:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:33 2010 -0500"
      },
      "message": "Kill is_link argument of do_last()\n\nWe set it to 1 iff we return NULL\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "67ee3ad21d0d0b2cc0b70708de8aed860fadda44",
      "tree": "842c575f8d7c06b4ebca8c418270da7207359767",
      "parents": [
        "4296e2cbf2138b5831b83f03e81de916ce1a967d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 26 07:01:01 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:31 2010 -0500"
      },
      "message": "Pull handling of LAST_BIND into do_last(), clean up ok: part in do_filp_open()\n\nNote that in case of !O_CREAT we know that nd.root has already been given up\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4296e2cbf2138b5831b83f03e81de916ce1a967d",
      "tree": "395b8422f7555c79c0251be27cff715adf9ec11e",
      "parents": [
        "5b369df8263fe7ab4dac2bb08b8f423dc5e33752"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 07:15:41 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:29 2010 -0500"
      },
      "message": "Leave mangled flag only for setting nd.intent.open.flag\n\nNothing else uses it anymore\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5b369df8263fe7ab4dac2bb08b8f423dc5e33752",
      "tree": "0b127915244593c1ed2494454d191a4fedb4d661",
      "parents": [
        "9a66179e13504c676f891908a1e94912ec5cdefb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:51:13 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:27 2010 -0500"
      },
      "message": "Get rid of passing mangled flag to do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9a66179e13504c676f891908a1e94912ec5cdefb",
      "tree": "ddfa9f767ba393744adc6714a4c7ef0966222d81",
      "parents": [
        "a2c36b450ee68470836cb858c58a6ba3a52c5ec5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 06:49:47 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:25 2010 -0500"
      },
      "message": "Don\u0027t pass mangled open_flag to finish_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a2c36b450ee68470836cb858c58a6ba3a52c5ec5",
      "tree": "5c1aff4738fd679efd6d96f2ae224ea97121b019",
      "parents": [
        "c99658fe970f442199733bcace1a00b087336a0d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 03:39:50 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:24 2010 -0500"
      },
      "message": "pull more into do_last()\n\nHandling of LAST_DOT/LAST_ROOT/LAST_DOTDOT/terminating slash\ncan be pulled in as well\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c99658fe970f442199733bcace1a00b087336a0d",
      "tree": "b9065b274d8f00639af43bbb8e4eaabcda5b559d",
      "parents": [
        "a1e28038df98e186807ff55a49c1c26d33d530a5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:27:30 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:22 2010 -0500"
      },
      "message": "bail out with ELOOP earlier in do_link loop\n\nIf we\u0027d passed through 32 trailing symlinks already, there\u0027s\nno sense following the 33rd - we\u0027ll bail out anyway.  Better\nbugger off earlier.\n\nIt *does* change behaviour, after a fashion - if the 33rd happens\nto be a procfs-style symlink, original code *would* allow it.\nThis one will not.  Cry me a river if that hurts you.  Please, do.\nAnd post a video of that, while you are at it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1e28038df98e186807ff55a49c1c26d33d530a5",
      "tree": "a72a14858ae883b333b4a0cf6bbf52d33a6bdb82",
      "parents": [
        "c41c14056210e4a328659c82b1edaccb0910d18c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:12:06 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:20 2010 -0500"
      },
      "message": "pull the common predecessors into do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c41c14056210e4a328659c82b1edaccb0910d18c",
      "tree": "0ae7f7e9f952feb4577bb1908b063997232171bb",
      "parents": [
        "27bff34300482632caf52ff589a4e7d755b32539"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:08:19 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:18 2010 -0500"
      },
      "message": "postpone __putname() until after do_last()\n\nSince do_last() doesn\u0027t mangle nd-\u003elast_name, we can safely postpone\n__putname() done in handling of trailing symlinks until after the\ncall of do_last()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "27bff34300482632caf52ff589a4e7d755b32539",
      "tree": "49c6b38dd0c6ff2eebf0f0dad4c73a6539d52bbc",
      "parents": [
        "3343eb8209cc69f0d2059f8c484ad7a3e1834c0b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:05:43 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:16 2010 -0500"
      },
      "message": "unroll do_last: loop in do_filp_open()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3343eb8209cc69f0d2059f8c484ad7a3e1834c0b",
      "tree": "25d72fd720d5dcbf0f0be40832c76759e49413cc",
      "parents": [
        "fb1cc555d533869910e20de4b8d5147570afdfad"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 02:02:38 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:15 2010 -0500"
      },
      "message": "Shift releasing nd-\u003eroot from do_last() to its caller\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fb1cc555d533869910e20de4b8d5147570afdfad",
      "tree": "99ee86c8370e28df0991a4ecd03677cb65704f01",
      "parents": [
        "648fa8611de3d4d43bbd64af3226679d2d0eb609"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 01:58:28 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:13 2010 -0500"
      },
      "message": "gut do_filp_open() a bit more (do_last separation)\n\nBrute-force separation of stuff reachable from do_last: with\nthe exception of do_link:; just take all that crap to a helper\nfunction as-is and have it tell the caller if it has to go\nto do_link.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "648fa8611de3d4d43bbd64af3226679d2d0eb609",
      "tree": "96d134de1d935d6d54daac678dc07346bbbda940",
      "parents": [
        "64ba9926759792cf7b95f823402e2781edd1b5d4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 24 01:26:48 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 09:01:11 2010 -0500"
      },
      "message": "beginning to untangle do_filp_open()\n\nThat\u0027s going to be a long and painful series.  The first step:\ntake the stuff reachable from \u0027ok\u0027 label in do_filp_open() into\na new helper (finish_open()).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "64e290ec69be39f1887fa0b403c1e417b6b038e7",
      "tree": "8c7f87a2a4baa357e0cc04ab10b5af0b06273160",
      "parents": [
        "c437b2733520599a2c6e0dbcdeae611319f84707"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Mar 04 22:25:21 2010 -0500"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Thu Mar 04 22:25:21 2010 -0500"
      },
      "message": "ext4: fix up rb_root initializations to use RB_ROOT\n\next4 uses rb_node \u003d NULL; to zero rb_root at few places.  Using\nRB_ROOT as the initializer is more portable in case the underlying\nimplementation of rbtrees changes in the future.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "efd8f0e6f6c1faa041f228d7113bd3a9db802d49",
      "tree": "81dbe5e0db3651227466f18283fd640edda080f2",
      "parents": [
        "871a293155a24554e153538d36e3a80fa169aefb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:08 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:31 2010 +0100"
      },
      "message": "quota: stop using QUOTA_OK / NO_QUOTA\n\nJust use 0 / -EDQUOT directly - that\u0027s what it translates to anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "871a293155a24554e153538d36e3a80fa169aefb",
      "tree": "7e38f5a2f9e87f63cbc4bc1077a4bb49dde441b0",
      "parents": [
        "907f4554e2521cb28b0009d17167760650a9561c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:07 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot initialize routine\n\nGet rid of the initialize dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_initialize helper to __dquot_initialize\nand vfs_dq_init to dquot_initialize to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9f7547580263d4a55efe06ce5cfd567f568be6e8",
      "tree": "6f926a075eeed815d0a6680c06f235da0e5ea6d9",
      "parents": [
        "257ba15cedf1288f0c96118d7e63947231d27278"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:05 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot drop routine\n\nGet rid of the drop dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_drop helper to __dquot_drop\nand vfs_dq_drop to dquot_drop to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "257ba15cedf1288f0c96118d7e63947231d27278",
      "tree": "7a977a0ea08a324ce74aedce19406cb0688f15e2",
      "parents": [
        "b43fa8284d7790d9cca32c9c55e24f29be2fa33b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:04 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: move dquot drop responsibility into the filesystem\n\nCurrently clear_inode calls vfs_dq_drop directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the drop inside the -\u003eclear_inode\nsuperblock operation.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b43fa8284d7790d9cca32c9c55e24f29be2fa33b",
      "tree": "acb7f205fe2a1ae324e0e11c50f43baaa6b8dfab",
      "parents": [
        "759bfee658beab14af7b357156461d0eb852be2c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:03 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: cleanup dquot transfer routine\n\nGet rid of the transfer dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_transfer helper to __dquot_transfer\nand vfs_dq_transfer to dquot_transfer to have a consistent namespace,\nand make the new dquot_transfer return a normal negative errno value\nwhich all callers expect.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "759bfee658beab14af7b357156461d0eb852be2c",
      "tree": "180cdedd004781ee67c30ce89951324d32910067",
      "parents": [
        "63936ddaa16b9486e2d426ed7b09f559a5c60f87"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:02 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: move dquot transfer responsibility into the filesystem\n\nCurrently notify_change calls vfs_dq_transfer directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the transfer.  Most filesystems already\ndo this, only ufs and udf need the code added, and for jfs it needs to\nbe enabled unconditionally instead of only when ACLs are enabled.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "63936ddaa16b9486e2d426ed7b09f559a5c60f87",
      "tree": "4cb1c4581799e10c26dd71d1a7d420de3c2cfd05",
      "parents": [
        "5dd4056db84387975140ff2568eaa0406f07985e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:01 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: cleanup inode allocation / freeing routines\n\nGet rid of the alloc_inode and free_inode dquot operations - they are\nalways called from the filesystem and if a filesystem really needs\ntheir own (which none currently does) it can just call into it\u0027s\nown routine directly.\n\nAlso get rid of the vfs_dq_alloc/vfs_dq_free wrappers and always\ncall the lowlevel dquot_alloc_inode / dqout_free_inode routines\ndirectly, which now lose the number argument which is always 1.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5dd4056db84387975140ff2568eaa0406f07985e",
      "tree": "03c26d7f6e3367b167bfeeb1a01654c6619573f4",
      "parents": [
        "49792c806d0bfd53afc789dcdf50dc9bed2c5b83"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:00 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: cleanup space allocation / freeing routines\n\nGet rid of the alloc_space, free_space, reserve_space, claim_space and\nrelease_rsv dquot operations - they are always called from the filesystem\nand if a filesystem really needs their own (which none currently does)\nit can just call into it\u0027s own routine directly.\n\nMove shared logic into the common __dquot_alloc_space,\ndquot_claim_space_nodirty and __dquot_free_space low-level methods,\nand rationalize the wrappers around it to move as much as possible\ncode into the common block for CONFIG_QUOTA vs not.  Also rename\nall these helpers to be named dquot_* instead of vfs_dq_*.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "49792c806d0bfd53afc789dcdf50dc9bed2c5b83",
      "tree": "b24280fa76abad273e0f009a9cfe49b594c2becf",
      "parents": [
        "7eb4969e04060dcf3fbd46af9c21b1059b853068"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Mar 02 15:51:02 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:27 2010 +0100"
      },
      "message": "ext3: add writepage sanity checks\n\n- There is theoretical possibility to perform writepage on\n   RO superblock. Add explicit check for what case.\n- Page must being locked before writepage.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "7eb4969e04060dcf3fbd46af9c21b1059b853068",
      "tree": "ac093841df6abbe2d517af6656b149ad42536648",
      "parents": [
        "ab94c39b6fa076d4f6d2903dcc54cda35d938776"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Mar 01 14:02:37 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:27 2010 +0100"
      },
      "message": "ext3: Truncate allocated blocks if direct IO write fails to update i_size\n\nWe have to truncate blocks allocated to file during direct IO when we\nfail to update i_size properly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ab94c39b6fa076d4f6d2903dcc54cda35d938776",
      "tree": "d90042ad0c903e6f9034017906dfddd4dca49d62",
      "parents": [
        "8ddd69d6df4758bf0cab981481af24cc84419567"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Feb 22 21:07:17 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:27 2010 +0100"
      },
      "message": "quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n\nSometimes invalidate_bdev() can fail to invalidate a part of block\ndevice cache because of dirty data. If the filesystem has blocksize\nsmaller than page size, this can happen even for pages containing\nquota files and thus kernel would operate on stale data. Fix the\nissue by syncing the filesystem before invalidating the cache.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "8ddd69d6df4758bf0cab981481af24cc84419567",
      "tree": "126eb5877e092963b7ed1cf143e3ce0bac6a7c85",
      "parents": [
        "ad1e6e8da9fe8cb7ecfde8eabacedc3b50fceae4"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 16 08:31:50 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:26 2010 +0100"
      },
      "message": "quota: generalize quota transfer interface\n\nCurrent quota transfer interface support only uid/gid.\nThis patch extend interface in order to support various quotas types\nThe goal is accomplished without changes in most frequently used\nvfs_dq_transfer() func.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ad1e6e8da9fe8cb7ecfde8eabacedc3b50fceae4",
      "tree": "0971e2039c2d6feb6763ba018e9c73123d207ddb",
      "parents": [
        "86963918965eb8fe0c8ae009e7c1b4c630f533d5"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 16 08:31:49 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:26 2010 +0100"
      },
      "message": "quota: sb_quota state flags cleanup\n\n- remove hardcoded USRQUOTA/GRPQUOTA flags\n- convert int to bool for appropriate functions\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "86963918965eb8fe0c8ae009e7c1b4c630f533d5",
      "tree": "333371098928c834b0bda0c2fe5bfd591a3806ef",
      "parents": [
        "e5472147e1c0712d95d973acfdbd862957c77add"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 16 20:37:12 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:26 2010 +0100"
      },
      "message": "jbd: Delay discarding buffers in journal_unmap_buffer\n\nDelay discarding buffers in journal_unmap_buffer until\nwe know that \"add to orphan\" operation has definitely been\ncommitted, otherwise the log space of committing transation\nmay be freed and reused before truncate get committed, updates\nmay get lost if crash happens.\n\nThis patch is a backport of JBD2 fix by dingdinghua \u003cdingdinghua@nrchpc.ac.cn\u003e.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "e5472147e1c0712d95d973acfdbd862957c77add",
      "tree": "a1e48e5e57931e53c3c9991b5005dd911299a71a",
      "parents": [
        "ac0e773718dc20551e72900d2e7eada96ac91100"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 16 19:33:42 2010 +0300"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:26 2010 +0100"
      },
      "message": "ext3: quota_write cross block boundary behaviour\n\nWe always assume what dquot update result in changes in one data block\nBut ext3_quota_write() function may handle cross block boundary writes\nIn fact if this ever happen it will result in incorrect journal credits\nreservation. And later bug_on triggering. As soon this never happen the\nboundary cross loop is NOOP. In order to make things straight\nlet\u0027s remove this loop and assert cross boundary condition.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "ac0e773718dc20551e72900d2e7eada96ac91100",
      "tree": "c46ec45c2044b0995ef241be4b800527210414d7",
      "parents": [
        "5582c76f901d240f57329212b59b4d957ea8d6cf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:56 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:25 2010 +0100"
      },
      "message": "quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n\nWe already do these checks in the generic code.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5582c76f901d240f57329212b59b4d957ea8d6cf",
      "tree": "3709746be14e89eebbd4099b59dff2aefc348167",
      "parents": [
        "799a9d44023c069f46bc5933a930eab0bd37d0df"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:55 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:25 2010 +0100"
      },
      "message": "quota: split out compat_sys_quotactl support from quota.c\n\nInstead of adding ifdefs just split it into a new file.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "799a9d44023c069f46bc5933a930eab0bd37d0df",
      "tree": "8c8a752f85ae5801e26e93be977491ea0cbb1fae",
      "parents": [
        "a56fca23f67282467c08e75c40081da2345dfdbf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:54 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:25 2010 +0100"
      },
      "message": "quota: split out netlink notification support from quota.c\n\nInstead of adding ifdefs just split it into a new file.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "a56fca23f67282467c08e75c40081da2345dfdbf",
      "tree": "73d50c7b2be8c1435fbaa915fa4bf882824a51a7",
      "parents": [
        "5fb324ad24febe57a8a2e62903dcb7bad546ea71"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:53 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:24 2010 +0100"
      },
      "message": "quota: remove invalid optimization from quota_sync_all\n\nChecking the \"VFS\" quota enabled and dirty bits from generic code means\nthis code will never get called for other implementations, e.g. XFS and\nGFS2.  Grabbing the reference on the superblock really isn\u0027t much overhead\nfor a global Q_SYNC call, so just drop this optimization.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5fb324ad24febe57a8a2e62903dcb7bad546ea71",
      "tree": "f49d1b8b7fe9feffbdd1afba18047001f5d7228f",
      "parents": [
        "8c4e4acd660a09e571a71583b5bbe1eee700c9ad"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:52 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:24 2010 +0100"
      },
      "message": "quota: move code from sync_quota_sb into vfs_quota_sync\n\nCurrenly sync_quota_sb does a lot of sync and truncate action that only\napplies to \"VFS\" style quotas and is actively harmful for the sync\nperformance in XFS.  Move it into vfs_quota_sync and add a wait parameter\nto -\u003equota_sync to tell if we need it or not.\n\nMy audit of the GFS2 code says it\u0027s also not needed given the way GFS2\nimplements quotas, but I\u0027d be happy if this can get a detailed review.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "8c4e4acd660a09e571a71583b5bbe1eee700c9ad",
      "tree": "05d1208e70d96dfa6857dbb84de7f3554a721992",
      "parents": [
        "c988afb5fa3fc450207c3dfc0ce535f4bfdae4d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:51 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:24 2010 +0100"
      },
      "message": "quota: clean up Q_XQUOTASYNC\n\nCurrently Q_XQUOTASYNC calls into the quota_sync method, but XFS does something\nentirely different in it than the rest of the filesystems.  xfs_quota which\ncalls Q_XQUOTASYNC expects an asynchronous data writeout to flush delayed\nallocations, while the \"VFS\" quota support wants to flush changes to the quota\nfile.\n\nSo make Q_XQUOTASYNC call into the writeback code directly and make the\nquota_sync method optional as XFS doesn\u0027t need in the sense expected by the\nrest of the quota code.\n\nGFS2 was using limited XFS-style quota and has a quota_sync method fitting\nneither the style used by vfs_quota_sync nor xfs_fs_quota_sync.  I left it\nin for now as per discussion with Steve it expects to be called from the\nsync path this way.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c988afb5fa3fc450207c3dfc0ce535f4bfdae4d1",
      "tree": "dcb9b4e11c4429ee79198ee3a7de43d734c1cbfe",
      "parents": [
        "6ae09575b3c951ad77c07d068b8dbbc09031b2d1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:50 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:22 2010 +0100"
      },
      "message": "quota: simplify permission checking\n\nStop having complicated different routines for checking permissions for\nXQM vs \"VFS\" quotas.  Instead do the checks for having sb-\u003es_qcop and\na valid type directly in do_quotactl, and munge the *quotactl_valid functions\ninto a check_quotactl_permission helper that only checks for permissions.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "6ae09575b3c951ad77c07d068b8dbbc09031b2d1",
      "tree": "772a3cccbe12d98ecc33acb31f7fdb05c4e4b957",
      "parents": [
        "f450d4fee42c52e8045131a355b2de03094aa066"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:49 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:22 2010 +0100"
      },
      "message": "quota: special case Q_SYNC without device name\n\nThe Q_SYNC command can be called without the path to a device, in which case\nit iterates over all superblocks.  Special case this variant directly in\nsys_quotactl so that the other code always gets a superblock and doesn\u0027t\nneed to deal with this case.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "f450d4fee42c52e8045131a355b2de03094aa066",
      "tree": "07fadb1b4c868ad9eb571f68e32a44a6bbd2599c",
      "parents": [
        "c411e5f66a5dd36827a5f9d1392a1afdf69ff075"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:48 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: clean up checks for supported quota methods\n\nMove the checks for sb-\u003es_qcop-\u003efoo next to the actual calls for them, same\nfor sb_has_quota_active checks where applicable.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c411e5f66a5dd36827a5f9d1392a1afdf69ff075",
      "tree": "ec15fda09302f281785675f4b9878e5360a49788",
      "parents": [
        "0a5a9c725512461d19397490f3adf29931dca1f2"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Feb 16 03:44:47 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: split do_quotactl\n\nSplit out a helper for each non-trivial command from do_quotactl.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "0a5a9c725512461d19397490f3adf29931dca1f2",
      "tree": "8df303b6fe335d825cedbfa8cde5bd76c7f53742",
      "parents": [
        "c469070aea5a0ada45a836937c776fd3083dae2b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 09 18:20:39 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: Fix warning when a delayed write happens before quota is enabled\n\nIf a delayed-allocation write happens before quota is enabled, the\nkernel spits out a warning:\nWARNING: at fs/quota/dquot.c:988 dquot_claim_space+0x77/0x112()\n\nbecause the fact that user has some delayed allocation is not recorded\nin quota structure.\n\nMake dquot_initialize() update amount of reserved space for user if it sees\ninode has some space reserved. Also make sure that reserved quota space does\nnot go negative and we warn about the filesystem bug just once.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c469070aea5a0ada45a836937c776fd3083dae2b",
      "tree": "8c36117b34aba28a73c2fe4e03c7e89c2f43aef3",
      "parents": [
        "c7e8d4d6dceeb6fd236991f590d3fa6f97c59874"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Tue Feb 09 17:53:36 2010 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:21 2010 +0100"
      },
      "message": "quota: manage reserved space when quota is not active [v2]\n\nSince we implemented generic reserved space management interface,\nthen it is possible to account reserved space even when quota\nis not active (similar to i_blocks/i_bytes).\n\nWithout this patch following testcase result in massive comlain from\nWARN_ON in dquot_claim_space()\n\nTEST_CASE:\nmount /dev/sdb /mnt -oquota\ndd if\u003d/dev/zero of\u003d/mnt/test bs\u003d1M count\u003d1\nquotaon /mnt\n# fs_reserved_spave \u003d\u003d 1Mb\n# quota_reserved_space \u003d\u003d 0, because quota was disabled\ndd if\u003d/dev/zero of\u003d/mnt/test seek\u003d1 bs\u003d1M count\u003d1\n# fs_reserved_spave \u003d\u003d 2Mb\n# quota_reserved_space \u003d\u003d 1Mb\nsync  # -\u003edquot_claim_space() -\u003e WARN_ON\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    }
  ],
  "next": "c7e8d4d6dceeb6fd236991f590d3fa6f97c59874"
}
