)]}'
{
  "log": [
    {
      "commit": "cb14a18465686ea6add51b1008865b8174c28bd7",
      "tree": "9e1b7aa466e83c77628fa74af00049893db84c40",
      "parents": [
        "c49139d8096dc1c392455dbc3f158b46038fc9d4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 15 14:51:54 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 10:31:41 2011 +0300"
      },
      "message": "UBIFS: synchronize write-buffer before switching to the next bud\n\nCurrently when UBIFS fills up the current bud (which is the last in the journal\nhead) and switches to the next bud, it first writes the log reference node for\nthe next bud and only after this synchronizes the write-buffer of the previous\nbud. This is not a big deal, but an unclean power cut may lead to a situation\nwhen we have corruption in a next-to-last bud, although it is much more logical\nthat we have to have corruption only in the last bud.\n\nThis patch also removes write-buffer synchronization from\n\u0027ubifs_wbuf_seek_nolock()\u0027 because this is not needed anymore (we synchronize\nthe write-buffer explicitly everywhere now) and also because this is just\nprone to various errors.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e9ef7b5f25d31c5660fb4a87f4b40ac48070fcb7",
      "tree": "8ae85360dd0b0eee05bc4f3f22729f1234f998cd",
      "parents": [
        "7a9c3e399389723f01be3dab50991604d2bc0409"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 13:22:19 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 10:31:39 2011 +0300"
      },
      "message": "UBIFS: make 2 functions static\n\nThis is a minor change which makes 2 functions static because they\nare not used outside the gc.c file: \u0027data_nodes_cmp()\u0027 and\n\u0027nondata_nodes_cmp()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2405f5948119cdc1c28697fd3110124dad974898",
      "tree": "04bad5852693a5a18cb919c298e59dbf385c1d96",
      "parents": [
        "2cd0a60cf49db4722445337b90fb06c9672f1128"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 26 09:49:32 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:55 2011 +0300"
      },
      "message": "UBIFS: remove duplicated code\n\nWe have duplicated code in \u0027ubifs_garbage_collect()\u0027 and\n\u0027ubifs_rcvry_gc_commit()\u0027, which is about handling the special case of free\nLEB. In both cases we just want to garbage-collect the LEB using\n\u0027ubifs_garbage_collect_leb()\u0027.\n\nThis patch teaches \u0027ubifs_garbage_collect_leb()\u0027 to handle free LEB\u0027s so that\nthe caller does not have to do this and the duplicated code is removed.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\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": "3bb66b47a4268a4419594b4c4aec58dbeb6b58d2",
      "tree": "42e4e7b28adc166573ffef4c23dc03492fd981b4",
      "parents": [
        "1a9476a77083354005750c9df45ba9d71ad12c8c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Aug 07 10:06:11 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:09 2010 +0300"
      },
      "message": "UBIFS: introduce list sorting debugging checks\n\nThe UBIFS bug in the GC list sorting comparison functions inspired\nme to write internal debugging check functions which verify that\nthe list of nodes is sorted properly.\n\nSo, this patch implements 2 new debugging functions:\n o \u0027dbg_check_data_nodes_order()\u0027 - check order of data nodes list\n o \u0027dbg_check_nondata_nodes_order()\u0027 - check order of non-data nodes list\n\nThe debugging functions are executed only if general UBIFS debugging checks are\nenabled. And they are compiled out if UBIFS debugging is disabled.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1a9476a77083354005750c9df45ba9d71ad12c8c",
      "tree": "2e032a6f9071620ece14b69d4fedd35a1ba0d2d1",
      "parents": [
        "ba2f48f70efcf4d82deafb2be327ed64b1f043a5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Aug 08 12:45:23 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:08 2010 +0300"
      },
      "message": "UBIFS: fix assertion warnings in comparison function\n\nWhen running the integrity test (\u0027integck\u0027 from mtd-utils) on current\nUBIFS on 2.6.35, I see that assertions in UBIFS \u0027list_sort()\u0027 comparison\nfunctions trigger sometimes, e.g.:\n\nUBIFS assert failed in data_nodes_cmp at 132 (pid 28311)\n\nMy investigation showed that this happens when \u0027list_sort()\u0027 calls the \u0027cmp()\u0027\nfunction with equivalent arguments. In this case, the \u0027struct list_head\u0027\nparameter, passed to \u0027cmp()\u0027 is bogus, and it does not belong to any element in\nthe original list.\n\nAnd this issue seems to be introduced by commit:\n\ncommit 835cc0c8477fdbc59e0217891d6f11061b1ac4e2\nAuthor: Don Mullis \u003cdon.mullis@gmail.com\u003e\nDate:   Fri Mar 5 13:43:15 2010 -0800\n\nIt is easy to work around the issue by doing:\n\nif (a \u003d\u003d b)\n\treturn 0;\n\nin UBIFS. It works, but \u0027lib_sort()\u0027 should nevertheless be fixed. Although it\nis harmless to have this piece of code in UBIFS.\n\nThis patch adds that code to both UBIFS \u0027cmp()\u0027 functions:\n\u0027data_nodes_cmp()\u0027 and \u0027nondata_nodes_cmp()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "66576833f5396af34c52160b16d7b8573199282a",
      "tree": "557944b9b8088fab39cdf426be299300530ec79f",
      "parents": [
        "ab87118d717467cbcd9648692c2a9708d55193bc"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Aug 08 12:29:58 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:07 2010 +0300"
      },
      "message": "UBIFS: improve assertion in node comparison functions\n\nImprove assertions in gc.c in the comparison functions for \u0027list_sort()\u0027: check\nkey types _and_ node types.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "ab87118d717467cbcd9648692c2a9708d55193bc",
      "tree": "d4e28ead7b0192942bd9f5665ff31fc57a572e1e",
      "parents": [
        "44ec83b8bd05d323998031f141c310127721acae"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Aug 08 12:25:33 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:07 2010 +0300"
      },
      "message": "UBIFS: do not use key type in list_sort\n\nIn comparison function for \u0027list_sort()\u0027 we use key type to distinguish between\nnode types. However, we have a bit simper way to detect node type -\n\u0027snod-\u003etype\u0027. This more logical to use, comparing to decoding key types. Also\nallows to get rid of 2 local variables.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "44ec83b8bd05d323998031f141c310127721acae",
      "tree": "52b336c14de78845189d39c952447c1c208b6fd6",
      "parents": [
        "e3408ad4cbed6ec6990efad4c2ef0856bcd3c712"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Aug 07 08:44:13 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:07 2010 +0300"
      },
      "message": "UBIFS: do not look up truncation nodes\n\nWhen moving nodes in GC, do not try to look up truncation nodes in TNC,\nbecause they do not exist there. This would be harmless, because the TNC\nlook-up would fail, if we did not have bug \u0027ubifs_add_snod()\u0027 which reads\ngarbage into \u0027snod-\u003ekey\u0027. But in any case, it is less error prone to\nexplicitly ignore everything but inode, data, dentry and xentry nodes.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e3408ad4cbed6ec6990efad4c2ef0856bcd3c712",
      "tree": "fb36a77d65fc077337968f53539d26544910792e",
      "parents": [
        "efe1881f5482f94f5e5e6cb74bf3ea72f2b5b9ce"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 04 13:50:51 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:06 2010 +0300"
      },
      "message": "UBIFS: fix assertion warning\n\nThis patch fixes the following false assertion warning:\n\nUBIFS assert failed in data_nodes_cmp at 130 (pid 15107)\n\nThe assertion was wrong because it did not take into account that the\nnode can be an xentry.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "efe1881f5482f94f5e5e6cb74bf3ea72f2b5b9ce",
      "tree": "3009b20fd4e0530e75cd9d5c4a3933133ec0cfce",
      "parents": [
        "5ffef88ffeb730e1bf2da56a39a55e03d57a66c9"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 04 14:06:06 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:06 2010 +0300"
      },
      "message": "UBIFS: do not treat ENOSPC specially\n\n\u0027ubifs_garbage_collect_leb()\u0027 should never return \u0027-ENOSPC\u0027, and if it\ndoes, this is an error. Thus, do not treat this error code specially.\n\u0027-EAGAIN\u0027 is a special error code, but not \u0027-ENOSPC\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "5ffef88ffeb730e1bf2da56a39a55e03d57a66c9",
      "tree": "a524f5806930d593d1f38f29f6a3e28948f8e851",
      "parents": [
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 04 10:14:47 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:06 2010 +0300"
      },
      "message": "UBIFS: switch to RO mode after synchronizing\n\nIn \u0027ubifs_garbage_collect()\u0027 on error path, we first switch to R/O mode, and\nthen synchronize write-buffers (to make sure no data are lost). But the GC\nwrite-buffer synchronization will fail, because we are already in R/O mode.\nThis patch re-orders this and makes sure we first synchronize the write-buffer,\nand then switch to R/O mode.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "2c761270d5520dd84ab0b4e47c24d99ff8503c38",
      "tree": "c23a51fdcc96641661b632d3b3c2c46ad7e53a91",
      "parents": [
        "dbf004d7883b3adb058c0c1a5635bc4ec27651c0"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Jan 12 17:39:16 2010 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 12 21:02:00 2010 -0800"
      },
      "message": "lib: Introduce generic list_sort function\n\nThere are two copies of list_sort() in the tree already, one in the DRM\ncode, another in ubifs.  Now XFS needs this as well.  Create a generic\nlist_sort() function from the ubifs version and convert existing users\nto it so we don\u0027t end up with yet another copy in the tree.\n\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\nAcked-by: Dave Airlie \u003cairlied@redhat.com\u003e\nAcked-by: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "f10770f5e56b4297701fd7c3e551b206f98d7ac2",
      "tree": "5fad34defa002857fca21dfde03e3813d68cfb4b",
      "parents": [
        "7d4e9ccb435e51e013e63abd340b4f496428139c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Mar 08 15:13:00 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:12:00 2009 +0200"
      },
      "message": "UBIFS: fully sort GCed nodes\n\nThe \u0027joinup()\u0027 function cannot deal with situations when nodes\ngo in reverse order - it just leaves them in this order. This\npatch implement full nodes sorting using n*log(n) algorithm.\nIt sorts data nodes for bulk-read, and direntry nodes for\nreaddir().\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b466f17d780c5b72427f36aef22ecdec9f1d0689",
      "tree": "09346513db7a7563f9a79ec0e6ec56b8536fabe9",
      "parents": [
        "227c75c91dbfa037d109ab7ef45b7f5ba9cab6d0"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 12:59:33 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:19:36 2009 +0200"
      },
      "message": "UBIFS: remount ro fixes\n\n- preserve the idx_gc list - it will be needed in the same\nstate, should UBIFS be remounted rw again\n- prevent remounting ro if we have switched to read only\nmode (due to a fatal error)\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "227c75c91dbfa037d109ab7ef45b7f5ba9cab6d0",
      "tree": "605bf9ec3f49a5209d9efac23ef6ba47baf44072",
      "parents": [
        "3eb14297c4b85af0c5e6605e18d93b6031330d71"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 11:53:51 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:15:51 2009 +0200"
      },
      "message": "UBIFS: spelling fix \u0027date\u0027 -\u003e \u0027data\u0027\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e4d9b6cbfc98d696a28d2c24a3d49768695811ee",
      "tree": "5d76848d68add2830efa29b16425e2f07b4f1967",
      "parents": [
        "82c1593cad3dfc97661764c8bc62aa1a416e9ea8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 14:17:36 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: fix LEB list freeing\n\nWhen freeing the c-\u003eidx_lebs list, we have to release the LEBs as well,\nbecause we might be called from mount to read-only mode code. Otherwise\nthe LEBs stay taken forever, which may cause problems when we re-mount\nback ro RW mode.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7078202e55b565582fcbd831a8dd3069bdc72610",
      "tree": "0f8cabaa23a05210cc1b95a97d7cab490f38ebca",
      "parents": [
        "a50412e3f8ce95d7ed558370d7dde5171fd04283"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 19 19:57:27 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jan 20 10:10:47 2009 +0200"
      },
      "message": "UBIFS: document dark_wm and dead_wm better\n\nJust add more commentaries. Also some commentary fixes for\nlprops flags.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "025dfdafe77f20b3890981a394774baab7b9c827",
      "tree": "c4d514990d7a0673df5d32aa11fded95f9644ff0",
      "parents": [
        "0abb8b6a939b742f273edc68b64dba26c57331bc"
      ],
      "author": {
        "name": "Frederik Schwarzer",
        "email": "schwarzerf@gmail.com",
        "time": "Thu Oct 16 19:02:37 2008 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 06 11:28:06 2009 +0100"
      },
      "message": "trivial: fix then -\u003e than typos in comments and documentation\n\n- (better, more, bigger ...) then -\u003e (...) than\n\nSigned-off-by: Frederik Schwarzer \u003cschwarzerf@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "46773be497a05010a2873e9ad96d739fb352c1e4",
      "tree": "bea239e6e44de33fd8c562e21e38df71eefa2fc7",
      "parents": [
        "bed79935de9a658678f44b88a097367d3b26429f"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Sep 11 12:57:49 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:59 2008 +0300"
      },
      "message": "UBIFS: improve garbage collection\n\nMake garbage collection try to keep data nodes from the same\ninode together and in ascending order.  This improves\nperformance when reading those nodes especially when bulk-read\nis used.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "8d47aef43ba166bdd11d522307c61ab23aab61c3",
      "tree": "7d462c2d304610b4eba3ceab1e39995efdc62bf9",
      "parents": [
        "948cfb219bbbc3c8e1b10a671ca88219fa42a052"
      ],
      "author": {
        "name": "Hirofumi Nakagawa",
        "email": "hnakagawa@miraclelinux.com",
        "time": "Thu Aug 21 17:16:40 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:55 2008 +0300"
      },
      "message": "UBIFS: remove unneeded unlikely()\n\nIS_ERR() macro already has unlikely(), so do not use constructions\nlike \u0027if (unlikely(IS_ERR())\u0027.\n\nSigned-off-by: Hirofumi Nakagawa \u003chnakagawa@miraclelinux.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6dcfac4f13d6b32fbaa60b64a23249999e66af8e",
      "tree": "007884a8327658dc53252c7f1be9ab9daeb7ea14",
      "parents": [
        "0855f310dff76ae42c5aac32f600f8f692bbd23f"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Sep 12 12:27:47 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Sep 17 14:23:26 2008 +0300"
      },
      "message": "UBIFS: TNC / GC race fixes\n\n- update GC sequence number if any nodes may have been moved\neven if GC did not finish the LEB\n- don\u0027t ignore error return when reading\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "601c0bc46753007be011b513ba4fc50ed8e30aef",
      "tree": "39017065a8418b60362686a7771afe138e100c08",
      "parents": [
        "761e29f3bb19b05bea55285dfdf2d28e001a63b8"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Aug 22 14:23:35 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 25 14:34:02 2008 +0300"
      },
      "message": "UBIFS: allow for racing between GC and TNC\n\nThe TNC mutex is unlocked prematurely when reading leaf nodes\nwith non-hashed keys.  This is unsafe because the node may be\nmoved by garbage collection and the eraseblock unmapped, although\nthat has never actually happened during stress testing.\n\nThis patch fixes the flaw by detecting the race and retrying with\nthe TNC mutex locked.\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"
    }
  ]
}
