)]}'
{
  "log": [
    {
      "commit": "b36a261e8c0ab323d04db9cdd1f6bb4c273c4b32",
      "tree": "00c90c5fa556f335338f4f61c808d4dfe502bb74",
      "parents": [
        "0964f6a27b3574d9210c59ec883cbb3fff78a78d"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon May 14 17:55:51 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Sun May 20 20:25:59 2012 +0300"
      },
      "message": "UBI: Kill data type hint\n\nWe do not need this feature and to our shame it even was not working\nand there was a bug found very recently.\n\t-- Artem Bityutskiy\n\nWithout the data type hint UBI2 (fastmap) will be easier to implement.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "f70b7e52aa23c9aea5346b9730b402fb55f9079b",
      "tree": "20882b6e8345b8836d395248fd7f31fce7d09236",
      "parents": [
        "1baafd28dc17422f10be9b2a3a75432154e3abc7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:53:46 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:53:46 2012 +0300"
      },
      "message": "UBIFS: remove Kconfig debugging option\n\nHave the debugging stuff always compiled-in instead. It simplifies maintanance\na lot.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "d3b2578f56e0a77b9e261d83e9b5a0a666b82980",
      "tree": "99a4760399d97ffad28f0a7426682cbcd664056e",
      "parents": [
        "987226a5d3a356792650f8e9028132a79815f6ef"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 14:22:05 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: switch to I/O helpers\n\nSwitch the rest of direct UBI calls to UBIFS helper functions.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2b1844a8c934723134ee1ff313e51d0d281cdef1",
      "tree": "1c490adba95a54eb14f9b00890ce9b09050358f7",
      "parents": [
        "d808efb407e1a2cf83a8d21411157195f26bdef9"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 08:31:29 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:28 2011 +0300"
      },
      "message": "UBIFS: introduce helper functions for debugging checks and tests\n\nThis patch introduces helper functions for all debugging checks, so instead of\ndoing\n\nif (!(ubifs_chk_flags \u0026 UBIFS_CHK_GEN))\n\nwe now do\n\nif (!dbg_is_chk_gen(c))\n\nThis is a preparation to further changes where the flags will go away, and\nwe\u0027ll need to only change the helper functions, but the code which utilizes\nthem won\u0027t be touched.\n\nAt the same time this patch removes \u0027dbg_force_in_the_gaps()\u0027,\n\u0027dbg_force_in_the_gaps_enabled()\u0027, and dbg_failure_mode helpers for\nconsistency.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e11602ea3e43392904db7a579dc990062ebb7151",
      "tree": "3930553264a369773cc1f66aa33b790d17589a40",
      "parents": [
        "91c66083fca36cdf496e927ef8bea19e6b1bbdce"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 06 17:52:32 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:12 2011 +0300"
      },
      "message": "UBIFS: share the next_log_lnum helper\n\nWe\u0027ll need to use the \u0027next_log_lnum()\u0027 helper function from log.c in the fixup\ncode, so let\u0027s move it to misc.h. IOW, this is a preparation to the following\nfree space fixup changes.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b50b9f408502a2ea90459ae36ba8cdc9cc005cfe",
      "tree": "07c53213eaa3017282a5876eb34037fcff4a9441",
      "parents": [
        "8e10cd74342c7f5ce259cceca36f6eba084f5d58"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Apr 25 18:17:09 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 02 19:23:36 2011 +0300"
      },
      "message": "UBIFS: do not free write-buffers when in R/O mode\n\nCurrently UBIFS has a small optimization - it frees write-buffers when it is\nre-mounted from R/W mode to R/O mode. Of course, when it is mounted R/O, it\ndoes not allocate write-buffers as well.\n\nThis optimization is nice but it leads to subtle problems and complications\nin recovery, which I can reproduce using the integck test. The symptoms are\nthat after a power cut the file-system cannot be mounted if we first mount\nit R/O, and then re-mount R/W - \u0027ubifs_rcvry_gc_commit()\u0027 prints:\n\nUBIFS error (pid 34456): could not find an empty LEB\n\nAnalysis of the  problem.\n\nWhen mounting R/W, the reply process sets journal heads to buds [1], but\nwhen mounting R/O - it does not do this, because the write-buffers are not\nallocated. So \u0027ubifs_rcvry_gc_commit()\u0027 works completely differently for the\nsame file-system but for the following 2 cases:\n\n1. mounting R/W after a power cut and recover\n2. mounting R/O after a power cut, re-mounting R/W and run deferred recovery\n\nIn the former case, we have journal heads seeked to the a bud, in the latter\ncase, they are non-seeked (wbuf-\u003elnum \u003d\u003d -1). So in the latter case we do not\ntry to recover the GC LEB by garbage-collecting to the GC head, but we just\ntry to find an empty LEB, and there may be no empty LEBs, so we just fail.\nOn the other hand, in the former case (mount R/W), we are able to make a GC LEB\n(@c-\u003egc_lnum) by garbage-collecting.\n\nThus, let\u0027s remove this small nice optimization and always allocate\nwrite-buffers. This should not make too big difference - we have only 3\nof them, each of max. write unit size, which is usually 2KiB. So this is\nabout 6KiB of RAM for the typical case, and only when mounted R/O.\n\n[1]: Note, currently the replay process is setting (seeking) the journal heads\nto _some_ buds, not necessarily to the buds which had been the journal heads\nbefore the power cut happened. This will be fixed separately.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "2ef13294d29bcfb306e0d360f1b97f37b647b0c0",
      "tree": "877e1ece00c14de0f0d79e86b6480d284d309216",
      "parents": [
        "2680d722bf2c5f75225dd9acb3ec9e5a9e2652f4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Sep 19 18:34:26 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Sep 19 21:07:58 2010 +0300"
      },
      "message": "UBIFS: introduce new flags for RO mounts\n\nCommit 2fde99cb55fb9d9b88180512a5e8a5d939d27fec \"UBIFS: mark VFS SB RO too\"\nintroduced regression. This commit made UBIFS set the \u0027MS_RDONLY\u0027 flag in the\nVFS superblock when it switches to R/O mode due to an error. This was done\nto make VFS show the R/O UBIFS flag in /proc/mounts.\n\nHowever, several places in UBIFS relied on the \u0027MS_RDONLY\u0027 flag and assume this\nflag can only change when we re-mount. For example, \u0027ubifs_put_super()\u0027.\n\nThis patch introduces new UBIFS flag - \u0027c-\u003ero_mount\u0027 which changes only when\nwe re-mount, and preserves the way UBIFS was originally mounted (R/W or R/O).\nThis allows us to de-initialize UBIFS cleanly in \u0027ubifs_put_super()\u0027.\n\nThis patch also changes all \u0027ubifs_assert(!c-\u003ero_media)\u0027 assertions to\n\u0027ubifs_assert(!c-\u003ero_media \u0026\u0026 !c-\u003ero_mount)\u0027, because we never should write\nanything if the FS was mounter R/O.\n\nAll the places where we test for \u0027MS_RDONLY\u0027 flag in the VFS SB were changed\nand now we test the \u0027c-\u003ero_mount\u0027 flag instead, because it preserves the\noriginal UBIFS mount type, unlike the \u0027MS_RDONLY\u0027 flag.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2680d722bf2c5f75225dd9acb3ec9e5a9e2652f4",
      "tree": "af016ede5f300a33ddd3ad66a8c3c0e6bf05774e",
      "parents": [
        "8c893a5545ca772744376295690723dcb0b47d96"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Sep 17 16:44:28 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Sep 17 17:08:09 2010 +0300"
      },
      "message": "UBIFS: introduce new flag for RO due to errors\n\nThe R/O state may have various reasons:\n\n1. The UBI volume is R/O\n2. The FS is mounted R/O\n3. The FS switched to R/O mode because of an error\n\nHowever, in UBIFS we have only one variable which represents cases\n1 and 3 - \u0027c-\u003ero_media\u0027. Indeed, we set this to 1 if we switch to\nR/O mode due to an error, and then we test it in many places to\nmake sure that we stop writing as soon as the error happens.\n\nBut this is very unclean. One consequence of this, for example, is\nthat in \u0027ubifs_remount_fs()\u0027 we use \u0027c-\u003ero_media\u0027 to check whether\nwe are in R/O mode because on an error, and we print a message\nin this case. However, if we are in R/O mode because the media\nis R/O, our message is bogus.\n\nThis patch introduces new flag - \u0027c-\u003ero_error\u0027 which is set when\nwe switch to R/O mode because of an error. It also changes all\n\"if (c-\u003ero_media)\" checks to \"if (c-\u003ero_error)\" checks, because\nthis is what the checks actually mean. We do not need to check\nfor \u0027c-\u003ero_media\u0027 because if the UBI volume is in R/O mode, we\ndo not allow R/W mounting, and now writes can happen. This is\nguaranteed by VFS. But it is good to double-check this, so this\npatch also adds many \"ubifs_assert(!c-\u003ero_media)\" checks.\n\nIn the \u0027ubifs_remount_fs()\u0027 function this patch makes a bit more\nchanges - it fixes the error messages as well.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "77a7ae580c6cc8a0f0d5d7a7d61eb7e9fe8d99dc",
      "tree": "299adfb136ca146d9bbfd7e171351ab971c1b93d",
      "parents": [
        "d6d140097beb554daa967d3fb576e94ad2f82dcd"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 15 15:03:51 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 15 17:05:06 2009 +0300"
      },
      "message": "UBIFS: improve journal head debugging prints\n\nConvert the journal head integer into the head name when printing\ndebugging information.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "348709bad348d2fd013e1529b4cf5f220717c328",
      "tree": "e5ba0fb86c1c41d078c38f6ca67bda957241ef53",
      "parents": [
        "e3c3efc243462d67ba9fa7f67620dcbc4597bf0a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Aug 25 15:00:55 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 10 12:06:47 2009 +0300"
      },
      "message": "UBIFS: do not print scary error messages needlessly\n\nAt the moment UBIFS print large and scary error messages and\nflash dumps in case of nearly any corruption, even if it is\na recoverable corruption. For example, if the master node is\ncorrupted, ubifs_scan() prints error dumps, then UBIFS recovers\njust fine and goes on.\n\nThis patch makes UBIFS print scary error messages only in\nreal cases, which are not recoverable. It adds \u0027quiet\u0027 argument\nto the \u0027ubifs_scan()\u0027 function, so the caller may ask \u0027ubi_scan()\u0027\nnot to print error messages if the caller is able to do recovery.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Adrian Hunter \u003cAdrian.Hunter@nokia.com\u003e\n"
    },
    {
      "commit": "7d4e9ccb435e51e013e63abd340b4f496428139c",
      "tree": "c61d7f4b984cf67de137f8a8f821e1dc4da3fa50",
      "parents": [
        "fb1cd01a33ecb8a49d590c034ba146dff80c5597"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:11:12 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:11:12 2009 +0200"
      },
      "message": "UBIFS: fix commentaries\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "ec32816f94a0baf90f5e73033dcdbc8679c7f91d",
      "tree": "c8b1c9b3d4f782e131c621ae27a7cf74de041995",
      "parents": [
        "2bc275e9b04f23708c495a8bfe92a5f4b65345c8"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Fri Feb 13 09:13:11 2009 +0100"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Feb 17 12:45:22 2009 +0200"
      },
      "message": "UBIFS: list usage cleanup\n\nTrivial cleanup, list_del(); list_add{,_tail}() is equivalent\nto list_move{,_tail}(). Semantic patch for coccinelle can be\nfound at www.cccmz.de/~snakebyte/list_move_tail.spatch\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "014eb04b03202dc75c1c749df4246d98045f5e69",
      "tree": "99edd8f2907b478616bba8d44a308b6b750ead99",
      "parents": [
        "fd6c6b51e3677937090314b20b00f2194900d81b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jul 21 17:14:29 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:27:47 2008 +0300"
      },
      "message": "UBIFS: increment commit number earlier\n\nIncrement the commit number at the beginnig of the commit, instead\nof doing this after the commit. This is needed for further\noptimizations.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2fb42b11f61cbcef7dfc225c1d26c4511436583d",
      "tree": "2eb3dd34c8e9a191bd8d9ed84b4605c8afc5c611",
      "parents": [
        "16dfd804b44ef7156d1c201f100bd0d9dc6b7c4b"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Jul 18 17:56:37 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:24:00 2008 +0300"
      },
      "message": "UBIFS: ensure UBIFS switches to read-only on error\n\nUBI transparently handles write errors by automatically copying\nand remapping the affected eraseblock. If UBI is unable to do\nthat, for example its pool of eraseblocks reserved for bad block\nhandling is empty, then the error is propagated to UBIFS. UBIFS\nmust protect the media from falling into an inconsistent state\nby immediately switching to read-only mode. In the case of log\nupdates, this was not being done.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d",
      "tree": "919debdd48aef9eee9ff0e8f465ef2649325b993",
      "parents": [
        "e56a99d5a42dcb91e622ae7a0289d8fb2ddabffb"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jul 14 19:08:37 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jul 15 17:35:15 2008 +0300"
      },
      "message": "UBIFS: add new flash file system\n\nThis is a new flash file system. See\nhttp://www.linux-mtd.infradead.org/doc/ubifs.html\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    }
  ]
}
