)]}'
{
  "log": [
    {
      "commit": "e252f4db187ef02d06c8551069d944d327b8bb9a",
      "tree": "0e704cc34161fc839ef203fbf71106de52e19a7d",
      "parents": [
        "2e93960c4d712096902c16fe5511fc91502c2527",
        "7838c15b8dd18e78a523513749e5b54bda07b0cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:53:47 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Block: use round_jiffies_up()\n  Add round_jiffies_up and related routines\n  block: fix __blkdev_get() for removable devices\n  generic-ipi: fix the smp_mb() placement\n  blk: move blk_delete_timer call in end_that_request_last\n  block: add timer on blkdev_dequeue_request() not elv_next_request()\n  bio: define __BIOVEC_PHYS_MERGEABLE\n  block: remove unused ll_new_mergeable()\n"
    },
    {
      "commit": "c36194871293100bd4b2ecb54ac9774d6e627aa2",
      "tree": "9fd6894103918f439d0e7ec35620e18018ccfa76",
      "parents": [
        "c3302931db090d87e9015c3a7ce5c97a7dd90f78",
        "dc8a0843a435b2c0891e7eaea64faaf1ebec9b11"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:43:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:43:13 2008 -0800"
      },
      "message": "Merge git://git.infradead.org/mtd-2.6\n\n* git://git.infradead.org/mtd-2.6:\n  [JFFS2] fix race condition in jffs2_lzo_compress()\n  [MTD] [NOR] Fix cfi_send_gen_cmd handling of x16 devices in x8 mode (v4)\n  [JFFS2] Fix lack of locking in thread_should_wake()\n  [JFFS2] Fix build failure with !CONFIG_JFFS2_FS_WRITEBUFFER\n  [MTD] [NAND] OMAP2: remove duplicated #include\n"
    },
    {
      "commit": "c3302931db090d87e9015c3a7ce5c97a7dd90f78",
      "tree": "d7a1f9a2769630d7cfbcfc6f69199dbf69396e36",
      "parents": [
        "9ca59f4c3d28df14a1545a1e2832f34a0a50e3ed"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:22 2008 -0800"
      },
      "message": "fat: i_blocks warning fix\n\nblkcnt_t type depends on CONFIG_LSF. Use unsigned long long always for\nprintk().  But lazy to type it, so add \"llu\" and use it.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ca59f4c3d28df14a1545a1e2832f34a0a50e3ed",
      "tree": "4a9d307e2a3541765cf194f27d873c6d06e5d960",
      "parents": [
        "2bdf67eb1631f30e2f3f5d49e4007c76e88877a8"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: -\u003ei_pos race fix\n\ni_pos is 64bits value, hence it\u0027s not atomic to update.\n\nImportant place is fat_write_inode() only, other places without lock\nare just for printk().\n\nThis adds lock for \"BITS_PER_LONG \u003d\u003d 32\" kernel.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bdf67eb1631f30e2f3f5d49e4007c76e88877a8",
      "tree": "d3d337e52516b3b61cdf4508cf445ef8dcaae2ed",
      "parents": [
        "0e75f5da06c05425f4b375eb981c4489fb2d9787"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: mmu_private race fix\n\nmmu_private is 64bits value, hence it\u0027s not atomic to update.\n\nSo, the access rule for mmu_private is we must hold -\u003ei_mutex.  But,\nfat_get_block() path doesn\u0027t follow the rule on non-allocation path.\n\nThis fixes by using i_size instead if non-allocation path.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e75f5da06c05425f4b375eb981c4489fb2d9787",
      "tree": "58ffca2561f689aa253274376d440ae35ddee1b5",
      "parents": [
        "fa93ca18a8b0da4e26bd9491ad144cd14d22f8ec"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Add printf attribute to fat_fs_panic()\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa93ca18a8b0da4e26bd9491ad144cd14d22f8ec",
      "tree": "2950aa2baa218493329873a61aa234c7fcc5d83e",
      "parents": [
        "dfc209c0064efef5590f608056a48b61a5cac09c"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix _fat_bmap() race\n\nfat_get_cluster() assumes the requested blocknr isn\u0027t truncated during\nread. _fat_bmap() doesn\u0027t follow this rule.\n\nThis protects it by -\u003ei_mutex.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfc209c0064efef5590f608056a48b61a5cac09c",
      "tree": "1ace2df7370944dd94b3c8f6a53acf6ea76fdd79",
      "parents": [
        "9183482f5d4a2de00f66641b974e7f351d41b675"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix ATTR_RO for directory\n\nFAT has the ATTR_RO (read-only) attribute. But on Windows, the ATTR_RO\nof the directory will be just ignored actually, and is used by only\napplications as flag. E.g. it\u0027s setted for the customized folder by\nExplorer.\n\nhttp://msdn2.microsoft.com/en-us/library/aa969337.aspx\n\nThis adds \"rodir\" option. If user specified it, ATTR_RO is used as\nread-only flag even if it\u0027s the directory. Otherwise, inode-\u003ei_mode\nis not used to hold ATTR_RO (i.e. fat_mode_can_save_ro() returns 0).\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9183482f5d4a2de00f66641b974e7f351d41b675",
      "tree": "cc23af150f0aab03b29704eb461dac98b6c1f0cf",
      "parents": [
        "9c0aa1b87bf541affef519eb4879ce7c5a5941ae"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix ATTR_RO in the case of (~umask \u0026 S_WUGO) \u003d\u003d 0\n\nIf inode-\u003ei_mode doesn\u0027t have S_WUGO, current code assumes it means\nATTR_RO.  However, if (~[ufd]mask \u0026 S_WUGO) \u003d\u003d 0, inode-\u003ei_mode can\u0027t\nhold S_WUGO. Therefore the updated directory entry will always have\nATTR_RO.\n\nThis adds fat_mode_can_hold_ro() to check it. And if inode-\u003ei_mode\ncan\u0027t hold, uses -i_attrs to hold ATTR_RO instead.\n\nWith this, we don\u0027t set ATTR_RO unless users change it via ioctl() if\n(~[ufd]mask \u0026 S_WUGO) \u003d\u003d 0.\n\nAnd on FAT_IOCTL_GET_ATTRIBUTES path, this adds -\u003ei_mutex to it for\nnot returning the partially updated attributes by FAT_IOCTL_SET_ATTRIBUTES\nto userland.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c0aa1b87bf541affef519eb4879ce7c5a5941ae",
      "tree": "3bd583d8331c630b59fc01b68ab9cb34bb953d6e",
      "parents": [
        "45cfbe354785a5bc9a38354754d6f7322f598001"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Cleanup FAT attribute stuff\n\nThis adds three helpers:\n\nfat_make_attrs() - makes FAT attributes from inode.\nfat_make_mode()  - makes mode_t from FAT attributes.\nfat_save_attrs() - saves FAT attributes to inode.\n\nThen this replaces: MSDOS_MKMODE() by fat_make_mode(), fat_attr() by\nfat_make_attrs(), -\u003ei_attrs \u003d attr \u0026 ATTR_UNUSED by fat_save_attrs().\nAnd for root inode, those is used with ATTR_DIR instead of bogus\nATTR_NONE.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45cfbe354785a5bc9a38354754d6f7322f598001",
      "tree": "cf26bd09db5acb4848e33792273c0d083015510a",
      "parents": [
        "1c13a243a461dd5b089d29e5d57f260c990e462c"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Cleanup msdos_lookup()\n\nUse same style with vfat_lookup().\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c13a243a461dd5b089d29e5d57f260c990e462c",
      "tree": "2d9e6be66c1854cdc172708357d95800ec8e93ed",
      "parents": [
        "1b52467243c7167b3a267ddbcbb14d550f28eb4a"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:52 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Kill d_invalidate() in vfat_lookup()\n\nd_invalidate() for positive dentry doesn\u0027t work in some cases\n(vfsmount, nfsd, and maybe others). shrink_dcache_parent() by\nd_invalidate() is pointless for vfat usage at all.\n\nSo, this kills it, and intead of it uses d_move().\n\nTo save old behavior, this returns alias simply for directory (don\u0027t\nchange pwd, etc..). the directory lookup shouldn\u0027t be important for\nperformance.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b52467243c7167b3a267ddbcbb14d550f28eb4a",
      "tree": "f55bae4d0b970216bda77c29094f19575f3b6c42",
      "parents": [
        "068f5ae05c51d2cee6b31cb3da06775dd83bd348"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "fat: Fix/Cleanup dcache handling for vfat\n\n- Add comments for handling dcache of vfat.\n\n- Separate case-sensitive case and case-insensitive to\n  vfat_revalidate() and vfat_ci_revalidate().\n\n  vfat_revalidate() doesn\u0027t need to drop case-insensitive negative\n  dentry on creation path.\n\n- Current code is missing to set -\u003ed_revalidate to the negative dentry\n  created by unlink/etc..\n\n  This sets -\u003ed_revalidate always, and returns 1 for positive\n  dentry. Now, we don\u0027t need to change -\u003ed_op dynamically anymore,\n  so this just uses sb-\u003es_root-\u003ed_op to set -\u003ed_op.\n\n- d_find_alias() may return DCACHE_DISCONNECTED dentry. It\u0027s not\n  the interesting dentry there. This checks it.\n\n- Add missing LOOKUP_PARENT check. We don\u0027t need to drop the valid\n  negative dentry for (LOOKUP_CREATE | LOOKUP_PARENT) lookup.\n\n- For consistent filename on creation path, this drops negative dentry\n  if we can\u0027t see intent.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "068f5ae05c51d2cee6b31cb3da06775dd83bd348",
      "tree": "a5e0d4ddd6f4edcc23ea58d9b86d8edd1ec6e2f8",
      "parents": [
        "a993b542bb4cd3e5a64863b7ef892bbebec2239b"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:21 2008 -0800"
      },
      "message": "vfat: Fix vfat_find() error path in vfat_lookup()\n\nCurrent vfat_lookup() creates negetive dentry blindly if vfat_find()\nreturned a error. It\u0027s wrong. If the error isn\u0027t -ENOENT, just return\nerror.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a993b542bb4cd3e5a64863b7ef892bbebec2239b",
      "tree": "36dd99548ad2ce2cac015aa166c2ce6ed19048c3",
      "parents": [
        "5e35dd4651002207948f10c576fc7d9bad448815"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: use fat_detach() in fat_clear_inode()\n\nUse fat_detach() instead of opencoding it.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e35dd4651002207948f10c576fc7d9bad448815",
      "tree": "cf747b0dcbe5d86ed2d4f2bec4f581bc4b7e8335",
      "parents": [
        "d3dfa8228f87ab9960ab8b4718013d68e3c25a43"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: Fix fat_ent_update_ptr() for FAT12\n\nThis fixes the missing update for bhs/nr_bhs in case the caller\naccessed from block boundary to first block of boundary.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d3dfa8228f87ab9960ab8b4718013d68e3c25a43",
      "tree": "236784875a5c735688e644fe8412649e5fdbfcd7",
      "parents": [
        "52e9d9f4b32a3bec91feb76c84e37b7dcffe5040"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:49 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: improve fat_hash()\n\nfat_hash() is using the algorithm known as bad. Instead of it, this\nuses hash_32(). The following is the summary of test.\n\nold hash:\n\thash func (1000 times): 33489 cycles\n\ttotal inodes in hash table: 70926\n\tlargest bucket contains: 696\n\tsmallest bucket contains: 54\n\nnew hash:\n\thash func (1000 times): 33129 cycles\n\ttotal inodes in hash table: 70926\n\tlargest bucket contains: 315\n\tsmallest bucket contains: 236\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52e9d9f4b32a3bec91feb76c84e37b7dcffe5040",
      "tree": "00720ba55750b14ad8e48c3953577b636ec67404",
      "parents": [
        "53472bc8f810d2fb507593ea03703670506a668d"
      ],
      "author": {
        "name": "Darren Jenkins",
        "email": "darrenrjenkins@gmail.com",
        "time": "Thu Nov 06 12:53:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: cleanup fat_parse_long() error handling\n\nCoverity CID 2332 \u0026 2333 RESOURCE_LEAK\n\nIn fat_search_long() if fat_parse_long() returns a -ve value we return\nwithout first freeing unicode.  This patch free\u0027s them on this error path.\n\nThe above was false positive on current tree, but this change is more\nclean, so apply as cleanup.\n\n[hirofumi@mail.parknet.co.jp: fix coding style]\nSigned-off-by: Darren Jenkins \u003cdarrenrjenkins@gmail.com\u003e\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53472bc8f810d2fb507593ea03703670506a668d",
      "tree": "cdb700668fd466f79407234ff7c90b2b928ffb29",
      "parents": [
        "7decd1cb0305b97243f283fa7f4baf5fe613edeb"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: use generic_file_llseek() for directory\n\nSince fat_dir_ioctl() was already fixed (i.e. called under -\u003ei_mutex),\nand __fat_readdir() doesn\u0027t take BKL anymore. So, BKL for -\u003ellseek()\nis pointless, and we have to use generic_file_llseek().\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7decd1cb0305b97243f283fa7f4baf5fe613edeb",
      "tree": "d17b291fd622c8ea45fd0ac8346f3c82c13759b6",
      "parents": [
        "9e975dae2970d22557662761c8505ce9fd165684"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:47 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: Fix and cleanup timestamp conversion\n\nThis cleans date_dos2unix()/fat_date_unix2dos() up. New code should be\nmuch more readable.\n\nAnd this fixes those old functions. Those doesn\u0027t handle 2100\ncorrectly. 2100 isn\u0027t leap year, but old one handles it as leap year.\nAlso, with this, centi sec is handled and is fixed.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e975dae2970d22557662761c8505ce9fd165684",
      "tree": "ecc662bd047ae784095b9effb4bafad99389b5f2",
      "parents": [
        "990e194e69009028e029b7d25da68c38241ec4f0"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: split include/msdos_fs.h\n\nThis splits __KERNEL__ stuff in include/msdos_fs.h into fs/fat/fat.h.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "990e194e69009028e029b7d25da68c38241ec4f0",
      "tree": "633cb49307dcbac72c524a5e62ec2ce88befed1d",
      "parents": [
        "8986ab59631b1f2e82ac820c8fd76a34462915ca"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Nov 06 12:53:45 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:20 2008 -0800"
      },
      "message": "fat: move fs/vfat/* and fs/msdos/* to fs/fat\n\nThis just moves those files, but change link order from MSDOS, VFAT to\nVFAT, MSDOS.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c87591b719737b4e91eb1a9fa8fd55a4ff1886d6",
      "tree": "b442f22c99aa46524d4c1256dffadeaec975607e",
      "parents": [
        "fbdd12676c83df77480f00ebd32fc98fbe3bf836"
      ],
      "author": {
        "name": "Arthur Jones",
        "email": "ajones@riverbed.com",
        "time": "Thu Nov 06 12:53:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:19 2008 -0800"
      },
      "message": "ext3: wait on all pending commits in ext3_sync_fs\n\nIn ext3_sync_fs, we only wait for a commit to finish if we started it, but\nthere may be one already in progress which will not be synced.\n\nIn the case of a data\u003dordered umount with pending long symlinks which are\ndelayed due to a long list of other I/O on the backing block device, this\ncauses the buffer associated with the long symlinks to not be moved to the\ninode dirty list in the second phase of fsync_super.  Then, before they\ncan be dirtied again, kjournald exits, seeing the UMOUNT flag and the\ndirty pages are never written to the backing block device, causing long\nsymlink corruption and exposing new or previously freed block data to\nuserspace.\n\nThis can be reproduced with a script created\nby Eric Sandeen \u003csandeen@redhat.com\u003e:\n\n\t#!/bin/bash\n\n\tumount /mnt/test2\n\tmount /dev/sdb4 /mnt/test2\n\trm -f /mnt/test2/*\n\tdd if\u003d/dev/zero of\u003d/mnt/test2/bigfile bs\u003d1M count\u003d512\n\ttouch\n\t/mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n\tln -s\n\t/mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename\n\t/mnt/test2/link\n\tumount /mnt/test2\n\tmount /dev/sdb4 /mnt/test2\n\tls /mnt/test2/\n\tumount /mnt/test2\n\nTo ensure all commits are synced, we flush all journal commits now when\nsync_fs\u0027ing ext3.\n\nSigned-off-by: Arthur Jones \u003cajones@riverbed.com\u003e\nCc: Eric Sandeen \u003csandeen@redhat.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.everything]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96b0317906690997c16c7efffbc4c0fafcd6f7f2",
      "tree": "a99392c1393853f2ad953445be0165500fb5d3d8",
      "parents": [
        "bc9c4068388eea01d3b5da31016879f2341ecec5"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu Nov 06 12:53:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:17 2008 -0800"
      },
      "message": "autofs4: collect version check return\n\nThe function check_dev_ioctl_version() returns an error code upon fail but\nit isn\u0027t captured and returned in validate_dev_ioctl() as it should be.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "bc9c4068388eea01d3b5da31016879f2341ecec5",
      "tree": "3ff09783f4d5e3d19d8e5bda9b63419991726939",
      "parents": [
        "eefc488f96cdde6e152b45675b50bf380b95d99f"
      ],
      "author": {
        "name": "Ian Kent",
        "email": "raven@themaw.net",
        "time": "Thu Nov 06 12:53:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:17 2008 -0800"
      },
      "message": "autofs4: correct offset mount expire check\n\nWhen checking a directory tree in autofs_tree_busy() we can incorrectly\ndecide that the tree isn\u0027t busy.  This happens for the case of an active\noffset mount as autofs4_follow_mount() follows past the active offset\nmount, which has an open file handle used for expires, causing the file\nhandle not to count toward the busyness check.\n\nSigned-off-by: Ian Kent \u003craven@themaw.net\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@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": "89f97496e81d2112b5e41416fe3020688c443818",
      "tree": "e78122150d550bf644ca1a96916a5880823d3e04",
      "parents": [
        "561920a0d2bb6d63343e83acfd784c0a77bd28d1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 05 10:21:06 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 06 08:41:56 2008 +0100"
      },
      "message": "block: fix __blkdev_get() for removable devices\n\nCommit 0762b8bde9729f10f8e6249809660ff2ec3ad735 moved disk_get_part()\nin front of recursive get on the whole disk, which caused removable\ndevices to try disk_get_part() before rescanning after a new media is\ninserted, which might fail legit open attempts or give the old\npartition.\n\nThis patch fixes the problem by moving disk_get_part() after\n__blkdev_get() on the whole disk.\n\nThis problem was spotted by Borislav Petkov.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nTested-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dc8a0843a435b2c0891e7eaea64faaf1ebec9b11",
      "tree": "2646065fd3b332e51af6d2c141833e6a00a7441b",
      "parents": [
        "467622ef2acb01986eab37ef96c3632b3ea35999"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "Geert.Uytterhoeven@sonycom.com",
        "time": "Wed Nov 05 23:21:16 2008 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Wed Nov 05 23:22:02 2008 +0100"
      },
      "message": "[JFFS2] fix race condition in jffs2_lzo_compress()\n\ndeflate_mutex protects the globals lzo_mem and lzo_compress_buf.  However,\njffs2_lzo_compress() unlocks deflate_mutex _before_ it has copied out the\ncompressed data from lzo_compress_buf.  Correct this by moving the mutex\nunlock after the copy.\n\nIn addition, document what deflate_mutex actually protects.\n\nCc: stable@kernel.org\nSigned-off-by: Geert Uytterhoeven \u003cGeert.Uytterhoeven@sonycom.com\u003e\nAcked-by: Richard Purdie \u003crpurdie@openedhand.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\n"
    },
    {
      "commit": "a75952b72a0fff3031124003e62118111aed42c1",
      "tree": "5243016005ebf8060e939db8d7c0c50976b2b315",
      "parents": [
        "457d2ee225801441e96f2e35894ec404572ad862",
        "ae6884a9da56f8921e432e663b4ccb4a1851b2ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 03 11:43:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 03 11:43:59 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: fix renaming one hardlink on top of another\n  [CIFS] fix error in smb_send2\n  [CIFS] Reduce number of socket retries in large write path\n"
    },
    {
      "commit": "ae6884a9da56f8921e432e663b4ccb4a1851b2ea",
      "tree": "ec80aca419ad61b7585ef0da64fac4d968ced224",
      "parents": [
        "61de800d33af585cb7e6f27b5cdd51029c6855cb"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Nov 03 14:05:08 2008 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Nov 03 18:31:05 2008 +0000"
      },
      "message": "cifs: fix renaming one hardlink on top of another\n\ncifs: fix renaming one hardlink on top of another\n\nPOSIX says that renaming one hardlink on top of another to the same\ninode is a no-op. We had the logic mostly right, but forgot to clear\nthe return code.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c8126cc6025972629044cde750cec97f175792f7",
      "tree": "d80782c2ddfb17f6bc49a85fb932b5854f5af73a",
      "parents": [
        "30ef898c535bffd105c1a9b9b6563969b3deb31e",
        "6c87df37dcb9c6c33923707fa5191e0a65874d60"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 03 09:59:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 03 09:59:01 2008 -0800"
      },
      "message": "Merge branch \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc:\n  proc: revert /proc/uptime to -\u003eread_proc hook\n"
    },
    {
      "commit": "233e70f4228e78eb2f80dc6650f65d3ae3dbf17c",
      "tree": "4e18fbe1851e6d2161b7f18265cb21f8a61e3ce7",
      "parents": [
        "3318a386e4ca68c76e0294363d29bdc46fcad670"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 23:28:30 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:49:46 2008 -0700"
      },
      "message": "saner FASYNC handling on file close\n\nAs it is, all instances of -\u003erelease() for files that have -\u003efasync()\nneed to remember to evict file from fasync lists; forgetting that\ncreates a hole and we actually have a bunch that *does* forget.\n\nSo let\u0027s keep our lives simple - let __fput() check FASYNC in\nfile-\u003ef_flags and call -\u003efasync() there if it\u0027s been set.  And lose that\ncrap in -\u003erelease() instances - leaving it there is still valid, but we\ndon\u0027t have to bother anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e06f42d6c127883e58b747048752f44ae208ae47",
      "tree": "16b28e067eb7a85259d8a2025fb9256fda55bdc5",
      "parents": [
        "f891caf28febf9d4129716e848227148654b5993",
        "d7dc61d0a70371b1c6557ea8ffbc60fff94c8168"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 31 15:44:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 31 15:44:08 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux:\n  NLM: Set address family before calling nlm_host_rebooted()\n  nfsd: fix failure to set eof in readdir in some situations\n"
    },
    {
      "commit": "b27cf88e9592953ae292d05324887f2f44979433",
      "tree": "9f903a17a08801197127b479429ee2e304898799",
      "parents": [
        "f04de505e3fa322728d1a851e08bf7060b117743"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Oct 31 14:52:24 2008 +0000"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Fri Oct 31 14:52:24 2008 +0000"
      },
      "message": "[JFFS2] Fix lack of locking in thread_should_wake()\n\nThe thread_should_wake() function trawls through the list of \u0027very\ndirty\u0027 eraseblocks, determining whether the background GC thread should\nwake. Doing this without holding the appropriate locks is a bad idea.\n\nOLPC Trac #8615\n\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "eff2502801e9a3a34882c6bd720470d65394522e",
      "tree": "01396fd1e40cedd9cd6b336c27e3f6885af36bc2",
      "parents": [
        "f73aaf10ae14ee8f9644b0f7abe252fe7eeb17f5",
        "a996031c87e093017c0763326a08896a3a4817f4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 31 07:52:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 31 07:52:12 2008 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:\n  delay capable() check in ext4_has_free_blocks()\n  merge ext4_claim_free_blocks \u0026 ext4_has_free_blocks\n  jbd2: Call the commit callback before the transaction could get dropped\n  ext4: fix a bug accessing freed memory in ext4_abort\n  ext3: fix a bug accessing freed memory in ext3_abort\n"
    },
    {
      "commit": "d7dc61d0a70371b1c6557ea8ffbc60fff94c8168",
      "tree": "78cc625fbdc4a0ff643ccebe6938ff1036eab00b",
      "parents": [
        "8d7c4203c681a3ec359eccff4e53bc8c0ccf403b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@ORACLE.COM",
        "time": "Thu Oct 23 00:50:35 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Oct 30 17:19:30 2008 -0400"
      },
      "message": "NLM: Set address family before calling nlm_host_rebooted()\n\nThe nlm_host_rebooted() function uses nlm_cmp_addr() to find an\nnsm_handle that matches the rebooted peer.  In order for this to work,\nthe passed-in address must have a proper address family.\n\nThis fixes a post-2.6.28 regression introduced by commit 781b61a6, which\nadded AF_INET6 support to nlm_cmp_addr().  Before that commit,\nnlm_cmp_addr() didn\u0027t care about the address family; it compared only\nthe sin_addr.s_addr field for equality.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8d7c4203c681a3ec359eccff4e53bc8c0ccf403b",
      "tree": "78c848023b6fbefcd387602529c6e87039f4946e",
      "parents": [
        "0173a3265b228da319ceb9c1ec6a5682fd1b2d92"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Oct 30 13:48:33 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Oct 30 17:16:49 2008 -0400"
      },
      "message": "nfsd: fix failure to set eof in readdir in some situations\n\nBefore 14f7dd632011bb89c035722edd6ea0d90ca6b078 \"[PATCH] Copy XFS\nreaddir hack into nfsd code\", readdir_cd-\u003eerr was reset to eof before\neach call to vfs_readdir; afterwards, it is set only once.  Similarly,\nc002a6c7977320f95b5edede5ce4e0eeecf291ff \"[PATCH] Optimise NFS readdir\nhack slightly\", can cause us to exit without nfserr_eof set.  Fix this.\n\nThis ensures the \"eof\" bit is set when needed in readdir replies.  (The\nparticular case I saw was an nfsv4 readdir of an empty directory, which\nreturned with no entries (the protocol requires \".\" and \"..\" to be\nfiltered out), but with eof unset.)\n\nCc: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "61de800d33af585cb7e6f27b5cdd51029c6855cb",
      "tree": "3b16b4cca031c646a30a55218adfed6e0c59332e",
      "parents": [
        "edf1ae403896cb7750800508b14996ba6be39a53"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 30 20:15:22 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Thu Oct 30 20:15:22 2008 +0000"
      },
      "message": "[CIFS] fix error in smb_send2\n\nsmb_send2 exit logic was strange, and with the previous change\ncould cause us to fail large\nsmb writes when all of the smb was not sent as one chunk.\n\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "1b2d3d94ec878c3529153061cd8cceb876e01a3e",
      "tree": "93adaf1666942024cce4e3aa0bc58f0f1095bd2f",
      "parents": [
        "8bd93ca7b03f38a7bc1a4ed9e93e8c006e753d5b",
        "5f707eb429e2c98dfd564ffbbd9f536bf493d869"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 12:51:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 12:51:42 2008 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  SUNRPC: Fix potential race in put_rpccred()\n  SUNRPC: Fix rpcauth_prune_expired\n  NFS: Convert nfs_attr_generation_counter into an atomic_long\n  SUNRPC: Respond promptly to server TCP resets\n"
    },
    {
      "commit": "e74481e23283fb080d4591c258de20785cc3b6c3",
      "tree": "bfc5076aa40d62beeba319fdb0fe55ed53f4b335",
      "parents": [
        "e99c97ade53fb6f5e665f2960eb86c624a532d7b"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Oct 29 14:01:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:46 2008 -0700"
      },
      "message": "fs: remove excess kernel-doc\n\nDelete excess kernel-doc notation in fs/ subdirectory:\n\nWarning(linux-2.6.27-git10//fs/jbd/transaction.c:886): Excess function parameter or struct member \u0027credits\u0027 description in \u0027journal_get_undo_access\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "87b811c3f96559e466403e22b1fa99d472571625",
      "tree": "319179f5d9a1cffaa3ae32aa41076d0fb10aab10",
      "parents": [
        "ce05fcc30ea41c85f9d50bee1ce289f7cb7fb223"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Oct 29 14:01:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:46 2008 -0700"
      },
      "message": "ecryptfs: fix memory corruption when storing crypto info in xattrs\n\nWhen ecryptfs allocates space to write crypto headers into, before copying\nit out to file headers or to xattrs, it looks at the value of\ncrypt_stat-\u003enum_header_bytes_at_front to determine how much space it\nneeds.  This is also used as the file offset to the actual encrypted data,\nso for xattr-stored crypto info, the value was zero.\n\nSo, we kzalloc\u0027d 0 bytes, and then ran off to write to that memory.\n(Which returned as ZERO_SIZE_PTR, so we explode quickly).\n\nThe right answer is to always allocate a page to write into; the current\ncode won\u0027t ever write more than that (this is enforced by the\n(PAGE_CACHE_SIZE - offset) length in the call to\necryptfs_generate_key_packet_set).  To be explicit about this, we now send\nin a \"max\" parameter, rather than magically using PAGE_CACHE_SIZE there.\n\nAlso, since the pointer we pass down the callchain eventually gets the\nvirt_to_page() treatment, we should be using a alloc_page variant, not\nkzalloc (see also 7fcba054373d5dfc43d26e243a5c9b92069972ee)\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nAcked-by: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e02ed4b4a2fae34aae766a5bb93ae235f60adb8",
      "tree": "bddfb61b7cc4a4007ae176ccb1ace5740b61da8d",
      "parents": [
        "9b913735e53ab0da4a792bac0de8e178cc13dcfb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Oct 29 14:00:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 30 11:38:45 2008 -0700"
      },
      "message": "fs: remove prepare_write/commit_write\n\nNothing uses prepare_write or commit_write. Remove them from the tree\ncompletely.\n\n[akpm@linux-foundation.org: schedule simple_prepare_write() for unexporting]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\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": "edf1ae403896cb7750800508b14996ba6be39a53",
      "tree": "ff792ea77e558d473a9f6515397728d31e73fd09",
      "parents": [
        "49fdf6785fd660e18a1eb4588928f47e9fa29a9a"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Oct 29 00:47:57 2008 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Oct 29 00:47:57 2008 +0000"
      },
      "message": "[CIFS] Reduce number of socket retries in large write path\n\nCIFS in some heavy stress conditions cifs could get EAGAIN\nrepeatedly in smb_send2 which led to repeated retries and eventually\nfailure of large writes which could lead to data corruption.\n\nThere are three changes that were suggested by various network\ndevelopers:\n\n1) convert cifs from non-blocking to blocking tcp sendmsg\n(we left in the retry on failure)\n2) change cifs to not set sendbuf and rcvbuf size for the socket\n(let tcp autotune the buffer sizes since that works much better\nin the TCP stack now)\n3) if we have a partial frame sent in smb_send2, mark the tcp\nsession as invalid (close the socket and reconnect) so we do\nnot corrupt the remaining part of the SMB with the beginning\nof the next SMB.\n\nThis does not appear to hurt performance measurably and has\nbeen run in various scenarios, but it definately removes\na corruption that we were seeing in some high stress\ntest cases.\n\nAcked-by: Shirish Pargaonkar \u003cshirishp@us.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ae05f269400533cbb32bfba131ab528d78dffd16",
      "tree": "ff18dae710bf73c32b77953222b994a36afbe8e8",
      "parents": [
        "2a9e1cfa23fb62da37739af81127dab5af095d99"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 28 15:21:40 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 28 15:21:40 2008 -0400"
      },
      "message": "NFS: Convert nfs_attr_generation_counter into an atomic_long\n\nThe most important property we need from nfs_attr_generation_counter is\nmonotonicity, which is not guaranteed by the current system of smp memory\nbarriers. We should convert it to an atomic_long_t, and drop the memory\nbarriers.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a996031c87e093017c0763326a08896a3a4817f4",
      "tree": "74550b7108b1b1fd87393801de56bd9e1e8b1012",
      "parents": [
        "8c3bf8a01c005385e9be0bc992e10abfb355278c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 28 00:08:17 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 00:08:17 2008 -0400"
      },
      "message": "delay capable() check in ext4_has_free_blocks()\n\nAs reported by Eric Paris, the capable() check in ext4_has_free_blocks()\nsometimes causes SELinux denials.\n\nWe can rearrange the logic so that we only try to use the root-reserved\nblocks when necessary, and even then we can move the capable() test\nto last, to avoid the check most of the time.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "8c3bf8a01c005385e9be0bc992e10abfb355278c",
      "tree": "b65516a799256f593b29ad5048aa9a24d2d1b70b",
      "parents": [
        "6c20ec850360bc6e5c66a787f0523a80450d65ab"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Tue Oct 28 00:08:12 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 00:08:12 2008 -0400"
      },
      "message": "merge ext4_claim_free_blocks \u0026 ext4_has_free_blocks\n\nMingming pointed out that ext4_claim_free_blocks \u0026 ext4_has_free_blocks\nare largely cut \u0026 pasted; they can be collapsed/merged as follows.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Mingming Cao \u003ccmm@us.ibm.com\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6c20ec850360bc6e5c66a787f0523a80450d65ab",
      "tree": "567f496cf53dbfbc235809edac134e0247a062c8",
      "parents": [
        "ef2cabf7c6d838eb0ee2b4fb8ef84f7c06ce16d9"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 21:08:20 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue Oct 28 21:08:20 2008 -0400"
      },
      "message": "jbd2: Call the commit callback before the transaction could get dropped\n\nThe transaction can potentially get dropped if there are no buffers\nthat need to be written.  Make sure we call the commit callback before\npotentially deciding to drop the transaction.  Also avoid\ndereferencing the commit_transaction pointer in the marker for the\nsame reason.\n\nThis patch fixes the bug reported by Eric Paris at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11838\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nAcked-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nTested-by: Eric Paris \u003ceparis@redhat.com\u003e\n"
    },
    {
      "commit": "ef2cabf7c6d838eb0ee2b4fb8ef84f7c06ce16d9",
      "tree": "64c3c14ae4a3717c6c193773d87e31f5facc569e",
      "parents": [
        "44d6f78756560e95903de239e10f8a40a6eae444"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Mon Oct 27 22:53:05 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 27 22:53:05 2008 -0400"
      },
      "message": "ext4: fix a bug accessing freed memory in ext4_abort\n\nVegard Nossum reported a bug which accesses freed memory (found via\nkmemcheck).  When journal has been aborted, ext4_put_super() calls\next4_abort() after freeing the journal_t object, and then ext4_abort()\naccesses it.  This patch fix it.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "44d6f78756560e95903de239e10f8a40a6eae444",
      "tree": "2f4e1ec9219eb9f8e3d564856e5c40174bd869e7",
      "parents": [
        "0173a3265b228da319ceb9c1ec6a5682fd1b2d92"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Mon Oct 27 22:51:46 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Mon Oct 27 22:51:46 2008 -0400"
      },
      "message": "ext3: fix a bug accessing freed memory in ext3_abort\n\nVegard Nossum reported a bug which accesses freed memory (found via\nkmemcheck).  When journal has been aborted, ext3_put_super() calls\next3_abort() after freeing the journal_t object, and then ext3_abort()\naccesses it.  This patch fix it.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n"
    },
    {
      "commit": "6c87df37dcb9c6c33923707fa5191e0a65874d60",
      "tree": "7a753aec4f97afda592cc19c3536178a81fce41d",
      "parents": [
        "e013e13bf605b9e6b702adffbe2853cfc60e7806"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 27 22:38:27 2008 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 27 22:56:56 2008 +0300"
      },
      "message": "proc: revert /proc/uptime to -\u003eread_proc hook\n\nTurned out some VMware userspace does pread(2) on /proc/uptime, but\nseqfiles currently don\u0027t allow pread() resulting in -ESPIPE.\n\nSeqfiles in theory can do pread(), but this can be a long story,\nso revert to -\u003eread_proc until then.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11856\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "526719ba51e7d7bd31f7af9ab04b015b70096685",
      "tree": "ccbacb533487b9f0b9e475050b3804fa506e7faf",
      "parents": [
        "77122d0b5d1fb2276b1fe7bce6366f22b2f96606"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Oct 27 15:19:48 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 27 08:40:17 2008 -0700"
      },
      "message": "Switch to a valid email address...\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ce209d64d820a6d5ed6b952e2c0f917faad6031",
      "tree": "817c5bd01e6666c8269d29d3d8292b5e75ea7fb3",
      "parents": [
        "4d36a9e65d4966b433b2f3424d9457468bc80e00"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Fri Oct 17 16:17:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 26 12:09:49 2008 -0700"
      },
      "message": "epoll: avoid double-inserts in case of EFAULT\n\nIn commit f337b9c58332bdecde965b436e47ea4c94d30da0 (\"epoll: drop\nunnecessary test\") Thomas found that there is an unnecessary (always\ntrue) test in ep_send_events().  The callback never inserts into\n-\u003erdllink while the send loop is performed, and also does the\n~EP_PRIVATE_BITS test.  Given we\u0027re holding the mutex during this time,\nthe conditions tested inside the loop are always true.\n\nHOWEVER.\n\nThe test \"!ep_is_linked(\u0026epi-\u003erdllink)\" wasn\u0027t there because we insert\ninto -\u003erdllink, but because the send-events loop might terminate before\nthe whole list is scanned (-EFAULT).\n\nIn such cases, when the loop terminates early, and when a (leftover)\nfile received an event while we\u0027re performing the lockless loop, we need\nsuch test to avoid to double insert the epoll items.  The list_splice()\ndone a few steps below, will correctly re-insert the ones that were left\non \"txlist\".\n\nThis should fix the kenrel.org bugzilla entry 11831.\n\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d36a9e65d4966b433b2f3424d9457468bc80e00",
      "tree": "8c7b8e64ae40769a3f9f948491987ba93698ee3a",
      "parents": [
        "44a504c405ae5c3a80e71acf71d6b1cb0db70715"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Oct 25 12:41:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 26 11:22:08 2008 -0700"
      },
      "message": "select: deal with math overflow from borderline valid userland data\n\nSome userland apps seem to pass in a \"0\" for the seconds, and several\nseconds worth of usecs to select().  The old kernels accepted this just\nfine, so the new kernels must too.\n\nHowever, due to the upscaling of the microseconds to nanoseconds we had\nsome cases where we got math overflow, and depending on the GCC version\n(due to inlining decisions) that actually resulted in an -EINVAL return.\n\nThis patch fixes this by adding the excess microseconds to the seconds\nfield.\n\nAlso with thanks to Marcin Slusarz for spotting some implementation bugs\nin the diagnostics patches.\n\nReported-by: Carlos R. Mafra \u003ccrmafra2@gmail.com\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c37fc86d20fe35be656f070997d62f75c2e4874",
      "tree": "eb9593356a2aa3233ab8f198f044e81413423cde",
      "parents": [
        "8c9fa93d51123c5540762b1a9e1919d6f9c4af7c"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 25 11:39:08 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 25 22:37:55 2008 -0400"
      },
      "message": "ext4: Fix duplicate entries returned from getdents() system call\n\nFix a regression caused by commit d0156417, \"ext4: fix ext4_dx_readdir\nhash collision handling\", where deleting files in a large directory\n(requiring more than one getdents system call), results in some\nfilenames being returned twice.  This was caused by a failure to\nupdate info-\u003ecurr_hash and info-\u003ecurr_minor_hash, so that if the\ndirectory had gotten modified since the last getdents() system call\n(as would be the case if the user is running \"rm -r\" or \"git clean\"),\na directory entry would get returned twice to the userspace.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\n\nThis patch fixes the bug reported by Markus Trippelsdorf at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11844\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\n"
    },
    {
      "commit": "8c9fa93d51123c5540762b1a9e1919d6f9c4af7c",
      "tree": "e0c09b583c785be17bd2509b7c71fd7db3ad9aad",
      "parents": [
        "57f8f7b60db6f1ed2c6918ab9230c4623a9dbe37"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 25 11:38:37 2008 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Sat Oct 25 22:37:44 2008 -0400"
      },
      "message": "ext3: Fix duplicate entries returned from getdents() system call\n\nFix a regression caused by commit 6a897cf4, \"ext3: fix ext3_dx_readdir\nhash collision handling\", where deleting files in a large directory\n(requiring more than one getdents system call), results in some\nfilenames being returned twice.  This was caused by a failure to\nupdate info-\u003ecurr_hash and info-\u003ecurr_minor_hash, so that if the\ndirectory had gotten modified since the last getdents() system call\n(as would be the case if the user is running \"rm -r\" or \"git clean\"),\na directory entry would get returned twice to the userspace.\n\nThis patch fixes the bug reported by Markus Trippelsdorf at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11844\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\n"
    },
    {
      "commit": "88ed86fee6651033de9b7038dac7869a9f19775a",
      "tree": "38b638d2e7cba110ec271275738f221feb7e0a37",
      "parents": [
        "3856d30ded1fe43c6657927ebad402d25cd128f4",
        "59c7572e82d69483a66eaa67b46548baeb69ecf4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:04:37 2008 -0700"
      },
      "message": "Merge branch \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc\n\n* \u0027proc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: (35 commits)\n  proc: remove fs/proc/proc_misc.c\n  proc: move /proc/vmcore creation to fs/proc/vmcore.c\n  proc: move pagecount stuff to fs/proc/page.c\n  proc: move all /proc/kcore stuff to fs/proc/kcore.c\n  proc: move /proc/schedstat boilerplate to kernel/sched_stats.h\n  proc: move /proc/modules boilerplate to kernel/module.c\n  proc: move /proc/diskstats boilerplate to block/genhd.c\n  proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmstat boilerplate to mm/vmstat.c\n  proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n  proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n  proc: move /proc/vmallocinfo to mm/vmalloc.c\n  proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n  proc: move /proc/slab_allocators boilerplate to mm/slab.c\n  proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c\n  proc: move /proc/stat to fs/proc/stat.c\n  proc: move rest of /proc/partitions code to block/genhd.c\n  proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c\n  proc: move /proc/devices code to fs/proc/devices.c\n  proc: move rest of /proc/locks to fs/locks.c\n  ...\n"
    },
    {
      "commit": "3856d30ded1fe43c6657927ebad402d25cd128f4",
      "tree": "e2313de491919549ed9065fb2604dd3d19a33ea3",
      "parents": [
        "f3161f36f5f49ee995b90d6207d8b6d990355e0a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 23 20:33:29 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 12:03:23 2008 -0700"
      },
      "message": "ext4: remove unused variable in ext4_get_parent\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n[ All users removed in \"switch all filesystems over to d_obtain_alias\",\n  aka commit 440037287c5ebb07033ab927ca16bb68c291d309 ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "12e1ec9ff31d388305da644b452c9f80d244aa55",
      "tree": "9e5fa992d12885a6b1c16c1175c692f99ac03bd7",
      "parents": [
        "1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 11:48:56 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 11:48:56 2008 -0700"
      },
      "message": "ext3 quota support: fix compile failure\n\nThis one was due to a merge error: we added a use of nd.path in commit\n2d7c820e56ce83b23daee9eb5343730fb309418e (\"ext3: add checks for errors\nfrom jbd\"), and concurrently we got rid of \u0027nd\u0027 and used a naked \u0027path\u0027\nin commit 8264613def2e5c4f12bc3167713090fd172e6055 (\"[PATCH] switch\nquota_on-related stuff to kern_path()\").\n\nThat all merged cleanly, but it didn\u0027t actually _work_.  This should fix\nit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4",
      "tree": "be7a2d20b1728da5a0d844a6f4cd382b2c2569fb",
      "parents": [
        "db563fc2e80534f98c7f9121a6f7dfe41f177a79",
        "268a3dcfea2077fca60d3715caa5c96f9b5e6ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:53:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:53:02 2008 -0700"
      },
      "message": "Merge branch \u0027v28-range-hrtimers-for-linus-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027v28-range-hrtimers-for-linus-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (37 commits)\n  hrtimers: add missing docbook comments to struct hrtimer\n  hrtimers: simplify hrtimer_peek_ahead_timers()\n  hrtimers: fix docbook comments\n  DECLARE_PER_CPU needs linux/percpu.h\n  hrtimers: fix typo\n  rangetimers: fix the bug reported by Ingo for real\n  rangetimer: fix BUG_ON reported by Ingo\n  rangetimer: fix x86 build failure for the !HRTIMERS case\n  select: fix alpha OSF wrapper\n  select: fix alpha OSF wrapper\n  hrtimer: peek at the timer queue just before going idle\n  hrtimer: make the futex() system call use the per process slack value\n  hrtimer: make the nanosleep() syscall use the per process slack\n  hrtimer: fix signed/unsigned bug in slack estimator\n  hrtimer: show the timer ranges in /proc/timer_list\n  hrtimer: incorporate feedback from Peter Zijlstra\n  hrtimer: add a hrtimer_start_range() function\n  hrtimer: another build fix\n  hrtimer: fix build bug found by Ingo\n  hrtimer: make select() and poll() use the hrtimer range feature\n  ...\n"
    },
    {
      "commit": "db563fc2e80534f98c7f9121a6f7dfe41f177a79",
      "tree": "c97acbb983530b070e28c70825e0eedbbdb97ab2",
      "parents": [
        "eb81071584bed0b04adcaf57e525638d0f92e1e1",
        "b1c8d2b421376bc941823ee93e36cb491609b02c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:43:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:43:36 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: handle the TCP_Server_Info-\u003etsk field more carefully\n  cifs: fix unlinking of rename target when server doesn\u0027t support open file renames\n  [CIFS] improve setlease handling\n  [CIFS] fix saving of resume key before CIFSFindNext\n  cifs: make cifs_rename handle -EACCES errors\n  [CIFS] fix build error\n  [CIFS] undo changes in cifs_rename_pending_delete if it errors out\n  cifs: track DeletePending flag in cifsInodeInfo\n  cifs: don\u0027t use CREATE_DELETE_ON_CLOSE in cifs_rename_pending_delete\n  [CIFS] eliminate usage of kthread_stop for cifsd\n  [CIFS] Add nodfs mount option\n"
    },
    {
      "commit": "22484856402bfa1ff3defe47f6029ab0418240d9",
      "tree": "140c67bf59674da350a7b51765d6ff7eb101b597",
      "parents": [
        "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47",
        "56b26add02b4bdea81d5e0ebda60db1fe3311ad4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:23:07 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/viro/bdev: (66 commits)\n  [PATCH] kill the rest of struct file propagation in block ioctls\n  [PATCH] get rid of struct file use in blkdev_ioctl() BLKBSZSET\n  [PATCH] get rid of blkdev_locked_ioctl()\n  [PATCH] get rid of blkdev_driver_ioctl()\n  [PATCH] sanitize blkdev_get() and friends\n  [PATCH] remember mode of reiserfs journal\n  [PATCH] propagate mode through swsusp_close()\n  [PATCH] propagate mode through open_bdev_excl/close_bdev_excl\n  [PATCH] pass fmode_t to blkdev_put()\n  [PATCH] kill the unused bsize on the send side of /dev/loop\n  [PATCH] trim file propagation in block/compat_ioctl.c\n  [PATCH] end of methods switch: remove the old ones\n  [PATCH] switch sr\n  [PATCH] switch sd\n  [PATCH] switch ide-scsi\n  [PATCH] switch tape_block\n  [PATCH] switch dcssblk\n  [PATCH] switch dasd\n  [PATCH] switch mtd_blkdevs\n  [PATCH] switch mmc\n  ...\n"
    },
    {
      "commit": "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47",
      "tree": "af19ed28db83e8f52690872ac99336da1cf2fd3b",
      "parents": [
        "5b34653963de7a6d0d8c783527457d68fddc60fb",
        "fd217f4d70172c526478f2bc76859e909fdfa674"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:22:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:22:40 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (46 commits)\n  [PATCH] fs: add a sanity check in d_free\n  [PATCH] i_version: remount support\n  [patch] vfs: make security_inode_setattr() calling consistent\n  [patch 1/3] FS_MBCACHE: don\u0027t needlessly make it built-in\n  [PATCH] move executable checking into -\u003epermission()\n  [PATCH] fs/dcache.c: update comment of d_validate()\n  [RFC PATCH] touch_mnt_namespace when the mount flags change\n  [PATCH] reiserfs: add missing llseek method\n  [PATCH] fix -\u003ellseek for more directories\n  [PATCH vfs-2.6 6/6] vfs: add LOOKUP_RENAME_TARGET intent\n  [PATCH vfs-2.6 5/6] vfs: remove LOOKUP_PARENT from non LOOKUP_PARENT lookup\n  [PATCH vfs-2.6 4/6] vfs: remove unnecessary fsnotify_d_instantiate()\n  [PATCH vfs-2.6 3/6] vfs: add __d_instantiate() helper\n  [PATCH vfs-2.6 2/6] vfs: add d_ancestor()\n  [PATCH vfs-2.6 1/6] vfs: replace parent \u003d\u003d dentry-\u003ed_parent by IS_ROOT()\n  [PATCH] get rid of on-stack dentry in udf\n  [PATCH 2/2] anondev: switch to IDA\n  [PATCH 1/2] anondev: init IDR statically\n  [JFFS2] Use d_splice_alias() not d_add() in jffs2_lookup()\n  [PATCH] Optimise NFS readdir hack slightly.\n  ...\n"
    },
    {
      "commit": "b4d0b08a4c3947c6ac004c9d83154ec5999c1861",
      "tree": "c0f3ece1274d868c6288cc2843918c31b4885f43",
      "parents": [
        "33217379becdee25021cabb25032b3bf703d0e96",
        "e45c5405e12c7cef93940cb7a541ab459ec0096a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:14:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:14:45 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:\n  9p: fix sparse warnings\n  9p: rdma: RDMA Transport Support for 9P\n  9p: fix format warning\n  9p: fix debug build error\n"
    },
    {
      "commit": "33217379becdee25021cabb25032b3bf703d0e96",
      "tree": "27cfbb722a523950ec8c9f616f28a1767498601a",
      "parents": [
        "feeedc6c820e1026453ad865076cee435f24d30a",
        "30bc4dfd3b64eb1fbefe2c63e30d8fc129273e20"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:14:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:14:23 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: clean up expkey_parse error cases\n  nfsd: Drop reference in expkey_parse error cases\n  nfsd: Fix memory leak in nfsd_getxattr\n  NFSD: Fix BUG during NFSD shutdown processing\n"
    },
    {
      "commit": "be07c4ed4043ab8c26f222348136141335e47a2f",
      "tree": "6c9dc77098a4cfe4212091aaecd2350c7b301733",
      "parents": [
        "9f818b4ac04f53458d0354950b4f229f54be4dbf"
      ],
      "author": {
        "name": "Duane Griffin",
        "email": "duaneg@dghda.com",
        "time": "Wed Oct 22 14:15:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:02 2008 -0700"
      },
      "message": "jbd: abort instead of waiting for nonexistent transactions\n\nThe __log_wait_for_space function sits in a loop checkpointing\ntransactions until there is sufficient space free in the journal.\nHowever, if there are no transactions to be processed (e.g.  because the\nfree space calculation is wrong due to a corrupted filesystem) it will\nnever progress.\n\nCheck for space being required when no transactions are outstanding and\nabort the journal instead of endlessly looping.\n\nThis patch fixes the bug reported by Sami Liedes at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10976\n\nSigned-off-by: Duane Griffin \u003cduaneg@dghda.com\u003e\nTested-by: Sami Liedes \u003csliedes@cc.hut.fi\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9f818b4ac04f53458d0354950b4f229f54be4dbf",
      "tree": "2f70be32757ea6b494e4272b7779950b282ed03c",
      "parents": [
        "2d7c820e56ce83b23daee9eb5343730fb309418e"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Wed Oct 22 14:15:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:02 2008 -0700"
      },
      "message": "jbd: test BH_Write_EIO to detect errors on metadata buffers\n\n__try_to_free_cp_buf(), __process_buffer(), and __wait_cp_io() test\nBH_Uptodate flag to detect write I/O errors on metadata buffers.  But by\ncommit 95450f5a7e53d5752ce1a0d0b8282e10fe745ae0 \"ext3: don\u0027t read inode\nblock if the buffer has a write error\"(*), BH_Uptodate flag can be set to\ninode buffers with BH_Write_EIO in order to avoid reading old inode data.\nSo now, we have to test BH_Write_EIO flag of checkpointing inode buffers\ninstead of BH_Uptodate.  This patch does it.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Eric Sandeen \u003csandeen@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": "2d7c820e56ce83b23daee9eb5343730fb309418e",
      "tree": "a64db3f90c8826a03c591be492faaf64ab7bf14a",
      "parents": [
        "4afe978530702c934dfdb11f54073136818b2119"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Wed Oct 22 14:15:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:01 2008 -0700"
      },
      "message": "ext3: add checks for errors from jbd\n\nIf the journal has aborted due to a checkpointing failure, we have to\nkeep the contents of the journal space.  Otherwise, the filesystem will\nlose uncheckpointed metadata completely and become inconsistent.  To\navoid this, we need to keep needs_recovery flag if checkpoint has\nfailed.\n\nWith this patch, ext3_put_super() detects a checkpointing failure from\nthe return value of journal_destroy(), then it invokes ext3_abort() to\nmake the filesystem read only and keep needs_recovery flag.  Errors\nfrom journal_flush() are also handled by this patch in some places.\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4afe978530702c934dfdb11f54073136818b2119",
      "tree": "5f7fb9539b46c0b390157f55c84017e14b7f605c",
      "parents": [
        "66f50ee3cee4c9d98eea0add6f439e6e5e0ca4a5"
      ],
      "author": {
        "name": "Hidehiro Kawai",
        "email": "hidehiro.kawai.ez@hitachi.com",
        "time": "Wed Oct 22 14:15:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:01 2008 -0700"
      },
      "message": "jbd: fix error handling for checkpoint io\n\nWhen a checkpointing IO fails, current JBD code doesn\u0027t check the error\nand continue journaling.  This means latest metadata can be lost from both\nthe journal and filesystem.\n\nThis patch leaves the failed metadata blocks in the journal space and\naborts journaling in the case of log_do_checkpoint().  To achieve this, we\nneed to do:\n\n1. don\u0027t remove the failed buffer from the checkpoint list where in\n   the case of __try_to_free_cp_buf() because it may be released or\n   overwritten by a later transaction\n2. log_do_checkpoint() is the last chance, remove the failed buffer\n   from the checkpoint list and abort the journal\n3. when checkpointing fails, don\u0027t update the journal super block to\n   prevent the journaled contents from being cleaned.  For safety,\n   don\u0027t update j_tail and j_tail_sequence either\n4. when checkpointing fails, notify this error to the ext3 layer so\n   that ext3 don\u0027t clear the needs_recovery flag, otherwise the\n   journaled contents are ignored and cleaned in the recovery phase\n5. if the recovery fails, keep the needs_recovery flag\n6. prevent cleanup_journal_tail() from being called between\n   __journal_drop_transaction() and journal_abort() (a race issue\n   between journal_flush() and __log_wait_for_space()\n\nSigned-off-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59c7572e82d69483a66eaa67b46548baeb69ecf4",
      "tree": "a395888324ac02149f77920e06337e8612f37535",
      "parents": [
        "5aa140c2deca3701238d5acddf436ad7b02664c7"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 14:49:39 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:54:05 2008 +0400"
      },
      "message": "proc: remove fs/proc/proc_misc.c\n\nNow that everything was moved to their more or less expected places,\napply rm(1).\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "5aa140c2deca3701238d5acddf436ad7b02664c7",
      "tree": "25cd153f4592aa66fd6459a650fab3b48052f066",
      "parents": [
        "6d80e53f0056178c63fa8fbf3e8de40fb4df5f50"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 14:36:31 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:51:22 2008 +0400"
      },
      "message": "proc: move /proc/vmcore creation to fs/proc/vmcore.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "6d80e53f0056178c63fa8fbf3e8de40fb4df5f50",
      "tree": "1b98863c649b0a5593412f08afc0045c3c50137d",
      "parents": [
        "97ce5d6dcb07c403c0fc6001b755aacc38b5d7ff"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 14:26:12 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:48:31 2008 +0400"
      },
      "message": "proc: move pagecount stuff to fs/proc/page.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "97ce5d6dcb07c403c0fc6001b755aacc38b5d7ff",
      "tree": "6b8ff98d11bf8efae963e19a40f4ed902e40656c",
      "parents": [
        "b5aadf7f14c1acc94956aa257e018e9de3881f41"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 14:14:19 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:32:38 2008 +0400"
      },
      "message": "proc: move all /proc/kcore stuff to fs/proc/kcore.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "b5aadf7f14c1acc94956aa257e018e9de3881f41",
      "tree": "5add08715374d105dc16f4135e2445e4a3b65a17",
      "parents": [
        "3b5d5c6b0ccba733a313f8752ebc3f8015628ba3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 13:23:43 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:06:12 2008 +0400"
      },
      "message": "proc: move /proc/schedstat boilerplate to kernel/sched_stats.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "3b5d5c6b0ccba733a313f8752ebc3f8015628ba3",
      "tree": "7277d87d64b8be615013457ab0cdb178d41a9efe",
      "parents": [
        "31d85ab28e71b0c938e0ef48af45747e80d99b53"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 13:19:27 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 18:03:13 2008 +0400"
      },
      "message": "proc: move /proc/modules boilerplate to kernel/module.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "31d85ab28e71b0c938e0ef48af45747e80d99b53",
      "tree": "1cd97bee97abb008dd3591da2a001e3e85356fb6",
      "parents": [
        "5c9fe6281b75832e8d2555ec8700ea763d9a865e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 12:55:38 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 17:57:37 2008 +0400"
      },
      "message": "proc: move /proc/diskstats boilerplate to block/genhd.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5c9fe6281b75832e8d2555ec8700ea763d9a865e",
      "tree": "a8ef6a23598322e1f93ba5e7ed8d24981f73ac8b",
      "parents": [
        "b6aa44ab698c7df9d951d3eb45c4fcb8ba68fb25"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:19:42 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 17:35:04 2008 +0400"
      },
      "message": "proc: move /proc/zoneinfo boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6aa44ab698c7df9d951d3eb45c4fcb8ba68fb25",
      "tree": "3ddf82053cc10e4811e77918fb00aad1c09c94c1",
      "parents": [
        "74e2e8e8ce7b3c0f878a349f9fa6cf2831548eef"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:17:48 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 17:12:51 2008 +0400"
      },
      "message": "proc: move /proc/vmstat boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74e2e8e8ce7b3c0f878a349f9fa6cf2831548eef",
      "tree": "1de0e09b982c8c152f93b74842587e4c56df5484",
      "parents": [
        "8f32f7e5ac2ed11b0659b6b55af926f3d58ffd9d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:15:36 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 16:33:29 2008 +0400"
      },
      "message": "proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "8f32f7e5ac2ed11b0659b6b55af926f3d58ffd9d",
      "tree": "fa577deb5c664169ba3f7715006657fb7834ac32",
      "parents": [
        "5f6a6a9c4e4d790aae55cb412a7643329057c5e0"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 04:13:52 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 16:12:04 2008 +0400"
      },
      "message": "proc: move /proc/buddyinfo boilerplate to mm/vmstat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "5f6a6a9c4e4d790aae55cb412a7643329057c5e0",
      "tree": "06b984b29e2e100874a4627ba6e22eb3e96a2640",
      "parents": [
        "7b3c3a50a3e0ea46815150d420fa276ac254572b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 03:50:47 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:48:28 2008 +0400"
      },
      "message": "proc: move /proc/vmallocinfo to mm/vmalloc.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b3c3a50a3e0ea46815150d420fa276ac254572b",
      "tree": "a49118d99ae5bac99b660d8a44c20df2b15a7037",
      "parents": [
        "a0ec95a8e69792e4ad642daac037c9b01ea3e2cd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 02:42:17 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:20:06 2008 +0400"
      },
      "message": "proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c\n\nLose dummy -\u003ewrite hook in case of SLUB, it\u0027s possible now.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "a0ec95a8e69792e4ad642daac037c9b01ea3e2cd",
      "tree": "ec8f483871151c152c198b605ab7ebd6046271b8",
      "parents": [
        "d6917e19f3fda8e1f88bc23ddceed952927bd716"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Oct 06 00:59:10 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:17:27 2008 +0400"
      },
      "message": "proc: move /proc/slab_allocators boilerplate to mm/slab.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "d6917e19f3fda8e1f88bc23ddceed952927bd716",
      "tree": "b9788090ce4661f6e0339cd7b937d36ef5027b58",
      "parents": [
        "df8106dbb59a8c167ea16631059ecb5f7d77da13"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Oct 05 00:08:44 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:15:46 2008 +0400"
      },
      "message": "proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "df8106dbb59a8c167ea16631059ecb5f7d77da13",
      "tree": "05b4eab6428a93b66dc48dda4e8124af2f93c1fe",
      "parents": [
        "f500975a3f3ecf3611d79f1d933906753460b9f2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Oct 05 00:01:56 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:14:05 2008 +0400"
      },
      "message": "proc: move /proc/stat to fs/proc/stat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "f500975a3f3ecf3611d79f1d933906753460b9f2",
      "tree": "df3728998ca1638ecbccf4ab6f401f9a2cbdba88",
      "parents": [
        "8591cf43224980a0bc9216a4e50b0a740f8cba35"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 23:53:21 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:07:31 2008 +0400"
      },
      "message": "proc: move rest of /proc/partitions code to block/genhd.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8591cf43224980a0bc9216a4e50b0a740f8cba35",
      "tree": "f3af8c5a36528b961c95354662c38a5f06d406aa",
      "parents": [
        "fe2510426a02dd2fefcb0389b60f77cbe0462289"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 23:40:23 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:05:11 2008 +0400"
      },
      "message": "proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "fe2510426a02dd2fefcb0389b60f77cbe0462289",
      "tree": "adf11d28a4a90e0e46be006c4308724ef4d21859",
      "parents": [
        "d8ba7a363393f803c93c8cffabd6d0362618bc2a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 23:11:37 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:02:18 2008 +0400"
      },
      "message": "proc: move /proc/devices code to fs/proc/devices.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "d8ba7a363393f803c93c8cffabd6d0362618bc2a",
      "tree": "331010c221eb9dfe396b2e6958a08f0fb695e117",
      "parents": [
        "ae048112c099b0f3adb57f7c0b3a49bc62244609"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 22:34:18 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:37:00 2008 +0400"
      },
      "message": "proc: move rest of /proc/locks to fs/locks.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "ae048112c099b0f3adb57f7c0b3a49bc62244609",
      "tree": "2ac80f435ab8d5a30e5eb461baa5d86050ec5c55",
      "parents": [
        "659689280ad91d31235db79cda6c7c799c4d3781"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 14:39:12 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:35:08 2008 +0400"
      },
      "message": "proc: move /proc/kmsg creation to fs/proc/kmsg.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "659689280ad91d31235db79cda6c7c799c4d3781",
      "tree": "a97cc862cba76fe05960761c17c9772ae3e1e673",
      "parents": [
        "6e62775ece1c83a84d86df44cfd8ea3e6c96ce23"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 14:30:53 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:32:59 2008 +0400"
      },
      "message": "proc: remove remnants of -\u003eread_proc in proc_misc.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "6e62775ece1c83a84d86df44cfd8ea3e6c96ce23",
      "tree": "2eac2401fd8ca9372e6b15cc656a87d0b75856fc",
      "parents": [
        "cf9887f102541b8a0adb73f7da9c28d090622010"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 14:28:09 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:30:41 2008 +0400"
      },
      "message": "proc: move /proc/execdomains to kernel/exec_domain.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "cf9887f102541b8a0adb73f7da9c28d090622010",
      "tree": "c06fa077c8d8fcf6d88a267172a6322619e5f7e0",
      "parents": [
        "6827400713fa22312ca3b4f47b0e64871c88040c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 14:13:59 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:29:04 2008 +0400"
      },
      "message": "proc: switch /proc/cmdline to seq_file\n\nand move it to fs/proc/cmdline.c while I\u0027m at it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "6827400713fa22312ca3b4f47b0e64871c88040c",
      "tree": "a42a02ce68671443576482c5e38bd42735383579",
      "parents": [
        "4c150f6c30f5129bbce5c41568a285b1f7ca8d8b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 14:08:37 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:27:09 2008 +0400"
      },
      "message": "proc: move /proc/filesystems to fs/filesystems.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "4c150f6c30f5129bbce5c41568a285b1f7ca8d8b",
      "tree": "2ffbd31a47cd326c059dfb970a05d789032ddb5b",
      "parents": [
        "813dcf7a6e642feb1ea566b96ce2912249d2b57d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Oct 04 13:49:34 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:25:35 2008 +0400"
      },
      "message": "proc: move /proc/stram to m68k-specific code\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "813dcf7a6e642feb1ea566b96ce2912249d2b57d",
      "tree": "80eb42f9c8d5673f35d9db8786dc251201e48d6f",
      "parents": [
        "b457d151613873ea035de0c7348abc3d4b6efd34"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 03 22:42:36 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:24:03 2008 +0400"
      },
      "message": "proc: move /proc/hardware to m68k-specific code\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "b457d151613873ea035de0c7348abc3d4b6efd34",
      "tree": "b3351dc2f04d37e0ac42bbdbabcd96eab08ad7b9",
      "parents": [
        "e1759c215bee5abbcb6cb066590ab20905154ed5"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 03 11:53:19 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 14:19:58 2008 +0400"
      },
      "message": "proc: switch /proc/version to seq_file\n\nand move it to fs/proc/version.c while I\u0027m at it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "e1759c215bee5abbcb6cb066590ab20905154ed5",
      "tree": "14a43e259767082706dab112292ff92e13ce42a4",
      "parents": [
        "9617760287eec9091d26e6967bd3e4194de18f97"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Oct 15 23:50:22 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 13:52:40 2008 +0400"
      },
      "message": "proc: switch /proc/meminfo to seq_file\n\nand move it to fs/proc/meminfo.c while I\u0027m at it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "9617760287eec9091d26e6967bd3e4194de18f97",
      "tree": "8a13097b1c3e86f989f9c067bc76a451362a1c13",
      "parents": [
        "5b3acc8de8b2bc459afae6e09ada45c7e5b11bbf"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 03 02:38:18 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 13:48:01 2008 +0400"
      },
      "message": "proc: switch /proc/uptime to seq_file\n\nand move it to fs/proc/uptime.c while I\u0027m at it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "5b3acc8de8b2bc459afae6e09ada45c7e5b11bbf",
      "tree": "295a8d4401fb63e7c0f32090f1fafce1835765d6",
      "parents": [
        "6c2f91e077f1b60e7f83b7ee044f965f469cfdb3"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 03 02:21:47 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 13:45:28 2008 +0400"
      },
      "message": "proc: switch /proc/loadavg to seq_file\n\nand move it to fs/proc/loadavg.c while I\u0027m at it.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "6c2f91e077f1b60e7f83b7ee044f965f469cfdb3",
      "tree": "98e31d603d80a03325e6c0903e9d352823b04e30",
      "parents": [
        "1e0edd3f67d5b5c04ef6c0908aac8bd70dffc6f6"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Sep 13 19:51:30 2008 -0700"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 13:34:38 2008 +0400"
      },
      "message": "proc: use WARN() rather than printk+backtrace\n\nUse WARN() rather than a printk() + backtrace();\nthis gives a more standard format message as well as complete\ninformation (including line numbers etc) that will be collected\nby kerneloops.org\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "1e0edd3f67d5b5c04ef6c0908aac8bd70dffc6f6",
      "tree": "e2b7c1f2b3ecfeed13f53fa940e5f41062dca347",
      "parents": [
        "5bcd7ff9e1690dbdbccb2a1cb3c2ea8b8381c435"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 17 05:07:44 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 13:32:31 2008 +0400"
      },
      "message": "proc: spread __init\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    }
  ],
  "next": "5bcd7ff9e1690dbdbccb2a1cb3c2ea8b8381c435"
}
