)]}'
{
  "log": [
    {
      "commit": "788257d6101d986ac8f2741aaa35974af47f574c",
      "tree": "332d877e09d8b5de6a4bdfba8111dd04e84a722b",
      "parents": [
        "9a311b96c3065f362e3348cb5d7af1a57ca6bff9"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Mon Jan 24 10:14:12 2011 +0100"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Mar 02 22:27:48 2011 +0100"
      },
      "message": "ufs: remove the BKL\n\nThis introduces a new per-superblock mutex in UFS to replace\nthe big kernel lock. I have been careful to avoid nested\ncalls to lock_ufs and to get the lock order right with\nrespect to other mutexes, in particular lock_super.\n\nI did not make any attempt to prove that the big kernel\nlock is not needed in a particular place in the code,\nwhich is very possible.\n\nThe mutex has a significant performance impact, so it is only\nused on SMP or PREEMPT configurations.\n\nAs Nick Piggin noticed, any allocation inside of the lock\nmay end up deadlocking when we get to ufs_getfrag_block\nin the reclaim task, so we now use GFP_NOFS.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nTested-by: Nick Bowler \u003cnbowler@elliptictech.com\u003e\nCc: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nCc: Nick Piggin \u003cnpiggin@gmail.com\u003e\n"
    },
    {
      "commit": "9cb569d601e0b93e01c20a22872270ec663b75f6",
      "tree": "80b2568fae48018806e82f8884062dae8a5494ae",
      "parents": [
        "87e99511ea54510ffb60b98001d108794d5037f8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Aug 11 17:06:24 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 01:09:01 2010 -0400"
      },
      "message": "remove SWRITE* I/O types\n\nThese flags aren\u0027t real I/O types, but tell ll_rw_block to always\nlock the buffer instead of giving up on a failed trylock.\n\nInstead add a new write_dirty_buffer helper that implements this semantic\nand use it from the existing SWRITE* callers.  Note that the ll_rw_block\ncode had a bug where it didn\u0027t promote WRITE_SYNC_PLUG properly, which\nthis patch fixes.\n\nIn the ufs code clean up the helper that used to call ll_rw_block\nto mirror sync_dirty_buffer, which is the function it implements for\ncompound buffers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e542059884bb6d651d7ffc64eacedbab2b64078c",
      "tree": "336dc9a9b9fec99b9e744b2f754a27606e40eb49",
      "parents": [
        "bdc807871d58285737d50dc6163d0feb72cb0dc2"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@gentoo.org",
        "time": "Fri Feb 08 04:21:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:39 2008 -0800"
      },
      "message": "drop linux/ufs_fs.h from userspace export and relocate it to fs/ufs/ufs_fs.h\n\nPer previous discussions about cleaning up ufs_fs.h, people just want\nthis straight up dropped from userspace export.  The only remaining\nconsumer (silo) has been fixed a while ago to not rely on this header.\nThis allows use to move it completely from include/linux/ to fs/ufs/\nseeing as how the only in-kernel consumer is fs/ufs/.\n\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Jan Kara \u003cjack@ucw.cz\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": "bcd6d4ecf6868ed57d4daae5d48e52d0752566d2",
      "tree": "c683016ae6fa2800070402574490aa6f9ad71867",
      "parents": [
        "3542ae4c17bb2c86e5658728ff73b3d5ca44532e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Oct 16 23:26:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:51 2007 -0700"
      },
      "message": "ufs: move non-layout parts of ufs_fs.h to fs/ufs/\n\nMove prototypes and in-core structures to fs/ufs/ similar to what most\nother filesystems already do.\n\nI made little modifications: move also ufs debug macros and\nmount options constants into fs/ufs/ufs.h, this stuff\nalso private for ufs.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2",
      "tree": "8bbfe5072279227cc50a941ad4813908082426a1",
      "parents": [
        "714b8171af9c930a59a0da8f6fe50518e70ab035"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun May 06 14:49:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "mm: make read_cache_page synchronous\n\nEnsure pages are uptodate after returning from read_cache_page, which allows\nus to cut out most of the filesystem-internal PageUptodate calls.\n\nI didn\u0027t have a great look down the call chains, but this appears to fixes 7\npossible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in\necryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in\nblock2mtd.  All depending on whether the filler is async and/or can return\nwith a !uptodate page.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44aa5359be589f9cbe9cf0d5c97e22b27a04c7d3",
      "tree": "d69dc626068b45e62f2456b1d7ab7ca08aff018f",
      "parents": [
        "3524de1c7953e7a22c43b9214ffc3680af6f8edb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Aug 13 01:54:30 2006 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 10 16:15:34 2006 -0700"
      },
      "message": "[PATCH] ufs endianness annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "06fa45d3a19c6fbfccbf295e9f08087492338631",
      "tree": "24cc6843b98272e8ef5a8a1c78ef5b452f4a2d84",
      "parents": [
        "1fb32b7bd8203d0175649a75ede3ee7634d6a941"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sat Aug 05 12:13:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:46 2006 -0700"
      },
      "message": "[PATCH] ufs: handle truncated pages\n\nufs_get_locked_page is called twice in ufs code, one time in ufs_truncate\npath(we allocated last block), and another time when fragments are\nreallocated.  In ideal world in the second case on allocation/free block\nlayer we should not know that things like `truncate\u0027 exists, but now with\nsuch crutch like ufs_get_locked_page we can (or should?) skip truncated\npages.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1fb32b7bd8203d0175649a75ede3ee7634d6a941",
      "tree": "1c0b7bd06835ce37dc2fc18a95fe3fe22c2ce556",
      "parents": [
        "e91467ecd1ef381377fd327c0ded922835ec52ab"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sat Aug 05 12:13:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:46 2006 -0700"
      },
      "message": "[PATCH] ufs: ufs_get_locked_page() race fix\n\nAs discussed earlier:\nhttp://lkml.org/lkml/2006/6/28/136\nthis patch fixes such issue:\n\n`ufs_get_locked_page\u0027 takes page from cache\nafter that `vmtruncate\u0027 takes page and deletes it from cache\n`ufs_get_locked_page\u0027 locks page, and reports about EIO error.\n\nAlso because of find_lock_page always return valid page or NULL, we have no\nneed to check it if page not NULL.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "10e5dce07e6f8f9cea1b54161a888bb099484f88",
      "tree": "9c7949cf82763344d86ae302748f8e1d278b565a",
      "parents": [
        "eb28931e4a2c89e53d2b0c1a02a843240bff0806"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sat Jul 01 04:36:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jul 01 09:56:03 2006 -0700"
      },
      "message": "[PATCH] ufs: truncate should allocate block for last byte\n\nThis patch fixes buggy behaviour of UFS\nin such kind of scenario:\nopen(, O_TRUNC...)\nftruncate(, 1024)\nftruncate(, 0)\n\nSuch a scenario causes ufs_panic and remount read-only.  This happen\nbecause of according to specification UFS should always allocate block for\nlast byte, and many parts of our implementation rely on this, but\n`ufs_truncate\u0027 doesn\u0027t care about this.\n\nTo make possible return error code and to know about old size, this patch\nremoves `truncate\u0027 from ufs inode_operations and uses `setattr\u0027 method to\ncall ufs_truncate.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "098d5af7be694c66af44093f7217da3d22af1057",
      "tree": "6bd0fddb63e63bab540b14edc5b7591abc2d91ba",
      "parents": [
        "ee3ffd6c126323693b3b32a71a1f1acfce30bd66"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sun Jun 25 05:47:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:04 2006 -0700"
      },
      "message": "[PATCH] ufs: ubh_ll_rw_block cleanup\n\nIn ufs code there is function: ubh_ll_rw_block, it has parameter how many\nufs_buffer_head it should handle, but it always called with \"1\" on the place\nof this parameter.  This patch removes unused parameter of \"ubh_ll_wr_block\".\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abf5d15fd2e52517dd56a17a846d5a1f900b7db4",
      "tree": "ea537760c201cea57b468044dc733e06781ece2b",
      "parents": [
        "5afb3145c9a733166174e1f5a07c46410b5c4091"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sun Jun 25 05:47:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:03 2006 -0700"
      },
      "message": "[PATCH] ufs: easy debug\n\nCurrently to turn on debug mode \"user\" has to edit ~10 files, to turn off he\nhas to do it again.\n\nThis patch introduce such changes:\n1)turn on(off) debug messages via \".config\"\n2)remove unnecessary duplication of code\n3)make \"UFSD\" macros more similar to function\n4)fix some compiler warnings\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9695ef16ed4e00b59303f39f9a4a422a2c6a3b89",
      "tree": "fba8946e86a523a5d53936cf5ec9e0a150037f73",
      "parents": [
        "b71034e5e67d1577424cebe7bbb7d0ce134a4cd8"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sun Jun 25 05:47:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:02 2006 -0700"
      },
      "message": "[PATCH] ufs: wrong type cast\n\nThere are two ugly macros in ufs code:\n#define UCPI_UBH ((struct ufs_buffer_head *)ucpi)\n#define USPI_UBH ((struct ufs_buffer_head *)uspi)\nwhen uspi looks like\nstruct {\nstruct ufs_buffer_head ;\n}\nand USPI_UBH has some sence,\nucpi looks like\nstruct {\nstruct not_ufs_buffer_head;\n}\n\nTo prevent bugs in future, this patch convert macros to inline function and\nfix \"ucpi\" structure.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2061df0f89201c0abeb4c17d343309c9fae5b861",
      "tree": "a641b77e6197e6416dc043452db347dbfbb4bd3e",
      "parents": [
        "a9adb8dbcd7a337620862106f8c17aeb5e7278c7"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sun Jun 25 05:47:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:01 2006 -0700"
      },
      "message": "[PATCH] ufs: ufs_trunc_indirect: infinite cycle\n\nCurrently, ufs write support have two sets of problems: work with files and\nwork with directories.\n\nThis series of patches should solve the first problem.\n\nThis patch is similar to http://lkml.org/lkml/2006/1/17/61 this patch\ncomplements it.\n\nThe situation the same: in ufs_trunc_(not direct), we read block, check if\ncount of links to it is equal to one, if so we finish cycle, if not\ncontinue.  Because of \"count of links\" always \u003e\u003d2 this operation cause\ninfinite cycle and hang up the kernel.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
