)]}'
{
  "log": [
    {
      "commit": "d2346963bfcbb9a8ee783ca3c3b3bdd7448ec9d5",
      "tree": "4ba57a6ec31f3a4683e7766fbf4f182d459a8b51",
      "parents": [
        "4a7cbb56fdbd92a47f57ca8b25bf5db35f0d6518",
        "46fe44ce8777f087aa8ad4a2605fdcfb9c2d63af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 24 12:12:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 24 12:12:40 2012 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:\n  quota: Pass information that quota is stored in system file to userspace\n  ext2: protect inode changes in the SETVERSION and SETFLAGS ioctls\n  jbd: Issue cache flush after checkpointing\n"
    },
    {
      "commit": "a99cbf6b43a7b3b15f6139b2d9ac4ecceccd3c99",
      "tree": "d92277ec77dbaf6f04a1ab4fe31a974c1ce51f76",
      "parents": [
        "4f57d865f1d863346ac50db9c25859e73a86499c",
        "b4d20859362fde976bb2fa53eb51b798cdba1afc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 10:08:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 10:08:08 2012 -0800"
      },
      "message": "Merge branch \u0027kernel-doc\u0027 from Randy Dunlap\n\nThe usual kernel-doc fixups from Randy.  Some of them David acked as\nmerged in his tree, this is the random left-overs.\n\n* kernel-doc:\n  docbook: fix sched source file names in device-drivers book\n  docbook: change iomap source filename in deviceiobook\n  docbook: don\u0027t use serial_core.h in device-drivers book\n  kernel-doc: fix kernel-doc warnings in sched\n  kernel-doc: fix new warnings in cfg80211.h\n  kernel-doc: fix new warning in usb.h\n  kernel-doc: fix new warnings in device.h\n  kernel-doc: fix new warnings in debugfs\n  kernel-doc: fix new warning in regulator core\n  kernel-doc: fix new warnings in pci\n  kernel-doc: fix new warnings in driver-core\n  kernel-doc: fix new warnings in auditsc.c\n  scripts/kernel-doc: fix fatal error caused by cfg80211.h\n"
    },
    {
      "commit": "4f57d865f1d863346ac50db9c25859e73a86499c",
      "tree": "ac3cf5abdc3ce4b5c051f03c682f8b0668d66caf",
      "parents": [
        "46c5b83bcc5ab4db34716954fc64645eba7038ca",
        "c25a785d6647984505fa165b5cd84cfc9a95970b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 09:27:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 09:27:54 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027\n\nQuoth Andrew:\n  \"Random fixes.  And a simple new LED driver which I\u0027m trying to sneak\n   in while you\u0027re not looking.\"\n\nSneaking successful.\n\n* akpm:\n  score: fix off-by-one index into syscall table\n  mm: fix rss count leakage during migration\n  SHM_UNLOCK: fix Unevictable pages stranded after swap\n  SHM_UNLOCK: fix long unpreemptible section\n  kdump: define KEXEC_NOTE_BYTES arch specific for s390x\n  mm/hugetlb.c: undo change to page mapcount in fault handler\n  mm: memcg: update the correct soft limit tree during migration\n  proc: clear_refs: do not clear reserved pages\n  drivers/video/backlight/l4f00242t03.c: return proper error in l4f00242t03_probe if regulator_get() fails\n  drivers/video/backlight/adp88x0_bl.c: fix bit testing logic\n  kprobes: initialize before using a hlist\n  ipc/mqueue: simplify reading msgqueue limit\n  leds: add led driver for Bachmann\u0027s ot200\n  mm: __count_immobile_pages(): make sure the node is online\n  mm: fix NULL ptr dereference in __count_immobile_pages\n  mm: fix warnings regarding enum migrate_mode\n"
    },
    {
      "commit": "7908b3ef6809e49c77d914342dfaa4b946476d7a",
      "tree": "44af103c5457b4c2286400158dcfc18846a7c4f0",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f",
        "acbbb76a26648dfae6fed0989879e40d75692bfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:59:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:59:49 2012 -0800"
      },
      "message": "Merge git://git.samba.org/sfrench/cifs-2.6\n\n* git://git.samba.org/sfrench/cifs-2.6:\n  CIFS: Rename *UCS* functions to *UTF16*\n  [CIFS] ACL and FSCACHE support no longer EXPERIMENTAL\n  [CIFS] Fix build break with multiuser patch when LANMAN disabled\n  cifs: warn about impending deprecation of legacy MultiuserMount code\n  cifs: fetch credentials out of keyring for non-krb5 auth multiuser mounts\n  cifs: sanitize username handling\n  keys: add a \"logon\" key type\n  cifs: lower default wsize when unix extensions are not used\n  cifs: better instrumentation for coalesce_t2\n  cifs: integer overflow in parse_dacl()\n  cifs: Fix sparse warning when calling cifs_strtoUCS\n  CIFS: Add descriptions to the brlock cache functions\n"
    },
    {
      "commit": "b5763accd3b5fc131ee06e26ce56e63ae0322c9b",
      "tree": "50f0823167602fdc631a57d867fce2546b277bef",
      "parents": [
        "5bc75a886353fa5f386c5ce49a93da1756006d8f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Sat Jan 21 11:02:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:44:53 2012 -0800"
      },
      "message": "kernel-doc: fix new warnings in debugfs\n\nFix new kernel-doc warnings:\n\nWarning(fs/debugfs/file.c:556): No description found for parameter \u0027nregs\u0027\nWarning(fs/debugfs/file.c:556): Excess function parameter \u0027mregs\u0027 description in \u0027debugfs_print_regs32\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85e72aa5384b1a614563ad63257ded0e91d1a620",
      "tree": "c39241b189ce0ab8b69e1b3ec3fda34f9cbfb320",
      "parents": [
        "d59d9ebaacba32b63f24d53b1463519b445b4683"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Fri Jan 20 14:34:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 23 08:38:48 2012 -0800"
      },
      "message": "proc: clear_refs: do not clear reserved pages\n\n/proc/pid/clear_refs is used to clear the Referenced and YOUNG bits for\npages and corresponding page table entries of the task with PID pid, which\nincludes any special mappings inserted into the page tables in order to\nprovide things like vDSOs and user helper functions.\n\nOn ARM this causes a problem because the vectors page is mapped as a\nglobal mapping and since ec706dab (\"ARM: add a vma entry for the user\naccessible vector page\"), a VMA is also inserted into each task for this\npage to aid unwinding through signals and syscall restarts.  Since the\nvectors page is required for handling faults, clearing the YOUNG bit (and\nsubsequently writing a faulting pte) means that we lose the vectors page\n*globally* and cannot fault it back in.  This results in a system deadlock\non the next exception.\n\nTo see this problem in action, just run:\n\n\t$ echo 1 \u003e /proc/self/clear_refs\n\non an ARM platform (as any user) and watch your system hang.  I think this\nhas been the case since 2.6.37\n\nThis patch avoids clearing the aforementioned bits for reserved pages,\ntherefore leaving the vectors page intact on ARM.  Since reserved pages\nare not candidates for swap, this change should not have any impact on the\nusefulness of clear_refs.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nReported-by: Moussa Ba \u003cmoussaba@micron.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nAcked-by: Nicolas Pitre \u003cnico@linaro.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[2.6.37+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "567e47935a7cddd8e823c73bb8ee0b2805cd4940",
      "tree": "0d1ee0eb233b7f84084f779d32ef1fb2d5be755a",
      "parents": [
        "99d1edc5c5ef5ee80982b354d57cef106cb8423c",
        "f7e6746ebae984ea67b0a1a1e23c7e6698240631",
        "6eadf1075c6f923fece419e38cf05bff559aefcd",
        "4f2f81a5621de47d42476d0b929be2e0d565df84"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 19 14:53:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 19 14:53:06 2012 -0800"
      },
      "message": "Merge branches \u0027sched-urgent-for-linus\u0027, \u0027perf-urgent-for-linus\u0027 and \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  sched/accounting, proc: Fix /proc/stat interrupts sum\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  tracepoints/module: Fix disabling tracepoints with taint CRAP or OOT\n  x86/kprobes: Add arch/x86/tools/insn_sanity to .gitignore\n  x86/kprobes: Fix typo transferred from Intel manual\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, syscall: Need __ARCH_WANT_SYS_IPC for 32 bits\n  x86, tsc: Fix SMI induced variation in quick_pit_calibrate()\n  x86, opcode: ANDN and Group 17 in x86-opcode-map.txt\n  x86/kconfig: Move the ZONE_DMA entry under a menu\n  x86/UV2: Add accounting for BAU strong nacks\n  x86/UV2: Ack BAU interrupt earlier\n  x86/UV2: Remove stale no-resources test for UV2 BAU\n  x86/UV2: Work around BAU bug\n  x86/UV2: Fix BAU destination timeout initialization\n  x86/UV2: Fix new UV2 hardware by using native UV2 broadcast mode\n  x86: Get rid of dubious one-bit signed bitfield\n"
    },
    {
      "commit": "e19c29e8d8d3b2dbc4c9a859f40c3f95ed089441",
      "tree": "9fb1d7c2973bbcae7632d4380868ef8c9ce40713",
      "parents": [
        "afd290945cd283030b51b433a66fe57a8feb28c8",
        "8bc5191b261c4fd9a5e9052cebe04ce2ef05f2e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 19 14:49:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 19 14:49:16 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  qnx4: don\u0027t leak -\u003eBitMap on late failure exits\n  qnx4: reduce the insane nesting in qnx4_checkroot()\n  qnx4: di_fname is an array, for crying out loud...\n  vfs: remove printk from set_nlink()\n  wake up s_wait_unfrozen when -\u003efreeze_fs fails\n"
    },
    {
      "commit": "8bc5191b261c4fd9a5e9052cebe04ce2ef05f2e7",
      "tree": "e6cbfb89710d748909156c3f728fe3e1bf613816",
      "parents": [
        "4134bf81ffd962f4de9bbeca55130d2238bd3698"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 19 13:54:36 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 19 13:54:36 2012 -0500"
      },
      "message": "qnx4: don\u0027t leak -\u003eBitMap on late failure exits\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4134bf81ffd962f4de9bbeca55130d2238bd3698",
      "tree": "5eef377c888d1f8432fa1dbbc397539588fe368e",
      "parents": [
        "1aab323ea5cd67d2d2572a1f2794978583ff8545"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 19 13:40:57 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 19 13:40:57 2012 -0500"
      },
      "message": "qnx4: reduce the insane nesting in qnx4_checkroot()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1aab323ea5cd67d2d2572a1f2794978583ff8545",
      "tree": "102dc00a85b084a458e1d27afa8b1dcc0e5a7ce2",
      "parents": [
        "424a5334a5235c2fbb80090b18a065eeceb51d64"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 19 13:19:42 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jan 19 13:19:42 2012 -0500"
      },
      "message": "qnx4: di_fname is an array, for crying out loud...\n\n(struct qnx4_inode_entry *)(bh-\u003eb_data + some_offset)-\u003edi_fname\nis not going to be NULL, TYVM...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "acbbb76a26648dfae6fed0989879e40d75692bfc",
      "tree": "509620f02e6d86444ea426bc188ba943381e5815",
      "parents": [
        "c56001879bc091eee0c7a8e6e94ea0bea63c3012"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jan 18 22:32:33 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jan 18 22:32:33 2012 -0600"
      },
      "message": "CIFS: Rename *UCS* functions to *UTF16*\n\nto reflect the unicode encoding used by CIFS protocol.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nAcked-by: Jeff Layton \u003cjlayton@samba.org\u003e\nReviewed-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail.com\u003e\n"
    },
    {
      "commit": "c56001879bc091eee0c7a8e6e94ea0bea63c3012",
      "tree": "149983a3303a87252ef5f662b7882175c42c28b8",
      "parents": [
        "88a4412b798236bfdd9284d5c251d76679f944e1"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jan 18 17:19:11 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jan 18 17:55:41 2012 -0600"
      },
      "message": "[CIFS] ACL and FSCACHE support no longer EXPERIMENTAL\n\nCIFS ACL support and FSCACHE support have been in long enough\nto be no longer considered experimental.  Remove obsolete Kconfig\ndependency.\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "88a4412b798236bfdd9284d5c251d76679f944e1",
      "tree": "a95990401c93cd45271b39745761ecef2d3182bd",
      "parents": [
        "34f598ca0803f399da3438df46c7f56bfe423789"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jan 18 17:13:47 2012 -0600"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jan 18 17:13:47 2012 -0600"
      },
      "message": "[CIFS] Fix build break with multiuser patch when LANMAN disabled\n\nCC: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "789b4588da40cf572ef982bdc5d590ec1b0386fe",
      "tree": "afea2105e4f057722792a72db49aa21457ad65c8",
      "parents": [
        "8a8798a5ff90977d6459ce1d657cf8fe13a51e97"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 17 16:09:15 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 17 22:40:31 2012 -0600"
      },
      "message": "cifs: warn about impending deprecation of legacy MultiuserMount code\n\nWe\u0027ll allow a grace period of 2 releases (3.3 and 3.4) and then remove\nthe legacy code in 3.5.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "8a8798a5ff90977d6459ce1d657cf8fe13a51e97",
      "tree": "42708337792bc20295faed2c78f4dca89e009ffa",
      "parents": [
        "04febabcf55beeffb8794a0d8c539e571bd2ae29"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 17 16:09:15 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 17 22:40:28 2012 -0600"
      },
      "message": "cifs: fetch credentials out of keyring for non-krb5 auth multiuser mounts\n\nFix up multiuser mounts to set the secType and set the username and\npassword from the key payload in the vol info for non-krb5 auth types.\n\nLook for a key of type \"secret\" with a description of\n\"cifs:a:\u003cserver address\u003e\" or \"cifs:d:\u003cdomainname\u003e\". If that\u0027s found,\nthen scrape the username and password out of the key payload and use\nthat to create a new user session.\n\nFinally, don\u0027t have the code enforce krb5 auth on multiuser mounts,\nbut do require a kernel with keys support.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "04febabcf55beeffb8794a0d8c539e571bd2ae29",
      "tree": "8727fdf5c811bab3d164293488cd5e1a3816276c",
      "parents": [
        "9f6ed2ca257fa8650b876377833e6f14e272848b"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 17 16:09:15 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 17 22:40:26 2012 -0600"
      },
      "message": "cifs: sanitize username handling\n\nCurrently, it\u0027s not very clear whether you\u0027re allowed to have a NULL\nvol-\u003eusername or ses-\u003euser_name. Some places check for it and some don\u0027t.\n\nMake it clear that a NULL pointer is OK in these fields, and ensure that\nall the callers check for that.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "ce91acb3acae26f4163c5a6f1f695d1a1e8d9009",
      "tree": "99fb4bf5e536de370b6d3378199982ff4c829b69",
      "parents": [
        "f5fffcee27c09143ba80e5257dbd1f381d86342f"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 17 16:08:51 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 17 22:39:37 2012 -0600"
      },
      "message": "cifs: lower default wsize when unix extensions are not used\n\nWe\u0027ve had some reports of servers (namely, the Solaris in-kernel CIFS\nserver) that don\u0027t deal properly with writes that are \"too large\" even\nthough they set CAP_LARGE_WRITE_ANDX. Change the default to better\nmirror what windows clients do.\n\nCc: stable@vger.kernel.org\nCc: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nReported-by: Nick Davis \u003cphireph0x@yahoo.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "f5fffcee27c09143ba80e5257dbd1f381d86342f",
      "tree": "14471cf7b68f1845949c6f0bc3bd6852e38ca233",
      "parents": [
        "7250170c9ed00f3b74b11b98afefab45020672dd"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jan 17 13:49:17 2012 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "smfrench@gmail.com",
        "time": "Tue Jan 17 22:39:34 2012 -0600"
      },
      "message": "cifs: better instrumentation for coalesce_t2\n\nWhen coalesce_t2 returns an error, have it throw a cFYI message that\nexplains the reason. Also rename some variables to clarify what they\nrepresent.\n\nReported-and-Tested-by: Konstantinos Skarlatos \u003ck.skarlatos@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "f429ee3b808118591d1f3cdf3c0d0793911a5677",
      "tree": "96d848f5f677d96758ecd2aee5eb6931b75bf218",
      "parents": [
        "22b4eb5e3174efb49791c62823d0cccc35394c36",
        "c158a35c8a681cf68d36f22f058f9f5466386c71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 16:06:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 16:41:31 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit: (29 commits)\n  audit: no leading space in audit_log_d_path prefix\n  audit: treat s_id as an untrusted string\n  audit: fix signedness bug in audit_log_execve_info()\n  audit: comparison on interprocess fields\n  audit: implement all object interfield comparisons\n  audit: allow interfield comparison between gid and ogid\n  audit: complex interfield comparison helper\n  audit: allow interfield comparison in audit rules\n  Kernel: Audit Support For The ARM Platform\n  audit: do not call audit_getname on error\n  audit: only allow tasks to set their loginuid if it is -1\n  audit: remove task argument to audit_set_loginuid\n  audit: allow audit matching on inode gid\n  audit: allow matching on obj_uid\n  audit: remove audit_finish_fork as it can\u0027t be called\n  audit: reject entry,always rules\n  audit: inline audit_free to simplify the look of generic code\n  audit: drop audit_set_macxattr as it doesn\u0027t do anything\n  audit: inline checks for not needing to collect aux records\n  audit: drop some potentially inadvisable likely notations\n  ...\n\nUse evil merge to fix up grammar mistakes in Kconfig file.\n\nBad speling and horrible grammar (and copious swearing) is to be\nexpected, but let\u0027s keep it to commit messages and comments, rather than\nexpose it to users in config help texts or printouts.\n"
    },
    {
      "commit": "22b4eb5e3174efb49791c62823d0cccc35394c36",
      "tree": "7324d6b53ad3c18c244094ad5d51b500716d7304",
      "parents": [
        "d65773b22b749252b2805dcf96bdeb951a9481d8",
        "d060646436233912178e6b9e3a7f30a41214220f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:54:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:54:56 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: cleanup xfs_file_aio_write\n  xfs: always return with the iolock held from xfs_file_aio_write_checks\n  xfs: remove the i_new_size field in struct xfs_inode\n  xfs: remove the i_size field in struct xfs_inode\n  xfs: replace i_pin_wait with a bit waitqueue\n  xfs: replace i_flock with a sleeping bitlock\n  xfs: make i_flags an unsigned long\n  xfs: remove the if_ext_max field in struct xfs_ifork\n  xfs: remove the unused dm_attrs structure\n  xfs: cleanup xfs_iomap_eof_align_last_fsb\n  xfs: remove xfs_itruncate_data\n"
    },
    {
      "commit": "d65773b22b749252b2805dcf96bdeb951a9481d8",
      "tree": "1839656e894933267e7466e32ba6ad73b24fa60a",
      "parents": [
        "f9156c7288e2d11501ded4d7fe6d9a3a41ee4057",
        "f84a8bd60e3ee49eacc9ba824babf149ba3dad7e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:52:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:52:51 2012 -0800"
      },
      "message": "Merge branch \u0027btrfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027btrfs\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  btrfs: take allocation of -\u003etree_root into open_ctree()\n  btrfs: let -\u003es_fs_info point to fs_info, not root...\n  btrfs: consolidate failure exits in btrfs_mount() a bit\n  btrfs: make free_fs_info() call -\u003ekill_sb() unconditional\n  btrfs: merge free_fs_info() calls on fill_super failures\n  btrfs: kill pointless reassignment of -\u003es_fs_info in btrfs_fill_super()\n  btrfs: make open_ctree() return int\n  btrfs: sanitizing -\u003efs_info, part 5\n  btrfs: sanitizing -\u003efs_info, part 4\n  btrfs: sanitizing -\u003efs_info, part 3\n  btrfs: sanitizing -\u003efs_info, part 2\n  btrfs: sanitizing -\u003efs_info, part 1\n  btrfs: fix a deadlock in btrfs_scan_one_device()\n  btrfs: fix mount/umount race\n  btrfs: get -\u003ekill_sb() of its own\n  btrfs: preparation to fixing mount/umount race\n"
    },
    {
      "commit": "f9156c7288e2d11501ded4d7fe6d9a3a41ee4057",
      "tree": "7bd26fc9a111c6af1601ecd2d1b0ab60da32f3f0",
      "parents": [
        "67175b855bfd6ed95ffeff95532173c07de6432d",
        "96bdc7dc61fb1b1e8e858dafb13abee8482ba064"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:49:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:49:54 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (62 commits)\n  Btrfs: use larger system chunks\n  Btrfs: add a delalloc mutex to inodes for delalloc reservations\n  Btrfs: space leak tracepoints\n  Btrfs: protect orphan block rsv with spin_lock\n  Btrfs: add allocator tracepoints\n  Btrfs: don\u0027t call btrfs_throttle in file write\n  Btrfs: release space on error in page_mkwrite\n  Btrfs: fix btrfsck error 400 when truncating a compressed\n  Btrfs: do not use btrfs_end_transaction_throttle everywhere\n  Btrfs: add balance progress reporting\n  Btrfs: allow for resuming restriper after it was paused\n  Btrfs: allow for canceling restriper\n  Btrfs: allow for pausing restriper\n  Btrfs: add skip_balance mount option\n  Btrfs: recover balance on mount\n  Btrfs: save balance parameters to disk\n  Btrfs: soft profile changing mode (aka soft convert)\n  Btrfs: implement online profile changing\n  Btrfs: do not reduce profile in do_chunk_alloc()\n  Btrfs: virtual address space subset filter\n  ...\n\nFix up trivial conflict in fs/btrfs/ioctl.c due to the use of the new\nmnt_drop_write_file() helper.\n"
    },
    {
      "commit": "e268337dfe26dfc7efd422a804dbb27977a3cccc",
      "tree": "59b9e22b0de119f0d85f329fa481d965cf7aec42",
      "parents": [
        "5e5997849a8eae7a895a88699a1999b637f87303"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:21:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 17 15:21:19 2012 -0800"
      },
      "message": "proc: clean up and fix /proc/\u003cpid\u003e/mem handling\n\nJüri Aedla reported that the /proc/\u003cpid\u003e/mem handling really isn\u0027t very\nrobust, and it also doesn\u0027t match the permission checking of any of the\nother related files.\n\nThis changes it to do the permission checks at open time, and instead of\ntracking the process, it tracks the VM at the time of the open.  That\nsimplifies the code a lot, but does mean that if you hold the file\ndescriptor open over an execve(), you\u0027ll continue to read from the _old_\nVM.\n\nThat is different from our previous behavior, but much simpler.  If\nsomebody actually finds a load where this matters, we\u0027ll need to revert\nthis commit.\n\nI suspect that nobody will ever notice - because the process mapping\naddresses will also have changed as part of the execve.  So you cannot\nactually usefully access the fd across a VM change simply because all\nthe offsets for IO would have changed too.\n\nReported-by: Jüri Aedla \u003casd@ut.ee\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "424a5334a5235c2fbb80090b18a065eeceb51d64",
      "tree": "2b46dd90d5950c994975ede7d0fdcb51ae814625",
      "parents": [
        "e1616300a20c80396109c1cf013ba9a36055a3da"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 12 12:41:36 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:39:47 2012 -0500"
      },
      "message": "vfs: remove printk from set_nlink()\n\nDon\u0027t log a message for set_nlink(0).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1616300a20c80396109c1cf013ba9a36055a3da",
      "tree": "97d4bcef12fddf1dc1cdfd22bf226eb36850c6e6",
      "parents": [
        "c2bc3a316a7281f67e36b34dac2802cbe36a9128"
      ],
      "author": {
        "name": "Kazuya Mio",
        "email": "k-mio@sx.jp.nec.com",
        "time": "Thu Dec 01 16:51:07 2011 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:38:47 2012 -0500"
      },
      "message": "wake up s_wait_unfrozen when -\u003efreeze_fs fails\n\ndd slept infinitely when fsfeeze failed because of EIO.\nTo fix this problem, if -\u003efreeze_fs fails, freeze_super() wakes up\nthe tasks waiting for the filesystem to become unfrozen.\n\nWhen s_frozen isn\u0027t SB_UNFROZEN in __generic_file_aio_write(),\nthe function sleeps until FITHAW ioctl wakes up s_wait_unfrozen.\n\nHowever, if -\u003efreeze_fs fails, s_frozen is set to SB_UNFROZEN and then\nfreeze_super() returns an error number. In this case, FITHAW ioctl returns\nEINVAL because s_frozen is already SB_UNFROZEN. There is no way to wake up\ns_wait_unfrozen, so __generic_file_aio_write() sleeps infinitely.\n\nSigned-off-by: Kazuya Mio \u003ck-mio@sx.jp.nec.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4043cde8ecf7f7d880eb1133c201a3d392fd68c3",
      "tree": "d740c60e6b56565a7e996c3d0308e66f7c8651f8",
      "parents": [
        "633b45454503489209b0d9a45f9e3cd1b852c614"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:08 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:01 2012 -0500"
      },
      "message": "audit: do not call audit_getname on error\n\nJust a code cleanup really.  We don\u0027t need to make a function call just for\nit to return on error.  This also makes the VFS function even easier to follow\nand removes a conditional on a hot path.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "633b45454503489209b0d9a45f9e3cd1b852c614",
      "tree": "591363d3be6b773f872b979727d4ac1a9691ec82",
      "parents": [
        "0a300be6d5be8f66cd96609334710c268d0bfdce"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:08 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:00 2012 -0500"
      },
      "message": "audit: only allow tasks to set their loginuid if it is -1\n\nAt the moment we allow tasks to set their loginuid if they have\nCAP_AUDIT_CONTROL.  In reality we want tasks to set the loginuid when they\nlog in and it be impossible to ever reset.  We had to make it mutable even\nafter it was once set (with the CAP) because on update and admin might have\nto restart sshd.  Now sshd would get his loginuid and the next user which\nlogged in using ssh would not be able to set his loginuid.\n\nSystemd has changed how userspace works and allowed us to make the kernel\nwork the way it should.  With systemd users (even admins) are not supposed\nto restart services directly.  The system will restart the service for\nthem.  Thus since systemd is going to loginuid\u003d\u003d-1, sshd would get -1, and\nsshd would be allowed to set a new loginuid without special permissions.\n\nIf an admin in this system were to manually start an sshd he is inserting\nhimself into the system chain of trust and thus, logically, it\u0027s his\nloginuid that should be used!  Since we have old systems I make this a\nKconfig option.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "0a300be6d5be8f66cd96609334710c268d0bfdce",
      "tree": "253d0d1e0aa28a6bdf883bb92e4b62fafe263563",
      "parents": [
        "54d3218b31aee5bc9c859ae60fbde933d922448b"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 03 14:23:08 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 17 16:17:00 2012 -0500"
      },
      "message": "audit: remove task argument to audit_set_loginuid\n\nThe function always deals with current.  Don\u0027t expose an option\npretending one can use it for something.  You can\u0027t.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "d060646436233912178e6b9e3a7f30a41214220f",
      "tree": "a460c8e2d89cdcf08d574f497c421decf36fe018",
      "parents": [
        "5bf1f26227a59b9634e95eb3c7c012b766e5e6a0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:14 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:12:33 2012 -0600"
      },
      "message": "xfs: cleanup xfs_file_aio_write\n\nWith all the size field updates out of the way xfs_file_aio_write can\nbe further simplified by pushing all iolock handling into\nxfs_file_dio_aio_write and xfs_file_buffered_aio_write and using\nthe generic generic_write_sync helper for synchronous writes.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "5bf1f26227a59b9634e95eb3c7c012b766e5e6a0",
      "tree": "940a58e03256bd70787d1341c90027ef334f5fac",
      "parents": [
        "2813d682e8e6a278f94817429afd46b30875bb6e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:13 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:11:07 2012 -0600"
      },
      "message": "xfs: always return with the iolock held from xfs_file_aio_write_checks\n\nWhile xfs_iunlock is fine with 0 lockflags the calling conventions are much\ncleaner if xfs_file_aio_write_checks never returns without the iolock held.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "2813d682e8e6a278f94817429afd46b30875bb6e",
      "tree": "d865b04ec89076b692a922b7f5fced9be0458f47",
      "parents": [
        "ce7ae151ddada3dbf67301464343c154903166b3"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:12 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:10:19 2012 -0600"
      },
      "message": "xfs: remove the i_new_size field in struct xfs_inode\n\nNow that we use the VFS i_size field throughout XFS there is no need for the\ni_new_size field any more given that the VFS i_size field gets updated\nin -\u003ewrite_end before unlocking the page, and thus is always uptodate when\nwriteback could see a page.  Removing i_new_size also has the advantage that\nwe will never have to trim back di_size during a failed buffered write,\ngiven that it never gets updated past i_size.\n\nNote that currently the generic direct I/O code only updates i_size after\ncalling our end_io handler, which requires a small workaround to make\nsure di_size actually makes it to disk.  I hope to fix this properly in\nthe generic code.\n\nA downside is that we lose the support for parallel non-overlapping O_DIRECT\nappending writes that recently was added.  I don\u0027t think keeping the complex\nand fragile i_new_size infrastructure for this is a good tradeoff - if we\nreally care about parallel appending writers we should investigate turning\nthe iolock into a range lock, which would also allow for parallel\nnon-overlapping buffered writers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "ce7ae151ddada3dbf67301464343c154903166b3",
      "tree": "db56a153e7ae07aa5103d001a7d7252dc0891c7e",
      "parents": [
        "f392e6319a4e9a028b0c8b48f000bb01d660ad53"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:11 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:08:53 2012 -0600"
      },
      "message": "xfs: remove the i_size field in struct xfs_inode\n\nThere is no fundamental need to keep an in-memory inode size copy in the XFS\ninode.  We already have the on-disk value in the dinode, and the separate\nin-memory copy that we need for regular files only in the XFS inode.\n\nRemove the xfs_inode i_size field and change the XFS_ISIZE macro to use the\nVFS inode i_size field for regular files.  Switch code that was directly\naccessing the i_size field in the xfs_inode to XFS_ISIZE, or in cases where\nwe are limited to regular files direct access of the VFS inode i_size field.\n\nThis also allows dropping some fairly complicated code in the write path\nwhich dealt with keeping the xfs_inode i_size uptodate with the VFS i_size\nthat is getting updated inside -\u003ewrite_end.\n\nNote that we do not bother resetting the VFS i_size when truncating a file\nthat gets freed to zero as there is no point in doing so because the VFS inode\nis no longer in use at this point.  Just relax the assert in xfs_ifree to\nonly check the on-disk size instead.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "f392e6319a4e9a028b0c8b48f000bb01d660ad53",
      "tree": "6cf97bebb841da303056b60da087e76cc087af9b",
      "parents": [
        "474fce067521a40dbacc722e8ba119e81c2d31bf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:10 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:07:54 2012 -0600"
      },
      "message": "xfs: replace i_pin_wait with a bit waitqueue\n\nReplace i_pin_wait, which is only used during synchronous inode flushing\nwith a bit waitqueue.  This trades off a much smaller inode against\nslightly slower wakeup performance, and saves 12 (32-bit) or 20 (64-bit)\nbytes in the XFS inode.\n\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "474fce067521a40dbacc722e8ba119e81c2d31bf",
      "tree": "fd923aa42a5304182e8a8c64ca5d130f9afef286",
      "parents": [
        "49e4c70e52a2bc2090e5a4e003e2888af21d6a2b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:09 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:06:45 2012 -0600"
      },
      "message": "xfs: replace i_flock with a sleeping bitlock\n\nWe almost never block on i_flock, the exception is synchronous inode\nflushing.  Instead of bloating the inode with a 16/24-byte completion\nthat we abuse as a semaphore just implement it as a bitlock that uses\na bit waitqueue for the rare sleeping path.  This primarily is a\ntradeoff between a much smaller inode and a faster non-blocking\npath vs faster wakeups, and we are much better off with the former.\n\nA small downside is that we will lose lockdep checking for i_flock, but\ngiven that it\u0027s always taken inside the ilock that should be acceptable.\n\nNote that for example the inode writeback locking is implemented in a\nvery similar way.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "49e4c70e52a2bc2090e5a4e003e2888af21d6a2b",
      "tree": "9d9ecf18b5a78d187f622a769cc1464150ad7740",
      "parents": [
        "8096b1ebb59b94b3bc6abb6b7d121419e83447ba"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:08 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:03:50 2012 -0600"
      },
      "message": "xfs: make i_flags an unsigned long\n\nTo be used for bit wakeup i_flags needs to be an unsigned long or we\u0027ll\nrun into trouble on big endian systems.  Because of the 1-byte i_update\nfield right after it this actually causes a fairly large size increase\non its own (4 or 8 bytes), but that increase will be more than offset\nby the next two patches.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "8096b1ebb59b94b3bc6abb6b7d121419e83447ba",
      "tree": "3d01d19459cbb973dc8698b7fa44e1bee260303d",
      "parents": [
        "3d2b3129c2c48cf0153e0f2058cf87e4b45ca3ac"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:07 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Tue Jan 17 15:02:28 2012 -0600"
      },
      "message": "xfs: remove the if_ext_max field in struct xfs_ifork\n\nWe spent a lot of effort to maintain this field, but it always equals to the\nfork size divided by the constant size of an extent.  The prime use of it is\nto assert that the two stay in sync.  Just divide the fork size by the extent\nsize in the few places that we actually use it and remove the overhead\nof maintaining it.  Also introduce a few helpers to consolidate the places\nwhere we actually care about the value.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "a12587b00388d1694933252e97abca237bc3a6b8",
      "tree": "56ba7ec24ed84f81ce41fc327c3722ab2fb9f3eb",
      "parents": [
        "adfeb6e9f46ded31b46fe406ad0dd6a9b4e0f7fe",
        "7c5465d6ccd759caa959828e2add5603518dafc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 16 15:08:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 16 15:08:13 2012 -0800"
      },
      "message": "Merge tag \u0027nfs-for-3.3-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nNFS client bugfixes and cleanups for Linux 3.3 (pull 2)\n\n* tag \u0027nfs-for-3.3-2\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs:\n  pnfsblock: alloc short extent before submit bio\n  pnfsblock: remove rpc_call_ops from struct parallel_io\n  pnfsblock: move find lock page logic out of bl_write_pagelist\n  pnfsblock: cleanup bl_mark_sectors_init\n  pnfsblock: limit bio page count\n  pnfsblock: don\u0027t spinlock when freeing block_dev\n  pnfsblock: clean up _add_entry\n  pnfsblock: set read/write tk_status to pnfs_error\n  pnfsblock: acquire im_lock in _preload_range\n  NFS4: fix compile warnings in nfs4proc.c\n  nfs: check for integer overflow in decode_devicenotify_args()\n  NFS: cleanup endian type in decode_ds_addr()\n  NFS: add an endian notation\n"
    },
    {
      "commit": "96bdc7dc61fb1b1e8e858dafb13abee8482ba064",
      "tree": "eddbfc7a931c7063ded4505c99d11d1702117064",
      "parents": [
        "f248679e86fead40cc78e724c7181d6bec1a2046"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 08:13:11 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:38:24 2012 -0500"
      },
      "message": "Btrfs: use larger system chunks\n\nsystem chunks by default are very small.  This makes them slightly\nlarger and also fixes the conditional checks to make sure we don\u0027t\nallocate a billion of them at once.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f248679e86fead40cc78e724c7181d6bec1a2046",
      "tree": "88abeee0b2a87c0f0377509525c92d3c9ec15a15",
      "parents": [
        "8c2a3ca20f6233677ac3222c6506174010eb414f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jan 13 12:09:22 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:43 2012 -0500"
      },
      "message": "Btrfs: add a delalloc mutex to inodes for delalloc reservations\n\nI was using i_mutex for this, but we\u0027re getting bogus lockdep warnings by doing\nthat and theres no real way to get rid of those, so just stop using i_mutex to\nprotect delalloc metadata reservations and use a delalloc mutex instead.  This\nshouldn\u0027t be contended often at all, only if you are writing and mmap writing to\nthe file at the same time.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "8c2a3ca20f6233677ac3222c6506174010eb414f",
      "tree": "88d1105c665d355b363929557ed0c5489795e348",
      "parents": [
        "90290e19820e3323ce6b9c2888eeb68bf29c278b"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue Jan 10 10:31:31 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:43 2012 -0500"
      },
      "message": "Btrfs: space leak tracepoints\n\nThis in addition to a script in my btrfs-tracing tree will help track down space\nleaks when we\u0027re getting space left over in block groups on umount.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "90290e19820e3323ce6b9c2888eeb68bf29c278b",
      "tree": "cdac13a9718d326cdcd9f4b215a5739906a2325a",
      "parents": [
        "3f7de037fb3727b20bc27332cdcf2488b702394c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Dec 02 15:44:12 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:42 2012 -0500"
      },
      "message": "Btrfs: protect orphan block rsv with spin_lock\n\nWe\u0027ve been seeing warnings coming out of the orphan commit stuff forever from\nceph.  Turns out it\u0027s because we\u0027re racing with checking if the orphan block\nreserve is set, because we clear it outside of the spin_lock.  So leave the\nnormal fastpath checks where they are, but take the spin_lock and _recheck_ to\nmake sure we haven\u0027t had an orphan block rsv added in the meantime.  Then clear\nthe root\u0027s orphan block rsv and release the lock.  With this patch a user said\nthe warnings went away and they usually showed up pretty soon after he started\nceph.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "3f7de037fb3727b20bc27332cdcf2488b702394c",
      "tree": "7e355b7e60b584ca7aaaf7c8abfa1f2408c15ff2",
      "parents": [
        "45a8090e626ab470c91142954431a93846030b0d"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Nov 10 08:29:20 2011 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:29:42 2012 -0500"
      },
      "message": "Btrfs: add allocator tracepoints\n\nI used these tracepoints when figuring out what the cluster stuff was doing, so\nadd them to mainline in case we need to profile this stuff again.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "45a8090e626ab470c91142954431a93846030b0d",
      "tree": "2a13259734f99cbc8f176ed395a2d1f35e36ad27",
      "parents": [
        "ec39e180fd3188c983c94603634bfcd019f42ae7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:55 2012 -0500"
      },
      "message": "Btrfs: don\u0027t call btrfs_throttle in file write\n\nBtrfs_throttle will make us wait if there is a currently committing transaction\nuntil we can open new transactions, which is ridiculous since we don\u0027t actually\nstart any transactions within the file write path anyway, so all this does is\nintroduce big latencies if we have a sync/fsync heavy workload going on while\nsomebody else is trying to do work.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ec39e180fd3188c983c94603634bfcd019f42ae7",
      "tree": "baf6a56fb98735cc533b6a5bb9c29a364a6c0cf3",
      "parents": [
        "f70a9a6b94af86fca069a7552ab672c31b457786"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:54 2012 -0500"
      },
      "message": "Btrfs: release space on error in page_mkwrite\n\nIf updating the inode gave us an ENOSPC we were just returning in page_mkwrite,\nwhich is a problem since we make our reservation right before trying to update\nthe inode, so fix the out label so that we actually free our reservation.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f70a9a6b94af86fca069a7552ab672c31b457786",
      "tree": "0a62930b2540e11b877a1ead4050c55638bbd874",
      "parents": [
        "7ad85bb76a61801362701b77c5cee5aa09f35369"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:54 2012 -0500"
      },
      "message": "Btrfs: fix btrfsck error 400 when truncating a compressed\n\nReproduce steps:\n # mkfs.btrfs /dev/sdb5\n # mount /dev/sdb5 -o compress\u003dlzo /mnt\n # dd if\u003d/dev/zero of\u003d/mnt/tmpfile bs\u003d128K count\u003d1\n # sync\n # truncate -s 64K /mnt/tmpfile\n root 5 inode 257 errors 400\n\nThis is because of the wrong if condition, which is used to check if we should\nsubtract the bytes of the dropped range from i_blocks/i_bytes of i-node or not.\nWhen we truncate a compressed extent, btrfs substracts the bytes of the whole\nextent, it\u0027s wrong. We should substract the real size that we truncate, no\nmatter it is a compressed extent or not. Fix it.\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7ad85bb76a61801362701b77c5cee5aa09f35369",
      "tree": "e03f4ced4f7c84e9828e4f4a4cbe894369300800",
      "parents": [
        "c126dea771be1b3c370c0ffc4a09e6a82d492a49"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Thu Jan 12 19:10:12 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:28:54 2012 -0500"
      },
      "message": "Btrfs: do not use btrfs_end_transaction_throttle everywhere\n\nA user reported a problem where things like open with O_CREAT would take up to\n30 seconds when he had nfs activity on the same mount.  This is because all of\nour quick metadata operations, like create, symlink etc all do\nbtrfs_end_transaction_throttle, which if the transaction is blocked will wait\nfor the commit to complete before it returns.  This adds a ridiculous amount of\nlatency and isn\u0027t really needed.  The normal btrfs_end_transaction will mark the\ntransaction as blocked and wake the transaction kthread up if it thinks the\ntransaction needs to end (this being in the running out of global reserve space\nscenario), and this is all that is really needed since we\u0027ve already done\neverything we\u0027re going to do, we just need to return.  This should help people\nwith the latency they were seeing when using synchronous heavy workloads.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c126dea771be1b3c370c0ffc4a09e6a82d492a49",
      "tree": "99fc723ba2e89d767e260244cf8d19467bc68c8b",
      "parents": [
        "9785dbdf265ddc47d5c88267d89a97648c0dc14b",
        "21adbd5cbb5344a3fca6bb7ddb2ab6cb03c44546"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:27:58 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:27:58 2012 -0500"
      },
      "message": "Merge branch \u0027integrity-check-patch-v2\u0027 of git://btrfs.giantdisaster.de/git/btrfs into integration\n\nConflicts:\n\tfs/btrfs/ctree.h\n\tfs/btrfs/super.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9785dbdf265ddc47d5c88267d89a97648c0dc14b",
      "tree": "3a97a48d6f282f9e06c5446beeb886fcd86c4798",
      "parents": [
        "d756bd2d9339447c29bde950910586df8f8941ec",
        "6bf7e080d5bcb0d399ee38ce3dabbfad64448192"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:31 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:31 2012 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://git.jan-o-sch.net/btrfs-unstable into integration\n"
    },
    {
      "commit": "d756bd2d9339447c29bde950910586df8f8941ec",
      "tree": "f96aeb682bcc4fdcf75d080f260c809b9fbc4a1a",
      "parents": [
        "27263e28321db438bc43dc0c0be432ce91526224",
        "b367e47fb3a70f5d24ebd6faf7d42436d485fb2d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:17 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:17 2012 -0500"
      },
      "message": "Merge branch \u0027for-chris\u0027 of git://repo.or.cz/linux-btrfs-devel into integration\n\nConflicts:\n\tfs/btrfs/volumes.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "27263e28321db438bc43dc0c0be432ce91526224",
      "tree": "b7571dd52d6c1d48528e383d273b330da94439bd",
      "parents": [
        "64e05503ab5c73b2ffb8d55d2f7aab74f34fc691",
        "19a39dce3b9bf0244d19a446718ad6f7605ff099"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:02 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:26:02 2012 -0500"
      },
      "message": "Merge branch \u0027restriper\u0027 of git://github.com/idryomov/btrfs-unstable into integration\n"
    },
    {
      "commit": "64e05503ab5c73b2ffb8d55d2f7aab74f34fc691",
      "tree": "a754d3790b8dd59ecaed54095c6e09e04f0d1dd2",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
        "1bb91902dc90e25449893e693ad45605cb08fbe5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:25:42 2012 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 16 15:25:42 2012 -0500"
      },
      "message": "Merge branch \u0027allocation-fixes\u0027 into integration\n"
    },
    {
      "commit": "19a39dce3b9bf0244d19a446718ad6f7605ff099",
      "tree": "4834e177b8b64405aa858bfdcfbabd890277102b",
      "parents": [
        "de322263d3a6d4ffd4ed7c4d0c6536e9497aec9b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: add balance progress reporting\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "de322263d3a6d4ffd4ed7c4d0c6536e9497aec9b",
      "tree": "26761c92c8d135aa62702562bae3337ccad9f74d",
      "parents": [
        "a7e99c691af553fc15ac46a51f130b7c59a65f76"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for resuming restriper after it was paused\n\nRecognize BTRFS_BALANCE_RESUME flag passed from userspace.  We use the\nsame heuristics used when recovering balance after a crash to try to\nstart where we left off last time.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a7e99c691af553fc15ac46a51f130b7c59a65f76",
      "tree": "55491f285683951d509819a66e614ac6f12659dd",
      "parents": [
        "837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for canceling restriper\n\nImplement an ioctl for canceling restriper.  Currently we wait until\nrelocation of the current block group is finished, in future this can be\ndone by triggering a commit.  Balance item is deleted and no memory\nabout the interrupted balance is kept.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "837d5b6e46d1a4af5b6cc8f2fe83cb5de79a2961",
      "tree": "4ef87d05240e90480749c345274a83094caf66f0",
      "parents": [
        "9555c6c180600b40f6e86bd4dc53bf47e06ed663"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:49 2012 +0200"
      },
      "message": "Btrfs: allow for pausing restriper\n\nImplement an ioctl for pausing restriper.  This pauses the relocation,\nbut balance is still considered to be \"in progress\": balance item is\nnot deleted, other volume operations cannot be started, etc.  If paused\nin the middle of profile changing operation we will continue making\nallocations with the target profile.\n\nAdd a hook to close_ctree() to pause restriper and free its data\nstructures on unmount.  (It\u0027s safe to unmount when restriper is in\n\"paused\" state, we will resume with the same parameters on the next\nmount)\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "9555c6c180600b40f6e86bd4dc53bf47e06ed663",
      "tree": "74f95edee2368e183a2a054c24725d2940632a8f",
      "parents": [
        "596410151ed71819b9e8a8018c6c9992796b256d"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: add skip_balance mount option\n\nSince restriper kthread starts involuntarily on mount and can suck cpu\nand memory bandwidth add a mount option to forcefully skip it.  The\nrestriper in that case hangs around in paused state and can be resumed\nfrom userspace when it\u0027s convenient.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "596410151ed71819b9e8a8018c6c9992796b256d",
      "tree": "ff697d01a6dd8cf50b37b3855e40764335be044d",
      "parents": [
        "0940ebf6b92ea10a6f30ae5ac3993a3b75745da6"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: recover balance on mount\n\nOn mount, if balance item is found, resume balance in a separate\nkernel thread.\n\nTry to be smart to continue roughly where previous balance (or convert)\nwas interrupted.  For chunk types that were being converted to some\nprofile we turn on soft convert, in case of a simple balance we turn on\nusage filter and relocate only less-than-90%-full chunks of that type.\nThese are just heuristics but they help quite a bit, and can be improved\nin future.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "0940ebf6b92ea10a6f30ae5ac3993a3b75745da6",
      "tree": "30942cd4eaa259951b549abf7c5c972abc8ab289",
      "parents": [
        "cfa4c961cc69ffb7bda450972320a25cbd413e19"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: save balance parameters to disk\n\nIntroduce a new btree objectid for storing balance item.  The reason is\nto be able to resume restriper after a crash with the same parameters.\nBalance item has a very high objectid and goes into tree of tree roots.\n\nThe key for the new item is as follows:\n\n\t[ BTRFS_BALANCE_OBJECTID ; BTRFS_BALANCE_ITEM_KEY ; 0 ]\n\nOlder kernels simply ignore it so it\u0027s safe to mount with an older\nkernel and then go back to the newer one.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "cfa4c961cc69ffb7bda450972320a25cbd413e19",
      "tree": "68ed15b8303d8aa7385df5383aebbef47debea4f",
      "parents": [
        "e4d8ec0f65b91bfb4984a4927632ded95f9825ad"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: soft profile changing mode (aka soft convert)\n\nWhen doing convert from one profile to another if soft mode is on\nrestriper won\u0027t touch chunks that already have the profile we are\nconverting to.  This is useful if e.g. half of the FS was converted\nearlier.\n\nThe soft mode switch is (like every other filter) per-type.  This means\nthat we can convert for example meta chunks the \"hard\" way while\nconverting data chunks selectively with soft switch.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "e4d8ec0f65b91bfb4984a4927632ded95f9825ad",
      "tree": "4727c977803093ec5cdf93da4fcab34cc8de8ecf",
      "parents": [
        "70922617b0099f420deceb53d5dc7f4fb30d08d0"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: implement online profile changing\n\nProfile changing is done by launching a balance with\nBTRFS_BALANCE_CONVERT bits set and target fields of respective\nbtrfs_balance_args structs initialized.  Profile reducing code in this\ncase will pick restriper\u0027s target profile if it\u0027s available instead of\ndoing a blind reduce.  If target profile is not yet available it goes\nback to a plain reduce.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "70922617b0099f420deceb53d5dc7f4fb30d08d0",
      "tree": "6353dff7355863b92b48001e76c3f00bf180916b",
      "parents": [
        "ea67176ae8c024f64d85ec33873e5eadf1af7247"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: do not reduce profile in do_chunk_alloc()\n\nEvery caller of do_chunk_alloc() feeds it the reduced allocation\nprofile, so stop trying to reduce it one more time.  Instead check the\nvalidity of the passed profile.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "ea67176ae8c024f64d85ec33873e5eadf1af7247",
      "tree": "d3674d6a4807074dbaadfdd260e2aaa3011eab5e",
      "parents": [
        "94e60d5a5c4b98a32b1077dec88df09ada712376"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: virtual address space subset filter\n\nSelect chunks which have at least one byte located inside a given\n[vstart, vend) virtual address space range.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "94e60d5a5c4b98a32b1077dec88df09ada712376",
      "tree": "149b9c9f68b64c7aa6e4b07bf12940a6e27591ca",
      "parents": [
        "409d404b461afa9738619f249fd7f62a366b68c2"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:48 2012 +0200"
      },
      "message": "Btrfs: devid subset filter\n\nSelect chunks which have at least one byte of at least one stripe\nlocated on a device with devid X in a given [pstart,pend) physical\naddress range.\n\nThis filter only works when devid filter is turned on.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "409d404b461afa9738619f249fd7f62a366b68c2",
      "tree": "38092a3be26e6bcedc5202c04c5915e12b1d64a8",
      "parents": [
        "5ce5b3c0916ba3a2e34cf648b94044adc5ef9e76"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: devid filter\n\nRelocate chunks which have at least one stripe located on a device with\ndevid X.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "5ce5b3c0916ba3a2e34cf648b94044adc5ef9e76",
      "tree": "0cfbc8eeea18b9491275c59b8a7eed1471a2abd3",
      "parents": [
        "ed25e9b26f898d8d63ae4a836489f1923534143b"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: usage filter\n\nSelect chunks that are less than X percent full.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "ed25e9b26f898d8d63ae4a836489f1923534143b",
      "tree": "89ee253d15ef46b430de0435c068b66267ce829b",
      "parents": [
        "f43ffb60fd94e98be02780944e182ade6653b916"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: profiles filter\n\nSelect chunks based on a given profile mask.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "f43ffb60fd94e98be02780944e182ade6653b916",
      "tree": "50cab47a03c223d0641d8fe62805e71f5cffef1a",
      "parents": [
        "c9e9f97bdfb64d06e9520f8e4f37674ac21cc9bc"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add basic infrastructure for selective balancing\n\nThis allows to have a separate set of filters for each chunk type\n(data,meta,sys).  The code however is generic and switch on chunk type\nis only done once.\n\nThis commit also adds a type filter: it allows to balance for example\nmeta and system chunks w/o touching data ones.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "c9e9f97bdfb64d06e9520f8e4f37674ac21cc9bc",
      "tree": "22d695a7a461068c773b327e5c89a045ade5d8a3",
      "parents": [
        "10ea00f55a07f8f9536d9112b95108a86f700bab"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add basic restriper infrastructure\n\nAdd basic restriper infrastructure: extended balancing ioctl and all\nrelated ioctl data structures, add data structure for tracking\nrestriper\u0027s state to fs_info, etc.  The semantics of the old balancing\nioctl are fully preserved.\n\nExplicitly disallow any volume operations when balance is in progress.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "10ea00f55a07f8f9536d9112b95108a86f700bab",
      "tree": "83887f41d8a876d919f74f83cda26eb18b10deca",
      "parents": [
        "a46d11a8b06dd0431a3888fbc4856ea13a8e634f"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: make avail_*_alloc_bits fields dynamic\n\nCurrently when new chunks are created respective avail_alloc_bits field\nis updated to reflect profiles of all chunks present in the system.\nHowever when chunks are removed profile bits are never cleared.\n\nThis patch clears profile bit of respective avail_alloc_bits field when\nthe last chunk with that profile is removed.  Restriper needs this to\nproperly operate when \"downgrading\".\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "a46d11a8b06dd0431a3888fbc4856ea13a8e634f",
      "tree": "2aebc4d3ef2318a08cb067bb4a597a51e2455a65",
      "parents": [
        "52ba692972532f8d652080214b6599ece3dd51b9"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: add BTRFS_AVAIL_ALLOC_BIT_SINGLE bit\n\nRight now on-disk BTRFS_BLOCK_GROUP_* profile bits are used for\navail_{data,metadata,system}_alloc_bits fields, which gather info about\navailable allocation profiles in the FS.  When chunk is created or read\nfrom disk, its profile is OR\u0027ed with the corresponding avail_alloc_bits\nfield.  Since SINGLE is denoted by 0 in the on-disk format, currently\nthere is no way to tell when such chunks become avaialble.  Restriper\nneeds that information, so add a separate bit for SINGLE profile.\n\nThis bit is going to be in-memory only, it should never be written out\nto disk, so it\u0027s not a disk format change.  However to avoid remappings\nin future, reserve corresponding on-disk bit.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "52ba692972532f8d652080214b6599ece3dd51b9",
      "tree": "d4c60bad0a7813d964988c7c40aeceadfb54cc1d",
      "parents": [
        "6fef8df1dcb9b586268caff66df1d71ce8610132"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: introduce masks for chunk type and profile\n\nChunk\u0027s type and profile are encoded in u64 flags field.  Introduce\nmasks to easily access them.  Also fix the type of BTRFS_BLOCK_GROUP_*\nconstants, it should be ULL.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "6fef8df1dcb9b586268caff66df1d71ce8610132",
      "tree": "03488bc99771dda6354a3cb3113bee96f55aac47",
      "parents": [
        "08c422c27f855d27b0b3d9fa30ebd938d4ae6f1f"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "committer": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Mon Jan 16 22:04:47 2012 +0200"
      },
      "message": "Btrfs: get rid of *_alloc_profile fields\n\n{data,metadata,system}_alloc_profile fields have been unused for a long\ntime now.  Get rid of them.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\n"
    },
    {
      "commit": "f7e6746ebae984ea67b0a1a1e23c7e6698240631",
      "tree": "b77704a47d3b00ed3cd39226c51b7a8ba7f92710",
      "parents": [
        "bced76aeaca03b45e3b4bdb868cada328e497847"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Jan 14 00:01:01 2012 +0000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jan 16 08:13:27 2012 +0100"
      },
      "message": "sched/accounting, proc: Fix /proc/stat interrupts sum\n\nCommit 3292beb340c7688 (\"sched/accounting: Change cpustat fields to an array\")\ndeleted the code which provides us with the sum of all interrupts in the\nsystem, causing vmstat to report zero interrupts occuring in the system.\n\nFix this by restoring the code.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nTested-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e # [on ARM]\nTested-by: Tony Luck \u003ctony.luck@intel.com\u003e\nTested-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Paul Tuner \u003cpjt@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "122804ecb59493fbb4d31b3ba9ac59faaf45276f",
      "tree": "cff4d8a158c412e4a8d3abc8d91bb0eb52b01c9a",
      "parents": [
        "16008d641670571ff4cd750b416c7caf2d89f467",
        "126400033940afb658123517a2e80eb68259fbd7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:49:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:49:56 2012 -0800"
      },
      "message": "Merge branch \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media\n\n* \u0027v4l_for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (655 commits)\n  [media] revert patch: HDIC HD29L2 DMB-TH USB2.0 reference design driver\n  mb86a20s: Add a few more register settings at the init seq\n  mb86a20s: Group registers into the same line\n  [media] [PATCH] don\u0027t reset the delivery system on DTV_CLEAR\n  [media] [BUG] it913x-fe fix typo error making SNR levels unstable\n  [media] cx23885: Query the CX25840 during enum_input for status\n  [media] cx25840: Add support for g_input_status\n  [media] rc-videomate-m1f.c Rename to match remote controler name\n  [media] drivers: media: au0828: Fix dependency for VIDEO_AU0828\n  [media] convert drivers/media/* to use module_platform_driver()\n  [media] drivers: video: cx231xx: Fix dependency for VIDEO_CX231XX_DVB\n  [media] Exynos4 JPEG codec v4l2 driver\n  [media] doc: v4l: selection: choose pixels as units for selection rectangles\n  [media] v4l: s5p-tv: mixer: fix setup of VP scaling\n  [media] v4l: s5p-tv: mixer: add support for selection API\n  [media] v4l: emulate old crop API using extended crop/compose API\n  [media] doc: v4l: add documentation for selection API\n  [media] doc: v4l: add binary images for selection API\n  [media] v4l: add support for selection api\n  [media] hd29l2: fix review findings\n  ...\n"
    },
    {
      "commit": "b3c9dd182ed3bdcdaf0e42625a35924b0497afdc",
      "tree": "ad48ad4d923fee147c736318d0fad35b3755f4f5",
      "parents": [
        "83c2f912b43c3a7babbb6cb7ae2a5276c1ed2a3e",
        "5d381efb3d1f1ef10535a31ca0dd9b22fe1e1922"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:24:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 12:24:45 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3/core\u0027 of git://git.kernel.dk/linux-block\n\n* \u0027for-3.3/core\u0027 of git://git.kernel.dk/linux-block: (37 commits)\n  Revert \"block: recursive merge requests\"\n  block: Stop using macro stubs for the bio data integrity calls\n  blockdev: convert some macros to static inlines\n  fs: remove unneeded plug in mpage_readpages()\n  block: Add BLKROTATIONAL ioctl\n  block: Introduce blk_set_stacking_limits function\n  block: remove WARN_ON_ONCE() in exit_io_context()\n  block: an exiting task should be allowed to create io_context\n  block: ioc_cgroup_changed() needs to be exported\n  block: recursive merge requests\n  block, cfq: fix empty queue crash caused by request merge\n  block, cfq: move icq creation and rq-\u003eelv.icq association to block core\n  block, cfq: restructure io_cq creation path for io_context interface cleanup\n  block, cfq: move io_cq exit/release to blk-ioc.c\n  block, cfq: move icq cache management to block core\n  block, cfq: move io_cq lookup to blk-ioc.c\n  block, cfq: move cfqd-\u003eicq_list to request_queue and add request-\u003eelv.icq\n  block, cfq: reorganize cfq_io_context into generic and cfq specific parts\n  block: remove elevator_queue-\u003eops\n  block: reorder elevator switch sequence\n  ...\n\nFix up conflicts in:\n - block/blk-cgroup.c\n\tSwitch from can_attach_task to can_attach\n - block/cfq-iosched.c\n\tconflict with now removed cic index changes (we now use q-\u003eid instead)\n"
    },
    {
      "commit": "a520458fccc5f5dd4d0ed63c0602db2fd3172b21",
      "tree": "3bca2be919eac0bfb50bd0623cda6df589260de8",
      "parents": [
        "c49c41a4134679cecb77362e7f6b59acb6320aa7",
        "1f4f43475f1295dc41c18684e59deea9b6d46045"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 11:25:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 11:25:41 2012 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBI: use own macros for the layout volume\n  UBI: fix nameless volumes handling\n  UBIFS: fix non-debug configuration build\n"
    },
    {
      "commit": "e234b5f2079414b3d772286e3ee00e7bbf6da833",
      "tree": "860baa06589f5f11b354500f30f43ff8c2f4cda9",
      "parents": [
        "94b1984ab9ab61cc6047c07e074d766485299a9c"
      ],
      "author": {
        "name": "Dominique Martinet",
        "email": "asmadeus@codewreck.org",
        "time": "Sun Jan 15 00:28:03 2012 +0100"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@linux.intel.com",
        "time": "Sun Jan 15 13:46:02 2012 +0200"
      },
      "message": "UBIFS: fix non-debug configuration build\n\nFix a brown paperbag bug introduced by me in the previous commit. I was\nin hurry and forgot about the non-debug case completely.\n\nArtem: amend the commit message and tweak the patch to preserve alignment.\n       This made the patch a bit less readable, though.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "c49c41a4134679cecb77362e7f6b59acb6320aa7",
      "tree": "45e690c036ca5846a48c8be67945d1d841b2d96d",
      "parents": [
        "892d208bcf79e4e1058707786a7b6d486697cd78",
        "f423e5ba76e7e4a6fcb4836b4f072d1fdebba8b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:36:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:36:33 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://selinuxproject.org/~jmorris/linux-security\n\n* \u0027for-linus\u0027 of git://selinuxproject.org/~jmorris/linux-security:\n  capabilities: remove __cap_full_set definition\n  security: remove the security_netlink_recv hook as it is equivalent to capable()\n  ptrace: do not audit capability check when outputing /proc/pid/stat\n  capabilities: remove task_ns_* functions\n  capabitlies: ns_capable can use the cap helpers rather than lsm call\n  capabilities: style only - move capable below ns_capable\n  capabilites: introduce new has_ns_capabilities_noaudit\n  capabilities: call has_ns_capability from has_capability\n  capabilities: remove all _real_ interfaces\n  capabilities: introduce security_capable_noaudit\n  capabilities: reverse arguments to security_capable\n  capabilities: remove the task from capable LSM hook entirely\n  selinux: sparse fix: fix several warnings in the security server cod\n  selinux: sparse fix: fix warnings in netlink code\n  selinux: sparse fix: eliminate warnings for selinuxfs\n  selinux: sparse fix: declare selinux_disable() in security.h\n  selinux: sparse fix: move selinux_complete_init\n  selinux: sparse fix: make selinux_secmark_refcount static\n  SELinux: Fix RCU deref check warning in sel_netport_insert()\n\nManually fix up a semantic mis-merge wrt security_netlink_recv():\n\n - the interface was removed in commit fd7784615248 (\"security: remove\n   the security_netlink_recv hook as it is equivalent to capable()\")\n\n - a new user of it appeared in commit a38f7907b926 (\"crypto: Add\n   userspace configuration API\")\n\ncausing no automatic merge conflict, but Eric Paris pointed out the\nissue.\n"
    },
    {
      "commit": "fed474857efbed79cd390d0aee224231ca718f63",
      "tree": "8935acfe89c87fe63f72bb114fa17f97f7c26564",
      "parents": [
        "1e6c4dfdeb040b2dd5c4d6d803ab95c3971ad80c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 12 17:59:46 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 18:01:42 2012 -0800"
      },
      "message": "fsnotify: don\u0027t BUG in fsnotify_destroy_mark()\n\nRemoving the parent of a watched file results in \"kernel BUG at\nfs/notify/mark.c:139\".\n\nTo reproduce\n\n  add \"-w /tmp/audit/dir/watched_file\" to audit.rules\n  rm -rf /tmp/audit/dir\n\nThis is caused by fsnotify_destroy_mark() being called without an\nextra reference taken by the caller.\n\nReported by Francesco Cosoleto here:\n\n  https://bugzilla.novell.com/show_bug.cgi?id\u003d689860\n\nFix by removing the BUG_ON and adding a comment about not accessing mark after\nthe iput.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a80939b3e6af4b0dc93bf88ec02fd7e90a16f1b",
      "tree": "a112335f2b2b2a51e90531c6c67e8a3b54dcf0ef",
      "parents": [
        "0b48d42235caf627121f440b57d376f48a9af8b6",
        "72db395ffadb1d33233fd123c2bf87ba0198c6c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:32:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:32:16 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://github.com/rustyrussell/linux\n\nAutogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999  BFCB D920 0E6C D1AD B8F1\n\n* tag \u0027for-linus\u0027 of git://github.com/rustyrussell/linux:\n  module_param: check that bool parameters really are bool.\n  intelfbdrv.c: bailearly is an int module_param\n  paride/pcd: fix bool verbose module parameter.\n  module_param: make bool parameters really bool (drivers \u0026 misc)\n  module_param: make bool parameters really bool (arch)\n  module_param: make bool parameters really bool (core code)\n  kernel/async: remove redundant declaration.\n  printk: fix unnecessary module_param_name.\n  lirc_parallel: fix module parameter description.\n  module_param: avoid bool abuse, add bint for special cases.\n  module_param: check type correctness for module_param_array\n  modpost: use linker section to generate table.\n  modpost: use a table rather than a giant if/else statement.\n  modules: sysfs - export: taint, coresize, initsize\n  kernel/params: replace DEBUGP with pr_debug\n  module: replace DEBUGP with pr_debug\n  module: struct module_ref should contains long fields\n  module: Fix performance regression on modules with large symbol tables\n  module: Add comments describing how the \"strmap\" logic works\n\nFix up conflicts in scripts/mod/file2alias.c due to the new linker-\ngenerated table approach to adding __mod_*_device_table entries.  The\nARM sa11x0 mcp bus needed to be converted to that too.\n"
    },
    {
      "commit": "0b48d42235caf627121f440b57d376f48a9af8b6",
      "tree": "400967c5fcb1cd08bbc0e1739e229f9717590f19",
      "parents": [
        "8e63dd6e1c589ba99a18df9cbaa41c3178607641",
        "7a6ef8c72314f254c107c6a9ed7cb201961ee05a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:26:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 14 12:26:41 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.3\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-3.3\u0027 of git://linux-nfs.org/~bfields/linux: (31 commits)\n  nfsd4: nfsd4_create_clid_dir return value is unused\n  NFSD: Change name of extended attribute containing junction\n  svcrpc: don\u0027t revert to SVC_POOL_DEFAULT on nfsd shutdown\n  svcrpc: fix double-free on shutdown of nfsd after changing pool mode\n  nfsd4: be forgiving in the absence of the recovery directory\n  nfsd4: fix spurious 4.1 post-reboot failures\n  NFSD: forget_delegations should use list_for_each_entry_safe\n  NFSD: Only reinitilize the recall_lru list under the recall lock\n  nfsd4: initialize special stateid\u0027s at compile time\n  NFSd: use network-namespace-aware cache registering routines\n  SUNRPC: create svc_xprt in proper network namespace\n  svcrpc: update outdated BKL comment\n  nfsd41: allow non-reclaim open-by-fh\u0027s in 4.1\n  svcrpc: avoid memory-corruption on pool shutdown\n  svcrpc: destroy server sockets all at once\n  svcrpc: make svc_delete_xprt static\n  nfsd: Fix oops when parsing a 0 length export\n  nfsd4: Use kmemdup rather than duplicating its implementation\n  nfsd4: add a separate (lockowner, inode) lookup\n  nfsd4: fix CONFIG_NFSD_FAULT_INJECTION compile error\n  ...\n"
    },
    {
      "commit": "69e4747ee9727d660b88d7e1efe0f4afcb35db1b",
      "tree": "2dde4642ad0dba19688b664c4397c61cf9ebce25",
      "parents": [
        "a3301b751b19f0efbafddc4034f8e7ce6bf3007b"
      ],
      "author": {
        "name": "Gleb Natapov",
        "email": "gleb@redhat.com",
        "time": "Sun Jan 08 17:07:28 2012 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 20:39:44 2012 -0800"
      },
      "message": "Unused iocbs in a batch should not be accounted as active.\n\nSince commit 080d676de095 (\"aio: allocate kiocbs in batches\") iocbs are\nallocated in a batch during processing of first iocbs.  All iocbs in a\nbatch are automatically added to ctx-\u003eactive_reqs list and accounted in\nctx-\u003ereqs_active.\n\nIf one (not the last one) of iocbs submitted by an user fails, further\niocbs are not processed, but they are still present in ctx-\u003eactive_reqs\nand accounted in ctx-\u003ereqs_active.  This causes process to stuck in a D\nstate in wait_for_all_aios() on exit since ctx-\u003ereqs_active will never\ngo down to zero.  Furthermore since kiocb_batch_free() frees iocb\nwithout removing it from active_reqs list the list become corrupted\nwhich may cause oops.\n\nFix this by removing iocb from ctx-\u003eactive_reqs and updating\nctx-\u003ereqs_active in kiocb_batch_free().\n\nSigned-off-by: Gleb Natapov \u003cgleb@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: stable@kernel.org   # 3.2\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96e80a7851b44f3decaac0625665cd64e550b71d",
      "tree": "a24d9f46c43b5fcf824c49b93d37982ab668aade",
      "parents": [
        "57e6a7dde8cfca9ac1d6702cf9104d22bc11ba90",
        "3d4a1c80c4eb97187b3a61b3bfa8c804327f7a45"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:34:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:34:57 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next:\n  Squashfs: fix i_blocks calculation with extended regular files\n  Squashfs: fix mount time sanity check for corrupted superblock\n  Squashfs: optimise squashfs_cache_get entry search\n  Squashfs: Update documentation to include xattrs\n  Squashfs: add missing block release on error condition\n"
    },
    {
      "commit": "57e6a7dde8cfca9ac1d6702cf9104d22bc11ba90",
      "tree": "e53318e43657531399a8d6c721760015b26aa152",
      "parents": [
        "94b1984ab9ab61cc6047c07e074d766485299a9c",
        "66ad863b410efb7f537719006f9ac52400c1a5c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:33:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:33:39 2012 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:\n  GFS2: Fix nlink setting on inode creation\n  GFS2: fail mount if journal recovery fails\n  GFS2: let spectator mount do read only recovery\n  GFS2: Fix a use-after-free that coverity spotted\n  GFS2: dlm based recovery coordination\n"
    },
    {
      "commit": "94b1984ab9ab61cc6047c07e074d766485299a9c",
      "tree": "4b6cba21caf3d99129bea6a5eba0544b2fe8402a",
      "parents": [
        "1a52bb0b686844021597d190e562ab55d1210104",
        "515315a123af641a9533e4ff0f178c470dc08fc7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:31:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:31:33 2012 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix key printing\n  UBIFS: use snprintf instead of sprintf when printing keys\n  UBIFS: fix debugging messages\n  UBIFS: make debugging messages light again\n  UBI: fix debugging messages\n  UBI: make vid_hdr non-static\n"
    },
    {
      "commit": "1a52bb0b686844021597d190e562ab55d1210104",
      "tree": "7edf13509869a6a7f1f488a679f15ff6c3057c54",
      "parents": [
        "8638094e956a47dbb9a25166705a91e9a0981d52",
        "83eb26af0db71f2dfe551405c55d982288fa6178"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:29:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:29:21 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: ensure prealloc_blob is in place when removing xattr\n  rbd: initialize snap_rwsem in rbd_add()\n  ceph: enable/disable dentry complete flags via mount option\n  vfs: export symbol d_find_any_alias()\n  ceph: always initialize the dentry in open_root_dentry()\n  libceph: remove useless return value for osd_client __send_request()\n  ceph: avoid iput() while holding spinlock in ceph_dir_fsync\n  ceph: avoid useless dget/dput in encode_fh\n  ceph: dereference pointer after checking for NULL\n  crush: fix force for non-root TAKE\n  ceph: remove unnecessary d_fsdata conditional checks\n  ceph: Use kmemdup rather than duplicating its implementation\n\nFix up conflicts in fs/ceph/super.c (d_alloc_root() failure handling vs\nalways initialize the dentry in open_root_dentry)\n"
    },
    {
      "commit": "3d2b3129c2c48cf0153e0f2058cf87e4b45ca3ac",
      "tree": "eb0e3ac276c862280a1161683fc9915ccc999e30",
      "parents": [
        "bf322d983e540f66517db85b6870017613bb1e8d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:06 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jan 13 12:11:46 2012 -0600"
      },
      "message": "xfs: remove the unused dm_attrs structure\n\n.. and the just as dead bhv_desc forward declaration while we\u0027re at it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Alex Elder \u003caelder@sgi.com\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "bf322d983e540f66517db85b6870017613bb1e8d",
      "tree": "f01eb47527c526d3654746db1f2533eae8cfe050",
      "parents": [
        "673e8e597c06eb81954bf21a10f5cce74a1de8f1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:05 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jan 13 12:11:46 2012 -0600"
      },
      "message": "xfs: cleanup xfs_iomap_eof_align_last_fsb\n\nReplace the nasty if, else if, elseif condition with more natural C flow\nthat expressed the logic we want here better.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "673e8e597c06eb81954bf21a10f5cce74a1de8f1",
      "tree": "a6d47b0c44dfe24119de8d4c944f7c5c6e2c30dc",
      "parents": [
        "099469502f62fbe0d7e4f0b83a2f22538367f734"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Sun Dec 18 20:00:04 2011 +0000"
      },
      "committer": {
        "name": "Ben Myers",
        "email": "bpm@sgi.com",
        "time": "Fri Jan 13 12:11:45 2012 -0600"
      },
      "message": "xfs: remove xfs_itruncate_data\n\nThis wrapper isn\u0027t overly useful, not to say rather confusing.\n\nAround the call to xfs_itruncate_extents it does:\n\n - add tracing\n - add a few asserts in debug builds\n - conditionally update the inode size in two places\n - log the inode\n\nBoth the tracing and the inode logging can be moved to xfs_itruncate_extents\nas they are useful for the attribute fork as well - in fact the attr code\nalready does an equivalent xfs_trans_log_inode call just after calling\nxfs_itruncate_extents.  The conditional size updates are a mess, and there\nwas no reason to do them in two places anyway, as the first one was\nconditional on the inode having extents - but without extents we\nxfs_itruncate_extents would be a no-op and the placement wouldn\u0027t matter\nanyway.  Instead move the size assignments and the asserts that make sense\nto the callers that want it.\n\nAs a side effect of this clean up xfs_setattr_size by introducing variables\nfor the old and new inode size, and moving the size updates into a common\nplace.\n\nReviewed-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Ben Myers \u003cbpm@sgi.com\u003e\n\n"
    },
    {
      "commit": "8638094e956a47dbb9a25166705a91e9a0981d52",
      "tree": "c776b8254bb1a070cfafe5be8615c25b1314e31a",
      "parents": [
        "099469502f62fbe0d7e4f0b83a2f22538367f734"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Fri Jan 13 20:41:46 2012 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 08:30:49 2012 -0800"
      },
      "message": "autofs4 - fix deal with autofs4_write races\n\nI don\u0027t know how I missed this obvious mistake when I\nreviewed Als\u0027 patches, sorry.\n\n[ Quoting Al:\n\n\tGrr...  Note to self: do git status *and* git stash show -p\n\tbefore git push.  Nothing like \"WTF? I\u0027d fixed that braino\"\n\tfeeling ;-/\n\n  Al sent the same patch - it got broken in commit d668dc56631d:\n  \"autofs4: deal with autofs4_write/autofs4_write races\". ]\n\nReported-and-tested-by: Dave Airlie \u003cairlied@redhat.com\u003e\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "515315a123af641a9533e4ff0f178c470dc08fc7",
      "tree": "1a215c3df46286d7ff878cd86517818404758900",
      "parents": [
        "beba006074e7170d3bc91470c8a6c914730d4c63"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jan 13 12:33:53 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jan 13 12:50:42 2012 +0200"
      },
      "message": "UBIFS: fix key printing\n\nBefore commit 56e46742e846e4de167dde0e1e1071ace1c882a5 we have had locking\naround all printing macros and we could use static buffers for creating\nkey strings and printing them. However, now we do not have that locking and\nwe cannot use static buffers. This commit removes the old DBGKEY() macros\nand introduces few new helper macros for printing debugging messages plus\na key at the end. Thankfully, all the messages are already structures in\na way that the key is printed in the end.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "beba006074e7170d3bc91470c8a6c914730d4c63",
      "tree": "3d7330a25a1c7c8228774ec9ff9cc7f1f2dcd1ab",
      "parents": [
        "d34315da9146253351146140ea4b277193ee5e5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 11 15:52:09 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jan 13 12:46:21 2012 +0200"
      },
      "message": "UBIFS: use snprintf instead of sprintf when printing keys\n\nSwitch to \u0027snprintf()\u0027 which is more secure and reliable. This is also a\npreparation to the subsequent key printing fixes.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "099469502f62fbe0d7e4f0b83a2f22538367f734",
      "tree": "5229c3818b2e6e09d35026d49314047121130536",
      "parents": [
        "7c17d86a8502c2e30c2eea777ed1b830aa3b447b",
        "35f1526845a9d804206883e19bd257d3dcef758f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:42:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:42:54 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (aka \"Andrew\u0027s patch-bomb, take two\")\n\nAndrew explains:\n\n - various misc stuff\n\n - Most of the rest of MM: memcg, threaded hugepages, others.\n\n - cpumask\n\n - kexec\n\n - kdump\n\n - some direct-io performance tweaking\n\n - radix-tree optimisations\n\n - new selftests code\n\n   A note on this: often people will develop a new userspace-visible\n   feature and will develop userspace code to exercise/test that\n   feature.  Then they merge the patch and the selftest code dies.\n   Sometimes we paste it into the changelog.  Sometimes the code gets\n   thrown into Documentation/(!).\n\n   This saddens me.  So this patch creates a bare-bones framework which\n   will henceforth allow me to ask people to include their test apps in\n   the kernel tree so we can keep them alive.  Then when people enhance\n   or fix the feature, I can ask them to update the test app too.\n\n   The infrastruture is terribly trivial at present - let\u0027s see how it\n   evolves.\n\n - checkpoint/restart feature work.\n\n   A note on this: this is a project by various mad Russians to perform\n   c/r mainly from userspace, with various oddball helper code added\n   into the kernel where the need is demonstrated.\n\n   So rather than some large central lump of code, what we have is\n   little bits and pieces popping up in various places which either\n   expose something new or which permit something which is normally\n   kernel-private to be modified.\n\n   The overall project is an ongoing thing.  I\u0027ve judged that the size\n   and scope of the thing means that we\u0027re more likely to be successful\n   with it if we integrate the support into mainline piecemeal rather\n   than allowing it all to develop out-of-tree.\n\n   However I\u0027m less confident than the developers that it will all\n   eventually work! So what I\u0027m asking them to do is to wrap each piece\n   of new code inside CONFIG_CHECKPOINT_RESTORE.  So if it all\n   eventually comes to tears and the project as a whole fails, it should\n   be a simple matter to go through and delete all trace of it.\n\nThis lot pretty much wraps up the -rc1 merge for me.\n\n* akpm: (96 commits)\n  unlzo: fix input buffer free\n  ramoops: update parameters only after successful init\n  ramoops: fix use of rounddown_pow_of_two()\n  c/r: prctl: add PR_SET_MM codes to set up mm_struct entries\n  c/r: procfs: add start_data, end_data, start_brk members to /proc/$pid/stat v4\n  c/r: introduce CHECKPOINT_RESTORE symbol\n  selftests: new x86 breakpoints selftest\n  selftests: new very basic kernel selftests directory\n  radix_tree: take radix_tree_path off stack\n  radix_tree: remove radix_tree_indirect_to_ptr()\n  dio: optimize cache misses in the submission path\n  vfs: cache request_queue in struct block_device\n  fs/direct-io.c: calculate fs_count correctly in get_more_blocks()\n  drivers/parport/parport_pc.c: fix warnings\n  panic: don\u0027t print redundant backtraces on oops\n  sysctl: add the kernel.ns_last_pid control\n  kdump: add udev events for memory online/offline\n  include/linux/crash_dump.h needs elf.h\n  kdump: fix crash_kexec()/smp_send_stop() race in panic()\n  kdump: crashk_res init check for /sys/kernel/kexec_crash_size\n  ...\n"
    },
    {
      "commit": "b3f7f573a20081910e34e99cbc91831f4f02f1ff",
      "tree": "2c0aea64b3be4c24f84be6a5275f7202e0dde594",
      "parents": [
        "067bce1a06c1f84146f873a598cd7c3a28eee1d5"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu Jan 12 17:20:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:13 2012 -0800"
      },
      "message": "c/r: procfs: add start_data, end_data, start_brk members to /proc/$pid/stat v4\n\nThe mm-\u003estart_code/end_code, mm-\u003estart_data/end_data, mm-\u003estart_brk are\ninvolved into calculation of program text/data segment sizes (which might\nbe seen in /proc/\u003cpid\u003e/statm) and into brk() call final address.\n\nFor restore we need to know all these values.  While\nmm-\u003estart_code/end_code already present in /proc/$pid/stat, the rest\nmembers are not, so this patch brings them in.\n\nThe restore procedure of these members is addressed in another patch using\nprctl().\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "65dd2aa90aa17a26703c28652408192856aa0396",
      "tree": "4ea4635f786fc295d16a459925da67701253df97",
      "parents": [
        "87192a2a49c475cf322cb143e0fa63b0102d8567"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 12 17:20:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "dio: optimize cache misses in the submission path\n\nSome investigation of a transaction processing workload showed that a\nmajor consumer of cycles in __blockdev_direct_IO is the cache miss while\naccessing the block size.  This is because it has to walk the chain from\nblock_dev to gendisk to queue.\n\nThe block size is needed early on to check alignment and sizes.  It\u0027s only\ndone if the check for the inode block size fails.  But the costly block\ndevice state is unconditionally fetched.\n\n- Reorganize the code to only fetch block dev state when actually\n  needed.\n\nThen do a prefetch on the block dev early on in the direct IO path.  This\nis worth it, because there is substantial code run before we actually\ntouch the block dev now.\n\n- I also added some unlikelies to make it clear the compiler that block\n  device fetch code is not normally executed.\n\nThis gave a small, but measurable improvement on a large database\nbenchmark (about 0.3%)\n\n[akpm@linux-foundation.org: coding-style fixes]\n[sfr@canb.auug.org.au: using prefetch requires including prefetch.h]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: 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": "87192a2a49c475cf322cb143e0fa63b0102d8567",
      "tree": "70acf2fb1e4a9a3a62559ad9218278d2fb114599",
      "parents": [
        "ae55e1aaa7e2e57e538cb98cf617f511c5dc4f73"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Jan 12 17:20:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "vfs: cache request_queue in struct block_device\n\nThis makes it possible to get from the inode to the request_queue with one\nless cache miss.  Used in followon optimization.\n\nThe livetime of the pointer is the same as the gendisk.\n\nThis assumes that the queue will always stay the same in the gendisk while\nit\u0027s visible to block_devices.  I think that\u0027s safe correct?\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae55e1aaa7e2e57e538cb98cf617f511c5dc4f73",
      "tree": "3f3981dd7617c656e7a6ba2f3a83a14637c63221",
      "parents": [
        "45dac90f0ca7d9efeda8f3d416c808c71207bf20"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Thu Jan 12 17:20:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:12 2012 -0800"
      },
      "message": "fs/direct-io.c: calculate fs_count correctly in get_more_blocks()\n\nIn get_more_blocks(), we use dio_count to calcuate fs_count and do some\ntricky things to increase fs_count if dio_count isn\u0027t aligned.  But\nactually it still has some corner cases that can\u0027t be coverd.  See the\nfollowing example:\n\n\tdio_write foo -s 1024 -w 4096\n\n(direct write 4096 bytes at offset 1024).  The same goes if the offset\nisn\u0027t aligned to fs_blocksize.\n\nIn this case, the old calculation counts fs_count to be 1, but actually we\nwill write into 2 different blocks (if fs_blocksize\u003d4096).  The old code\njust works, since it will call get_block twice (and may have to allocate\nand create extents twice for filesystems like ext4).  So we\u0027d better call\nget_block just once with the proper fs_count.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6bc32b899223a877f595ef9ddc1e89ead5072b8",
      "tree": "a9529f7af2cf8e77bb6670acea32169c891a2b76",
      "parents": [
        "66199712e9eef5aede09dbcd9dfff87798a66917"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: compaction: introduce sync-light migration for use by compaction\n\nThis patch adds a lightweight sync migrate operation MIGRATE_SYNC_LIGHT\nmode that avoids writing back pages to backing storage.  Async compaction\nmaps to MIGRATE_ASYNC while sync compaction maps to MIGRATE_SYNC_LIGHT.\nFor other migrate_pages users such as memory hotplug, MIGRATE_SYNC is\nused.\n\nThis avoids sync compaction stalling for an excessive length of time,\nparticularly when copying files to a USB stick where there might be a\nlarge number of dirty pages backed by a filesystem that does not support\n-\u003ewritepages.\n\n[aarcange@redhat.com: This patch is heavily based on Andrea\u0027s work]\n[akpm@linux-foundation.org: fix fs/nfs/write.c build]\n[akpm@linux-foundation.org: fix fs/btrfs/disk-io.c build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andy Isaacson \u003cadi@hexapodia.org\u003e\nCc: Nai Xia \u003cnai.xia@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b969c4ab9f182a6e1b2a0848be349f99714947b0",
      "tree": "dc1c6e4375cfec7b15f13a37307eba8a9e07f40f",
      "parents": [
        "7335084d446b83cbcb15da80497d03f0c1dc9e21"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Jan 12 17:19:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 20:13:09 2012 -0800"
      },
      "message": "mm: compaction: determine if dirty pages can be migrated without blocking within -\u003emigratepage\n\nAsynchronous compaction is used when allocating transparent hugepages to\navoid blocking for long periods of time.  Due to reports of stalling,\nthere was a debate on disabling synchronous compaction but this severely\nimpacted allocation success rates.  Part of the reason was that many dirty\npages are skipped in asynchronous compaction by the following check;\n\n\tif (PageDirty(page) \u0026\u0026 !sync \u0026\u0026\n\t\tmapping-\u003ea_ops-\u003emigratepage !\u003d migrate_page)\n\t\t\trc \u003d -EBUSY;\n\nThis skips over all mapping aops using buffer_migrate_page() even though\nit is possible to migrate some of these pages without blocking.  This\npatch updates the -\u003emigratepage callback with a \"sync\" parameter.  It is\nthe responsibility of the callback to fail gracefully if migration would\nblock.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Andy Isaacson \u003cadi@hexapodia.org\u003e\nCc: Nai Xia \u003cnai.xia@gmail.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "28d82dc1c4edbc352129f97f4ca22624d1fe61de"
}
