)]}'
{
  "log": [
    {
      "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": "0465fc0a1c42e18438d391f3a7e661493a9ad68e",
      "tree": "ceda9f9521af852e2be8fb974a45676700f2f592",
      "parents": [
        "4b25a37e2093146c1f9aa436b832b7d4ef880ca4"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Fri Mar 16 13:38:09 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:03 2007 -0700"
      },
      "message": "[PATCH] ufs2: tindirect truncate fix\n\nDuring modification of code to support UFS2 writing, the case with\n\"three indirect\" blocks in truncate path was missed, this patch fixes\nthis situation.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nAcked-by: 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": "4b25a37e2093146c1f9aa436b832b7d4ef880ca4",
      "tree": "435db82996e6114eea94f8315c699c7c9904615b",
      "parents": [
        "5431bf97ce69065ed07de1ff12543d0800817b83"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Fri Mar 16 13:38:09 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:03 2007 -0700"
      },
      "message": "[PATCH] ufs: zeroize the rest of block in truncate\n\nThis patch fix behaviour in such test scenario:\n\n  lseek(fd, BIG_OFFSET)\n  write(fd, buf, sizeof(buf))\n  truncate(BIG_OFFSET)\n  truncate(BIG_OFFSET + sizeof(buf))\n  read(fd, buf...)\n\nBecause of if file big enough(BIG_OFFSET) we start allocate space by block,\nordinary block size \u003e page size, so we should zeroize the rest of block in\ntruncate(except last framgnet, about which VFS should care), to not get\ngarbage, when we extend file.\n\nAlso patch corrects conversion from pointer to block to physical block number,\nthis helps in case of not common used UFS types.\n\nAnd add to debug output inode number.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf",
      "tree": "e1a9804a8af427f700aaba4b386cf8679b317e83",
      "parents": [
        "92e1d5be91a0e3ffa5c4697eeb09b2aa22792122"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Feb 12 00:55:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:46 2007 -0800"
      },
      "message": "[PATCH] mark struct inode_operations const 3\n\nMany struct inode_operations in the kernel can be \"const\".  Marking them const\nmoves these to the .rodata section, which avoids false sharing with potential\ndirty data.  In addition it\u0027ll catch accidental writes at compile time to\nthese shared resources.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54fb996ac15c4014fa4d6b0ec8e42da134204897",
      "tree": "ee7a98270cabefc996a13691a7c9d63141a8d3a9",
      "parents": [
        "3313e29267414e4e3bf0d3de1caf9cb439b64aaf"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Mon Feb 12 00:54:32 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:40 2007 -0800"
      },
      "message": "[PATCH] ufs2 write: block allocation update\n\nPatch adds ability to work with 64bit metadata, this made by replacing work\nwith 32bit pointers by inline functions.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8682164a66325cab07620082eb7f413b547f4b4a",
      "tree": "c8e7b5456a71b58506b182ffa0997271d8ec03fa",
      "parents": [
        "a685e26fff387db350966f88eaad515bf41c4705"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Mon Jan 29 13:19:55 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 30 08:26:45 2007 -0800"
      },
      "message": "[PATCH] ufs: truncate negative to unsigned fix\n\nDuring ufs_trunc_direct which is subroutine of ufs::truncate, we try the first\nof all free parts of block and then whole blocks.  But we calculate size of\nblock\u0027s part to free in the wrong way.\n\nThis may cause bad update of used blocks and fragments statistic, and you can\ngot report that you have free 32T on 1Gb partition.\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@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecdc63948763586e101108dfe1ba316ec069fe39",
      "tree": "a127e8fef9ce30007a357cff51f092ab500f8e7f",
      "parents": [
        "c37336b078ba9d2ff38c535b194996a7ad6e69f8"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sun Aug 27 01:23:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 27 11:01:31 2006 -0700"
      },
      "message": "[PATCH] ufs: truncate correction\n\n1) When we allocated last fragment in ufs_truncate, we read page, check\n   if block mapped to address, and if not trying to allocate it.  This is\n   wrong behaviour, fragment may be NOT allocated, but mapped, this\n   happened because of \"block map\" function not checked allocated fragment\n   or not, it just take address of the first fragment in the block, add\n   offset of fragment and return result, this is correct behaviour in\n   almost all situation except call from ufs_truncate.\n\n2) Almost all implementation of UFS, which I can investigate have such\n   \"defect\": if you have full disk, and try truncate file, for example 3GB\n   to 2MB, and have hole in this region, truncate return -ENOSPC.  I tried\n   evade from this problem, but \"block allocation\" algorithm is tied to\n   right value of i_lastfrag, and fix of this corner case may slow down of\n   ordinaries scenarios, so this patch makes behavior of \"truncate\"\n   operations similar to what other UFS implementations do.\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": "50aa4eb0b978f4a0283471c776ed812269ac8af5",
      "tree": "eab23004eac1e89ea87f189c95bdb7c9dbe93ca3",
      "parents": [
        "dd187a2603d9904ddc410441348f0cfc558a5233"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Sun Jun 25 05:47:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:03 2006 -0700"
      },
      "message": "[PATCH] ufs: i_blocks wrong count\n\nAt now UFS code uses DQUOT_* mechanism, but it also update inode-\u003ei_blocks\nmanually, this cause wrong i_blocks value.\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": "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": "09114eb8c53d2d3b2ff9523e011cb68b2e245dce",
      "tree": "c66d4590814072f91d74f185c798a3935d933209",
      "parents": [
        "e295cfcb2907ae4c5df57f5d4ada1ce6f3ae4657"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Fri Feb 03 03:04:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:04 2006 -0800"
      },
      "message": "[PATCH] ufs: fix hang during `rm\u0027\n\nThis fixes the code like this:\n\n\tbh \u003d sb_find_get_block (sb, tmp + j);\n\tif ((bh \u0026\u0026 DATA_BUFFER_USED(bh)) || tmp !\u003d fs32_to_cpu(sb, *p)) {\n\t\tretry \u003d 1;\n\t\tbrelse (bh);\n\t\tgoto next1;\n\t}\n\tbforget (bh);\n\nsb_find_get_block() ordinarily returns a buffer_head with b_count\u003e\u003d2, and\nthis code assume that in case if \"b_count\u003e1\" buffer is used, so this caused\ninfinite loop.\n\n(akpm: that is-the-buffer-busy code is incomprehensible.  Good riddance.  Use\nof block_truncate_page() seems sane).\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": "096125f31ae3aa2c7271463b9986dd228e0da089",
      "tree": "2a6f0b066acf1031ffffca98a44c870bcead23b4",
      "parents": [
        "53778ffde601c962ad9250c4998df7de6f428246"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 06 15:19:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:56 2005 -0700"
      },
      "message": "[PATCH] Change ll_rw_block() calls in UFS\n\nWe need to be sure that current data are sent to disk.  Hence we call\nll_rw_block() with SWRITE.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\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"
    }
  ]
}
