)]}'
{
  "log": [
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5cc361e3b8241989d8240014dbbe6214c9292541",
      "tree": "bbc7ba880fe50443bcbda52be0cf8fef01024b49",
      "parents": [
        "6f686574cccc2ef66fb38e41f19cedd81e7b4504"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 23:58:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:35:13 2011 -0500"
      },
      "message": "ubifs: too early register_filesystem()\n\ndoing that before you are ready to handle mount() is a Bad Idea(tm)...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\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": "a29fa9dfa4d5d1b962825c79f19d9b6f3f15843b",
      "tree": "bd7aa3733a869c69038b4474229fbc9ada002cbf",
      "parents": [
        "1b51e98365e42c27eb2664f8353bc62ab8c55c85"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 09:43:34 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: minor cleanup: use S_ISREG helper\n\nInstead of using long \"(inode-\u003ei_mode \u0026 S_IFMT) !\u003d S_IFREG\" expression, use\nshorted \"!S_ISREG(inode-\u003ei_mode)\".\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1b51e98365e42c27eb2664f8353bc62ab8c55c85",
      "tree": "1c696ab1f78d2bed3b2a9a31e456a69bec3da20e",
      "parents": [
        "4315fb4072905e45da94d51e2c1e86fa41c5fc5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed May 25 17:38:29 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: rename dbg_check_dir_size function\n\nSince this function is not only about size checking, rename it to\n\u0027dbg_check_dir()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "185bf87393afe6b966881e36c459949d90930a7a",
      "tree": "203f91dbfdb21f29de119cf79ccfed3bf2b15d31",
      "parents": [
        "8b97b21e0f4f59801d05a5c536417f04ecfb5603"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jun 20 10:10:24 2011 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 10:42:34 2011 -0400"
      },
      "message": "ubifs: dereferencing an ERR_PTR in ubifs_mount()\n\nd251ed271d5 \"ubifs: fix sget races\" left out the goto from this\nerror path so the static checkers complain that we\u0027re dereferencing\n\"sb\" when it\u0027s an ERR_PTR.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d251ed271d528afb407cc2ede30923e34cb209a5",
      "tree": "b77e0133453057821ee50956c560013acb467c4c",
      "parents": [
        "b1c27ab3f93daede979f804afc38b189c2f17c60"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 10:24:33 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 17:45:34 2011 -0400"
      },
      "message": "ubifs: fix sget races\n\n* allocate ubifs_info in -\u003emount(), fill it enough for sb_test() and\nset -\u003es_fs_info to it in set() callback passed to sget().\n* do *not* free it in -\u003eput_super(); do that in -\u003ekill_sb() after we\u0027d\ndone kill_anon_super().\n* don\u0027t free it in ubifs_fill_super() either - deactivate_locked_super()\ndone by caller when ubifs_fill_super() returns an error will take care\nof that sucker.\n* get rid of kludge with passing ubi to ubifs_fill_super() in -\u003es_fs_info;\nwe only need it in alloc_ubifs_info(), so ubifs_fill_super() will need\nonly ubifs_info.  Which it will find in -\u003es_fs_info just fine, no need to\nreassign anything...\n\nAs the result, sb_test() becomes safe to apply to all superblocks that\ncan be found by sget() (and a kludge with temporary use of -\u003es_fs_info\nto store a pointer to very different structure goes away).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b1c27ab3f93daede979f804afc38b189c2f17c60",
      "tree": "469479c334b7e346708b17e269e399e073a8098f",
      "parents": [
        "ff78fca2a03c08436535d3f7152a30752d8131d1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 10:07:03 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 17:45:32 2011 -0400"
      },
      "message": "ubifs: split allocation of ubifs_info into a separate function\n\npreparation to ubifs sget() race fixes\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "098011940a2549ae7182db4bf101c3e3d2b4e6df",
      "tree": "2c4c1e51beee85fba008a81598a58efffa1443d0",
      "parents": [
        "781c5717a95a74b294beb38b8276943b0f8b5bb4"
      ],
      "author": {
        "name": "Ben Gardiner",
        "email": "bengardiner@nanometrics.ca",
        "time": "Mon May 30 14:56:16 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: fix-up free space earlier\n\nThe free space fixup is currently initiated during mount after the call to\nubifs_write_master() which results in a write to PEBs; this has been observed\nwith the patch \u0027assert no fixup when writing a node\u0027 applied:\n\nMove the free space fixup on mount to before the calls to\nubifs_recover_inl_heads() and ubifs_write_master(). This results in no\nassertions with the previously mentioned patch applied.\n\nArtem: tweaked the patch a bit\n\nSigned-off-by: Ben Gardiner \u003cbengardiner@nanometrics\u003e\nReviewed-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "781c5717a95a74b294beb38b8276943b0f8b5bb4",
      "tree": "ed8dfe3b7066e6d0854e381f46712c7280b2f05e",
      "parents": [
        "4f1ab9b01d34eac9fc958f7150d3bf266dcc1685"
      ],
      "author": {
        "name": "Ben Gardiner",
        "email": "bengardiner@nanometrics.ca",
        "time": "Mon May 30 14:56:15 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: intialize LPT earlier\n\nThe current \u0027mount_ubifs()\u0027 implementation does not initialize the LPT until the\nthe master node is marked dirty. Move the LPT initialization to before marking\nthe master node dirty. This is a preparation for the next patch which will move\nthe free-space-fixup check to before marking the master node dirty, because we\nhave to fix-up the free space before doing any writes.\n\nArtem: massaged the patch and commit message.\n\nSigned-off-by: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nReviewed-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1a0b06997ceca96db9259e537eb935f9fe59a3de",
      "tree": "0428c1bb46987ae0deb05061d74f8c639ac879c8",
      "parents": [
        "ab75950b11e74145ffe61376ac073d56645aab8a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 08:26:05 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 12:29:06 2011 +0300"
      },
      "message": "UBIFS: introduce a \"grouped\" journal head flag\n\nJournal heads are different in a way how UBIFS writes nodes there. All normal\njournal heads receive grouped nodes, while the GC journal heads receives\nungrouped nodes. This patch adds a \u0027grouped\u0027 flag to \u0027struct ubifs_jhead\u0027 which\ndescribes this property.\n\nThis patch is a preparation to a further recovery fix.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "aa38572954ade525817fe88c54faebf85e5a61c0",
      "tree": "ef398ec06c97134592f62a49c99f3f80041b427c",
      "parents": [
        "d6e9bd256c88ce5f4b668249e363a74f51393daa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 27 06:53:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 27 07:04:40 2011 -0400"
      },
      "message": "fs: pass exact type of data dirties to -\u003edirty_inode\n\nTell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or\nanything else, so that the filesystem can track internally if it\nneeds to push out a transaction for fdatasync or not.\n\nThis is just the prototype change with no user for it yet.  I plan\nto push large XFS changes for the next merge window, and getting\nthis trivial infrastructure in this window would help a lot to avoid\ntree interdependencies.\n\nAlso remove incorrect comments that -\u003edirty_inode can\u0027t block.  That\nhas been changed a long time ago, and many implementations rely on it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9d510db423303b4f3555074dd7bdd0d692e432a4",
      "tree": "e05516d94fe62492e41b7ccc219db8abfe1c6ab8",
      "parents": [
        "6554a6578131a217d4ea6d779a62f120081a2e8b"
      ],
      "author": {
        "name": "Matthew L. Creech",
        "email": "mlcreech@gmail.com",
        "time": "Fri May 06 18:58:23 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:15 2011 +0300"
      },
      "message": "UBIFS: fix-up free space on mount if flag is set\n\nIf a UBIFS filesystem is being mounted read-write, or is being remounted\nfrom read-only to read-write, check for the \"space_fixup\" flag and fix\nall LEBs containing empty space if necessary.\n\nArtem: tweaked the patch a bit\n\nSigned-off-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "eaeee242c531cd4b0a4a46e8b5dd7ef504380c42",
      "tree": "7009f5a79dd67d5eb29140b8cfe4c9dc11dfcae7",
      "parents": [
        "c1f1f91d2183b91c684900b529b6c336ad3dd27c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 06 17:08:56 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:57 2011 +0300"
      },
      "message": "UBIFS: fix a rare memory leak in ro to rw remounting path\n\nWhen re-mounting from R/O mode to R/W mode and the LEB count in the superblock\nis not up-to date, because for the underlying UBI volume became larger, we\nre-write the superblock. We allocate RAM for these purposes, but never free it.\nSo this is a memory leak, although very rare one.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f1bd66afb14c25095cf6ff499c1388db423acc9e",
      "tree": "9199aab4896fc9ed89213a407942bf4e49232fe0",
      "parents": [
        "8c3067e445fb25119761356c88abc39dacfb9524"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 29 18:36:21 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:54 2011 +0300"
      },
      "message": "UBIFS: improve space checking debugging feature\n\nThis patch improves the \u0027dbg_check_space_info()\u0027 function which checks\nwhether the amount of space before re-mounting and after re-mounting\nis the same (remounting from R/O to R/W modes and vice-versa).\n\nThe problem is that \u0027dbg_check_space_info()\u0027 does not save the budgeting\ninformation before re-mounting, so when an error is reported, we do not\nknow why the amount of free space changed.\n\nThis patches makes the following changes:\n\n1. Teaches \u0027dbg_dump_budg()\u0027 function to accept a \u0027struct ubifs_budg_info\u0027\n   argument and print out the this argument. This way we may ask it to\n   print any saved budgeting info, no only the current one.\n2. Accordingly changes all the callers of \u0027dbg_dump_budg()\u0027 to comply with\n   the changed interface.\n3. Introduce a \u0027saved_bi\u0027 (saved budgeting info) field to\n   \u0027struct ubifs_debug_info\u0027 and save the budgeting info before re-mounting\n   there.\n4. Change \u0027dbg_check_space_info()\u0027 and make it print both old and new\n   budgeting information.\n5. Additionally, save \u0027c-\u003eigx_gc_cnt\u0027 and print it if and error happens. This\n   value contributes to the amount of free space, so we have to print it.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b137545c44fc0c80fb778abb0c582bda5601e8f8",
      "tree": "fb3da759a3c64587bee8bacf408cf774adb8b09a",
      "parents": [
        "cc64f774b4acd4954abe54f5919f50d78aba1e5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 29 18:04:05 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: introduce a separate structure for budgeting info\n\nThis patch separates out all the budgeting-related information\nfrom \u0027struct ubifs_info\u0027 to \u0027struct ubifs_budg_info\u0027. This way the\ncode looks a bit cleaner. However, the main driver for this is\nthat we want to save budgeting information and print it later,\nso a separate data structure for this is helpful.\n\nThis patch is a preparation for the further debugging output\nimprovements.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "c43615702f9c5957981693a4d966ed81d8fc1ecc",
      "tree": "2ebe066623e693e2f0d85a609b19a5ccd27a0993",
      "parents": [
        "1bbfc848a915081237660d898bbcf50e4a8fc59f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 25 15:27:40 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: fix minor stylistic issues\n\nFix several minor stylistic issues:\n* lines longer than 80 characters\n* space before closing parenthesis \u0027)\u0027\n* spaces in the indentations\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": "1a067a22e466d2910d10d47a7125bf7ced943165",
      "tree": "7bd2bd95730d063bcdc1b8bf1a03bb8e540e2284",
      "parents": [
        "8c230d9a5b5ec7970139acb7e2d165d7a3fe9f9e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 10:39:54 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Apr 21 15:27:12 2011 +0300"
      },
      "message": "UBIFS: fix false assertion warning in case of I/O failures\n\nWhen UBIFS switches to R/O mode because it detects I/O failures, then\nwhen we unmount, we still may have allocated budget, and the assertions\nwhich verify that we have not budget will fire. But it is expected to\nhave the budget in case of I/O failures, so the assertion warnings will\nbe false. Suppress them for the I/O failure case.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "8c230d9a5b5ec7970139acb7e2d165d7a3fe9f9e",
      "tree": "734751f33b8a49894df52a5c23bcb39217ba6766",
      "parents": [
        "f0e615c3cb72b42191b558c130409335812621d8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 20 18:02:45 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 20 18:16:37 2011 +0300"
      },
      "message": "UBIFS: fix false space checking failure\n\nThis patch fixes UBIFS mount failure when the debugging support is enabled,\nwe are recovering from a power cut, we were first mounter R/O and we are\nre-mounting R/W. In this case we should not assume that the amount of free\nspace before we have re-mounted R/W and after are equivalent, because\nwhen we have mounted R/O the file-system is in a non-committed state so\nthe amount of free space is slightly smaller, due to the fact that we cannot\npredict the amount of free space precisely before we commit.\n\nThis patch fixes the issue by skipping the debugging check in case of\nrecovery. This issue was reported by Caizhiyong \u003ccaizhiyong@huawei.com\u003e\nhere: http://thread.gmane.org/gmane.linux.drivers.mtd/34350/focus\u003d34387\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReported-by: Caizhiyong \u003ccaizhiyong@huawei.com\u003e\nCc: stable@kernel.org [2.6.30+]\n"
    },
    {
      "commit": "c88ac00c5af70c2a0741da14b22cdcf8507ddd92",
      "tree": "5561ff6e47406f58e71eda4700c5a3f2694c6f71",
      "parents": [
        "54acbaaa523ca0bd284a18f67ad213c379679e86"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 29 09:45:21 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:45:09 2011 +0300"
      },
      "message": "UBIFS: fix assertion warnings\n\nThis patch fixes UBIFS assertion warnings like:\n\nUBIFS assert failed in ubifs_leb_unmap at 135 (pid 29365)\nPid: 29365, comm: integck Tainted: G          I 2.6.37-ubi-2.6+ #34\nCall Trace:\n [\u003cffffffffa047c663\u003e] ubifs_lpt_init+0x95e/0x9ee [ubifs]\n [\u003cffffffffa04623a7\u003e] ubifs_remount_fs+0x2c7/0x762 [ubifs]\n [\u003cffffffff810f066e\u003e] do_remount_sb+0xb6/0x101\n [\u003cffffffff81106ff4\u003e] ? do_mount+0x191/0x78e\n [\u003cffffffff811070bb\u003e] do_mount+0x258/0x78e\n [\u003cffffffff810da1e8\u003e] ? alloc_pages_current+0xa2/0xc5\n [\u003cffffffff81107674\u003e] sys_mount+0x83/0xbd\n [\u003cffffffff81009a12\u003e] system_call_fastpath+0x16/0x1b\n\nThey happen when we re-mount from R/O mode to R/W mode. While\nre-mounting, we write to the media, but we still have the c-\u003ero_mount\nflag set. The fix is very simple - just clear the flag before\nstarting re-mounting R/W.\n\nThese warnings are caused by the following commit:\n2ef13294d29bcfb306e0d360f1b97f37b647b0c0\n\nFor -stable guys: this bug was introduced in 2.6.38, this is materieal\nfor 2.6.38-stable.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org [2.6.38]\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "8f627a8a881481598c2591c3acc122fb9be7bac4",
      "tree": "06497d25e30824500aeaf8c736c45b070f121234",
      "parents": [
        "fd57ed021990157ee5b3997c3f21c734093a9e23",
        "5d630e43284fdb0613e4e7e7dd906f27bc25b6af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:50:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 18 10:50:27 2011 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6: (25 commits)\n  UBIFS: clean-up commentaries\n  UBIFS: save 128KiB or more RAM\n  UBIFS: allocate orphans scan buffer on demand\n  UBIFS: allocate lpt dump buffer on demand\n  UBIFS: allocate ltab checking buffer on demand\n  UBIFS: allocate scanning buffer on demand\n  UBIFS: allocate dump buffer on demand\n  UBIFS: do not check data crc by default\n  UBIFS: simplify UBIFS Kconfig menu\n  UBIFS: print max. index node size\n  UBIFS: handle allocation failures in UBIFS write path\n  UBIFS: use max_write_size during recovery\n  UBIFS: use max_write_size for write-buffers\n  UBIFS: introduce write-buffer size field\n  UBI: incorporate LEB offset information\n  UBIFS: incorporate maximum write size\n  UBI: provide LEB offset information\n  UBI: incorporate maximum write size\n  UBIFS: fix LEB number in printk\n  UBIFS: restrict world-writable debugfs files\n  ...\n"
    },
    {
      "commit": "2bcf002159c2aedd5c0ab5a21c3ea73fec87ff8d",
      "tree": "a3218befd44eb549cc915044e23c85c6bacf5986",
      "parents": [
        "cce3f612fedcbeee61977497b99bbf68a4082b6b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Mar 10 16:26:32 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 11 10:52:07 2011 +0200"
      },
      "message": "UBIFS: do not check data crc by default\n\nChange the default UBIFS behavior WRT data CRC checking. Currently,\nUBIFS checks data CRC when reading, which slows it down quite a bit,\nand this is the default option. However, it looks like in average\nuser does not need this feature and would prefer faster read speed\nover extra reliability. And this seems to be de-facto standard that\nfile-systems do not check data CRC every time they read from the\nmedia.\n\nThus, make UBIFS default behavior so that it does not check data\nCRC. This corresponds to the no_chk_data_crc mount option. Those users\nwho need extra protection can always enable it using the chk_data_crc\noption.\n\nPlease, read more information about this feature here:\nhttp://www.linux-mtd.infradead.org/doc/ubifs.html#L_checksumming\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6342aaebda9b94e3cd101ba13eee690ac6577124",
      "tree": "349acb9c1fdb7c990273afc16a661686845a54ff",
      "parents": [
        "d882962f6af2b484b62a7fb05ef959e1bf355fc4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 08 14:26:47 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 11 10:52:07 2011 +0200"
      },
      "message": "UBIFS: print max. index node size\n\nImprove debugging messages by printing the maximum index node size\non mount.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d882962f6af2b484b62a7fb05ef959e1bf355fc4",
      "tree": "040a303908493e5edca3fe5c7aeecab2912bd3b0",
      "parents": [
        "2765df7da540687c4d57ca840182122f074c5b9c"
      ],
      "author": {
        "name": "Matthew L. Creech",
        "email": "mlcreech@gmail.com",
        "time": "Fri Mar 04 17:55:02 2011 -0500"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 11 10:52:07 2011 +0200"
      },
      "message": "UBIFS: handle allocation failures in UBIFS write path\n\nRunning kernel 2.6.37, my PPC-based device occasionally gets an\norder-2 allocation failure in UBIFS, which causes the root FS to\nbecome unwritable:\n\nkswapd0: page allocation failure. order:2, mode:0x4050\nCall Trace:\n[c787dc30] [c00085b8] show_stack+0x7c/0x194 (unreliable)\n[c787dc70] [c0061aec] __alloc_pages_nodemask+0x4f0/0x57c\n[c787dd00] [c0061b98] __get_free_pages+0x20/0x50\n[c787dd10] [c00e4f88] ubifs_jnl_write_data+0x54/0x200\n[c787dd50] [c00e82d4] do_writepage+0x94/0x198\n[c787dd90] [c00675e4] shrink_page_list+0x40c/0x77c\n[c787de40] [c0067de0] shrink_inactive_list+0x1e0/0x370\n[c787de90] [c0068224] shrink_zone+0x2b4/0x2b8\n[c787df00] [c0068854] kswapd+0x408/0x5d4\n[c787dfb0] [c0037bcc] kthread+0x80/0x84\n[c787dff0] [c000ef44] kernel_thread+0x4c/0x68\n\nSimilar problems were encountered last April by Tomasz Stanislawski:\n\nhttp://patchwork.ozlabs.org/patch/50965/\n\nThis patch implements Artem\u0027s suggested fix: fall back to a\nmutex-protected static buffer, allocated at mount time.  I tested it\nby forcing execution down the failure path, and didn\u0027t see any ill\neffects.\n\nArtem: massaged the patch a little, improved it so that we\u0027d not\nallocate the write reserve buffer when we are in R/O mode.\n\nSigned-off-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ca2ec61d157f23ec24aaa200f8016ea0a8aeb617",
      "tree": "63bb4d63ec07572030d93c34696457d99e1555b2",
      "parents": [
        "3e8e2e0c8da1f1701a8014543c951c41751791cc"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Feb 14 15:17:55 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 08 10:12:48 2011 +0200"
      },
      "message": "UBI: incorporate LEB offset information\n\nIncorporate the LEB offset information into UBIFS. We\u0027ll use this\ninformation in one of the next patches to figure out what are the\nmax. write size offsets relative to the PEB. So this patch is just\na preparation.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3e8e2e0c8da1f1701a8014543c951c41751791cc",
      "tree": "e58e0c2530b91f1809e59f3c2cdb2dee6856d338",
      "parents": [
        "f43ec882b8b65de0ebde2e1ad52e8de0349d83ae"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jan 30 18:58:32 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 08 10:12:48 2011 +0200"
      },
      "message": "UBIFS: incorporate maximum write size\n\nIncorporate maximum write size into the UBIFS description data\nstructure. This patch just introduces new \u0027c-\u003emax_write_size\u0027\nand \u0027c-\u003emax_write_shift\u0027 fields as a preparation for the following\npatches.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "18d1d7fbcc260e67d249bf90b454d8cf34288453",
      "tree": "160479d5a455ea2ac111ecbbf0e48f6a5dfcf0ea",
      "parents": [
        "d8cdda3efb9331bedbcca2343591eab2316f4cae"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 17 22:27:56 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 17 23:24:30 2011 +0200"
      },
      "message": "UBIFS: introduce mounting flag\n\nThis is a preparational patch which removes the \u0027c-\u003ealways_chk_crc\u0027 which was\nset during mounting and remounting to R/W mode and introduces \u0027c-\u003emounting\u0027\nflag which is set when mounting. Now the \u0027c-\u003ealways_chk_crc\u0027 flag is the\nsame as \u0027c-\u003eremounting_rw \u0026\u0026 c-\u003emounting\u0027.\n\nThis patch is a preparation for the next one which will need to know when we\nare mounting and remounting to R/W mode, which is exactly what\n\u0027c-\u003ealways_chk_crc\u0027 effectively is, but its name does not suite the\nnext patch. The other possibility would be to just re-name it, but then\nwe\u0027d end up with less logical flags coverage.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "157d81e7ffe04f2c97c3580e185787c2d29463bb",
      "tree": "a6e5bb27ddc0cd3d4692d6e325b62894f240a45a",
      "parents": [
        "51139adac92f7160ad3ca1cab2de1b4b8d19dc96"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 23:52:42 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:36 2010 -0400"
      },
      "message": "convert ubifs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3601ba27353a968df843454e4b81155376682505",
      "tree": "144263a6c1d1255f260788da3d8f5593e2ad6bb4",
      "parents": [
        "39037559e651c417fb68b828926dc61cd5d6e5e2"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Oct 18 08:32:35 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Oct 21 11:15:18 2010 +0300"
      },
      "message": "UBIFS: do not forget to cancel timers\n\nThis is a bug-fix: when we unmount, and we are currently in R/O\nmode because of an error - we do not sync write-buffers, which\nmeans we also do not cancel write-buffer timers we may possibly\nhave armed. This patch fixes the issue.\n\nThe issue can easily be reproduced by enabling UBIFS failure debug\nmode (echo 4 \u003e /sys/module/ubifs/parameters/debug_tsts) and\nunmounting as soon as a failure happen. At some point the system\noopses because we have an armed hrtimer but UBIFS is unmounted\nalready.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "39037559e651c417fb68b828926dc61cd5d6e5e2",
      "tree": "4b014d5e625c42cda030b4711186ee3ba381396b",
      "parents": [
        "7d08ae3c9205b559f90c3d7a3abba3c6479673c7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Oct 18 08:28:50 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Oct 21 11:15:18 2010 +0300"
      },
      "message": "UBIFS: remove a bit of unneeded code\n\nThis is a clean-up patch which:\n\n1. Removes explicite \u0027hrtimer_cancel()\u0027 after \u0027ubifs_wbuf_sync()\u0027 in\n   \u0027ubifs_remount_ro()\u0027, because the timers will be canceled by\n   \u0027ubifs_wbuf_sync()\u0027, no need to cancel them for the second time.\n2. Remove \"if (c-\u003ejheads)\" check from \u0027ubifs_put_super()\u0027, because\n   at journal heads must always be allocated there, since we checked\n   earlier that we were mounted R/W, and the olny situation when\n   journal heads are not allocated is when mounter or re-mounted R/O.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "54dd55a406f6e9cb5ae208f258b907455162e045",
      "tree": "a12d91f6ec8fd878e736ba1ad7e01d6558501581",
      "parents": [
        "2ef13294d29bcfb306e0d360f1b97f37b647b0c0"
      ],
      "author": {
        "name": "Steffen Sledz",
        "email": "sledz@dresearch.de",
        "time": "Mon Sep 27 14:20:26 2010 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 28 09:46:30 2010 +0300"
      },
      "message": "UBIFS: avoid kernel error if ubifs superblock read fails\n\n.get_sb is called on mounts with automatic fs detection too, so this\nfunction should print an error if it cannot read the superblock in\ndebug mode only (new behaviour conforms the other fs types)\n\nSigned-off-by: Steffen Sledz \u003csledz@dresearch.de\u003e\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": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -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: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "d640e1b50885b5beb61ccacdebf9f3f05ee2119c",
      "tree": "73e9aeaaffbc78a66053d1cea898516503142af5",
      "parents": [
        "62aff86fdf18657d9eca7878654415f94f16d027"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 00:34:05 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:18 2010 -0400"
      },
      "message": "switch ubifs to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c18de72fb3c72fdc5ca883910761af3f14d90d76",
      "tree": "52a5a452b4c5ccafec443013dda03da8343eab0d",
      "parents": [
        "6fb4374f6b1b3932f3acfe9d353568d3d8599cad"
      ],
      "author": {
        "name": "Matthieu CASTET",
        "email": "matthieu.castet@parrot.com",
        "time": "Mon Aug 02 11:36:06 2010 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Aug 03 08:58:09 2010 +0300"
      },
      "message": "UBIFS: fix a memory leak on error path.\n\nIn \u0027mount_ubifs()\u0027, in case of \u0027ubifs_leb_unmap()\u0027 falure,\nfree allocated resources.\n\nSigned-off-by: Matthieu CASTET \u003cmatthieu.castet@parrot.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "276de5d2a18bcdc69e6d48a4d96afc14cfef9dcb",
      "tree": "ea7e6a8475c8523166c4cf84f15a45b15c83268a",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 23 14:16:13 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Jun 12 14:45:25 2010 +0300"
      },
      "message": "UBIFS: check return code\n\nThe error code from \u0027ubifs_rcvry_gc_commit()\u0027 was ignored, so UBIFS\nfailed to recover and continued. Instead, we should refuse mounting\nthe file-system.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f2f4e72d3423977cc62152ecf29afe701553a67",
      "tree": "2eb0c3e5bd86d188aa46aa04774f0becd3d61a85",
      "parents": [
        "f0b34ae63488fecf0ec4ab42024d607917f90c45"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Dec 14 18:01:13 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:33 2009 -0800"
      },
      "message": "fs/ubifs: use %pUB to print UUIDs\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9722324e65a017ea0ce39236a2f87c649bb7c39d",
      "tree": "83450a50e35f5d1be14d7a74da57b45d3f138a79",
      "parents": [
        "b57102841846d9840dcb1b8b308f6d7369b8e5c5"
      ],
      "author": {
        "name": "Corentin Chary",
        "email": "corentincj@iksaif.net",
        "time": "Mon Sep 28 21:10:12 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Nov 24 08:18:54 2009 +0200"
      },
      "message": "UBIFS: support mounting of UBI volume character devices\n\nThis patch makes it possible to mount UBI character device\nnodes, and use something like:\n\n$ mount -t ubifs /dev/ubi_volume_name /mnt/ubifs\n\ninstead of the old restrictive \u0027nodev\u0027 semantics:\n\n$ mount -t ubifs ubi0_0 /mnt/ubifs\n\n[Comments and the patch were amended a bit by Artem]\n\nSigned-off-by: Corentin Chary \u003ccorentincj@iksaif.net\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7cce2f4cb7f5f641f78c8e3eea4e7b1b96cb71c0",
      "tree": "b064d077928cf224660ab1e1841cdab2c9fd8b08",
      "parents": [
        "e055f7e873d900925c222cf2d1ec955af4a9ca90",
        "ebc79c4f8da0f92efa968e0328f32334a2ce80cf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Sep 21 12:09:22 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Sep 21 12:09:22 2009 +0300"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into linux-next\n\nConflicts:\n\tfs/ubifs/super.c\n\nMerge the upstream tree in order to resolve a conflict with the\nper-bdi writeback changes from the linux-2.6-block tree.\n"
    },
    {
      "commit": "32a88aa1b6dfb901cec64e1898cac78d0f25028a",
      "tree": "51aa6f56ccfca53f495d015645373317bdee3647",
      "parents": [
        "c4a77a6c7dcff04a2abc7fe4b6b2ae605be41c5b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:02:33 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:18:51 2009 +0200"
      },
      "message": "fs: Assign bdi in super_block\n\nWe do this automatically in get_sb_bdev() from the set_bdev_super()\ncallback. Filesystems that have their own private backing_dev_info\nmust assign that in -\u003efill_super().\n\nNote that -\u003es_bdi assignment is required for proper writeback!\n\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d8a8559cd7a9ccac98d5f6f13297a2ff68a43627",
      "tree": "165e02117205e9790c21b2facc130b23addf3775",
      "parents": [
        "0d03d59d9b31cd1e33b7e46a80b6fef66244b1f2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 02 12:34:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:25 2009 +0200"
      },
      "message": "writeback: get rid of generic_sync_sb_inodes() export\n\nThis adds two new exported functions:\n\n- writeback_inodes_sb(), which only attempts to writeback dirty inodes on\n  this super_block, for WB_SYNC_NONE writeout.\n- sync_inodes_sb(), which writes out all dirty inodes on this super_block\n  and also waits for the IO to complete.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e3c3efc243462d67ba9fa7f67620dcbc4597bf0a",
      "tree": "ae29cf8fade7c9bfac77f7ceff0381e775d80c0d",
      "parents": [
        "8c6866b071cb242584df287dbd342e5815e8407f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Aug 27 16:34:19 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 10 09:58:11 2009 +0300"
      },
      "message": "UBIFS: add inode size debugging check\n\nAdd one more check to UBIFS - a check that makes sure that there\nare no data nodes beyond inode size. And few commantaries fixes\nalong the line.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Adrian Hunter \u003cAdrian.Hunter@nokia.com\u003e\n"
    },
    {
      "commit": "887ee17117fd23e962332b353d250ac9e090b20f",
      "tree": "b871a984fe5ed99b9181846d3f89b67b92239023",
      "parents": [
        "e9d6bbc428bdf0c08bbd0b3f28db2b7317cfff21"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jul 20 17:56:19 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jul 24 15:14:55 2009 +0300"
      },
      "message": "UBIFS: remove unneeded call from ubifs_sync_fs\n\nNowadays VFS always synchronizes all dirty inodes and pages before\ncalling \u0027-\u003esync_fs()\u0027, so remove unneeded \u0027generic_sync_sb_inodes()\u0027\nfrom \u0027ubifs_sync_fs()\u0027. It used to be needed, but not any longer.\n\nPointed-out-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e9d6bbc428bdf0c08bbd0b3f28db2b7317cfff21",
      "tree": "ec306cfd64f3ae1926b5a92379d072791458b710",
      "parents": [
        "b5148da40cb77ca84c4b0281e7049bb26d786592"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 19 13:51:04 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jul 24 15:14:54 2009 +0300"
      },
      "message": "UBIFS: kill BKL\n\nThe BKL was pushed down from VFS to the file-systems. It used\nto serialize mount/unmount/remount and prevented more than one\ninstance of the same file-system from doing\nmount/umount/remount at the same time. But it is OK for UBIFS\nand it does not need any additional locking for these cases.\nThus, kick the BKL out of UBIFS.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7fcd9c3ecbf09c0a77db7ba01aac75b32fb79a93",
      "tree": "de3fc29704e9f6301f6c67ffd352f9eb524538fd",
      "parents": [
        "1fb8bd01ed0af0d0577e010e8c6b4234de583fa6"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Thu Jul 02 17:15:47 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 05 18:45:19 2009 +0300"
      },
      "message": "UBIFS: allow more than one volume to be mounted\n\nUBIFS uses a bdi device per volume, but does not care to hand out unique\nnames to each of them. This causes an error when trying to mount more\nthan one volumes. Append the UBI volume and device ID to avoid that.\n\n[Amended a bit by Artem Bityutskiy]\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nCc: linux-mtd@lists.infradead.org\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1fb8bd01ed0af0d0577e010e8c6b4234de583fa6",
      "tree": "ca8c24c96145a0ae45aa0ec6365e88aa8c5a9be3",
      "parents": [
        "681947d2fa1a00629de33c4df3ca72c39f06a14c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jun 28 18:31:58 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 05 18:45:19 2009 +0300"
      },
      "message": "UBIFS: fix assertion warning\n\nWhen debugging is enabled and an unclean file-system is mounter,\nthe following assertion is triggered:\n\nUBIFS assert failed in ubifs_tnc_start_commit at 805 (pid 1081)\nCall Trace:\n[cfaffbd0] [c0006cf8] show_stack+0x44/0x16c (unreliable)\n[cfaffc10] [c011b738] ubifs_tnc_start_commit+0xbb8/0xd18\n[cfaffc90] [c0112670] do_commit+0x150/0xa44\n[cfaffd10] [c0125234] ubifs_rcvry_gc_commit+0xd8/0x544\n[cfaffd60] [c0100e9c] ubifs_fill_super+0xe78/0x15f8\n[cfaffdf0] [c0102118] ubifs_get_sb+0x20c/0x320\n[cfaffe70] [c007f764] vfs_kern_mount+0x58/0xe0\n[cfaffe90] [c007f83c] do_kern_mount+0x40/0xf8\n[cfaffeb0] [c0095c24] do_mount+0x550/0x758\n[cfafff10] [c0095ebc] sys_mount+0x90/0xe0\n[cfafff40] [c000ed4c] ret_from_syscall+0x0/0x3c\n\nThe reason is that we initialize \u0027c-\u003emin_leb_idx\u0027 early, and do\nnot re-calculate it after journal replay.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "cb54ef8b1304fe25f3d57031e0f85558a043239f",
      "tree": "47a6ed1628a6f7028b5f1befe0c67d84c6f4c5bc",
      "parents": [
        "2a35a3a8ab3e94afd631ed4b45878ceb98f7ab28"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jun 23 20:30:32 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 05 18:45:18 2009 +0300"
      },
      "message": "UBIFS: few spelling fixes\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "0b335b9d7d5f0b832e90ac469480789c07be80ad",
      "tree": "5001522f18092e1cafb538a74eedae3087c17145",
      "parents": [
        "70aee2f153972f70fad5f7025134fec063f9efbe"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jun 23 12:30:43 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jul 05 18:45:16 2009 +0300"
      },
      "message": "UBIFS: slightly optimize write-buffer timer usage\n\nThis patch adds the following minor optimization:\n\n1. If write-buffer does not use the timer, indicate it with the\n   wbuf-\u003eno_timer variable, instead of using the wbuf-\u003esoftlimit\n   variable. This is better because wbuf-\u003esoftlimit is of ktime_t\n   type, and the ktime_to_ns function contains 64-bit multiplication.\n\n2. Do not call the \u0027hrtimer_cancel()\u0027 function for write-buffers\n   which do not use timers.\n\n3. Do not cancel the timer in \u0027ubifs_put_super()\u0027 because the\n   synchronization function does this.\n\nThis patch also removes a confusing comment.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b7c142dbf1e7422d0be7f7faa3f1163ad9da9788",
      "tree": "6e62c8654bb9c329f89246235062ac2a289960df",
      "parents": [
        "0bd8df908de2aefe312d05bd25cd3abc21a6d1da",
        "f2c5dbd7b7396457efc114f825acfdd4db4608f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:46:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 17 09:46:33 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: start using hrtimers\n  hrtimer: export ktime_add_safe\n  UBIFS: do not forget to register BDI device\n  UBIFS: allow sync option in rootflags\n  UBIFS: remove dead code\n  UBIFS: use anonymous device\n  UBIFS: return proper error code if the compr is not present\n  UBIFS: return error if link and unlink race\n  UBIFS: reset no_space flag after inode deletion\n"
    },
    {
      "commit": "a979eff1811a07f5fd331c5f6f727370747b42ad",
      "tree": "0d01a02a3ad0ca590570feefc0e9be834b330b74",
      "parents": [
        "ad081f1430515d0b727eba99ec435a526c61a599"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri May 29 09:19:23 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Jun 16 08:21:04 2009 +0200"
      },
      "message": "ubifs: register backing_dev_info\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "337eb00a2c3a421999c39c94ce7e33545ee8baa7",
      "tree": "d9b780d095b638b1d8fa23841ff70347cf5daa08",
      "parents": [
        "4195f73d1329e49727bcceb028e58cb38376c2b0"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Tue May 12 15:10:54 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:11 2009 -0400"
      },
      "message": "Push BKL down into -\u003eremount_fs()\n\n[xfs, btrfs, capifs, shmem don\u0027t need BKL, exempt]\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6cfd0148425e528b859b26e436b01f23f6926224",
      "tree": "60e3257053554ff198fe5825e6f12a00c3b4422a",
      "parents": [
        "a9e220f8322e2b0e0b8903fe00265461cffad3f0"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:40:36 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:07 2009 -0400"
      },
      "message": "push BKL down into -\u003eput_super\n\nMove BKL into -\u003eput_super from the only caller.  A couple of\nfilesystems had trivial enough -\u003eput_super (only kfree and NULLing of\ns_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,\nhugetlbfs, omfs, qnx4, shmem, all others got the full treatment.  Most\nof them probably don\u0027t need it, but I\u0027d rather sort that out individually.\nPreferably after all the other BKL pushdowns in that area.\n\n[AV: original used to move lock_super() down as well; these changes are\nremoved since we don\u0027t do lock_super() at all in generic_shutdown_super()\nnow]\n[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5af7926ff33b68b3ba46531471c6e0564b285efc",
      "tree": "a25266f9db482ce9dd8e663148ffb0f1a524bd83",
      "parents": [
        "e5004753388dcf5e1b8a52ac0ab807d232340fbb"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 05 15:41:25 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 11 21:36:06 2009 -0400"
      },
      "message": "enforce -\u003esync_fs is only called for rw superblock\n\nMake sure a superblock really is writeable by checking MS_RDONLY\nunder s_umount.  sync_filesystems needed some re-arragement for\nthat, but all but one sync_filesystem caller had the correct locking\nalready so that we could add that check there.  cachefiles grew\ns_umount locking.\n\nI\u0027ve also added a WARN_ON to sync_filesystem to assert this for\nfuture callers.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f2c5dbd7b7396457efc114f825acfdd4db4608f8",
      "tree": "9c65570230dfc05b8580c86db0154b6b2a98515c",
      "parents": [
        "8daa21e61be47a5b136c4ee1be82e391a5788696"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 28 16:24:15 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jun 08 11:14:58 2009 +0300"
      },
      "message": "UBIFS: start using hrtimers\n\nUBIFS uses timers for write-buffer write-back. It is not\ncrucial for us to write-back exactly on time. We are fine\nto write-back a little earlier or later. And this means\nwe may optimize UBIFS timer so that it could be groped\nwith a close timer event, so that the CPU would not be\nwaken up just to do the write back. This is optimization\nto lessen power consumption, which is important in\nembedded devices UBIFS is used for.\n\nhrtimers have a nice feature: they are effectively range\ntimers, and we may defind the soft and hard limits for\nit. Standard timers do not have these feature. They may\nonly be made deferrable, but this means there is effectively\nno hard limit. So, we will better use hrtimers.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "3f36406f26437afae9f43cc6dcfc264143e21ed0",
      "tree": "358eccc333476a45d9071f0c63a90f936a325119",
      "parents": [
        "8379ea31e991ed2098660954d25f64386adee65c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 29 20:16:27 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jun 08 11:14:21 2009 +0300"
      },
      "message": "UBIFS: do not forget to register BDI device\n\nReviewed-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "8379ea31e991ed2098660954d25f64386adee65c",
      "tree": "1232942ea268f7d6a4231f841a819564050e4c66",
      "parents": [
        "428ff9d2e37d3a82af0f56b476f70c244cf550d1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 29 12:34:52 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jun 02 11:08:07 2009 +0300"
      },
      "message": "UBIFS: allow sync option in rootflags\n\nWhen passing UBIFS parameters via kernel command line, the\nsync option will be passed to UBIFS as a string, not as an\nMS_SYNCHRONOUS flag. Teach UBIFS interpreting this flag.\n\nReported-by: Aurélien GÉRÔME \u003cag@debian.org\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7c83f5cb551b2e5c4934933fda006636f7424123",
      "tree": "6b4393743ee63ffdbfb734d3f2daf059e8874508",
      "parents": [
        "8eec2f36fb869f1e6d81d834bbbd487941222fc8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 25 19:23:04 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 26 12:37:11 2009 +0300"
      },
      "message": "UBIFS: use anonymous device\n\nUBIFS has erroneuosly set \u0027sb-\u003es_dev\u0027 to the UBI volume\ncharacter device major/minor. This may lead to clashes\nif there is another FS mounted to a block device with\nthe same major/minor numbers. User-space programs which\nuse \u0027stat-\u003est_dev\u0027 may get confused because of this.\n\nThis problem was found by Al Viro. He also pointed the\nway to fix the problem - use \u0027set_anon_super()\u0027 and\n\u0027kill_anon_super()\u0027 VFS helpers.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "8eec2f36fb869f1e6d81d834bbbd487941222fc8",
      "tree": "166dd7244dc187cd59e51af5541b1b1ca854b111",
      "parents": [
        "8b3884a841f398f6e0a0411d6929d8d9381bb265"
      ],
      "author": {
        "name": "Corentin Chary",
        "email": "corentincj@iksaif.net",
        "time": "Mon May 25 08:49:10 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 25 12:28:27 2009 +0300"
      },
      "message": "UBIFS: return proper error code if the compr is not present\n\nIf the compressor is not present, mount_ubifs need\nto return an error code. This way ubifs_fill_super\nwill stop and handle the error.\n\nSigned-off-by: Corentin Chary \u003ccorentincj@iksaif.net\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6f5bbff9a1b7d6864a495763448a363bbfa96324",
      "tree": "0067dca46f40def1c55541c34c262e06aeb8c4c8",
      "parents": [
        "74dbbdd7fdc11763f4698d2f3e684cf4446951e6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 06 01:34:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:40 2009 -0400"
      },
      "message": "Convert obvious places to deactivate_locked_super()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d6cb0d688d0f262cb4fd5771648b0ac01d4f82c",
      "tree": "b4e0f50358029650f0047ffe1f9c48e24c420584",
      "parents": [
        "091438dd5668396328a3419abcbc6591159eb8d1"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed Apr 08 14:07:57 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed May 06 10:37:56 2009 +0300"
      },
      "message": "UBIFS: reset no_space flag after inode deletion\n\nWhen UBIFS runs out of space it spends a lot of time trying to\nfind more space before returning ENOSPC.  As there is no point\nrepeating that unless something has changed, UBIFS has an\noptimization to record that the file system is 100% full and not\ntry to find space.  That flag was not being reset when a pending\ndeletion was finally done.\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nReviewed-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e0724bf6e4a1f2e678d2b2aab01cae22e17862f0",
      "tree": "559a8fa8e7a92f8ae0e0a27d4e71f408fa7cec62",
      "parents": [
        "38d9aefb5ce8f26358b0d5cd933cfa9e267105b1",
        "de0975781a1a8bc92e07eb7681d10ef9bb5e6df9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 15:00:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 15:00:19 2009 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix recovery bug\n  UBIFS: add R/O compatibility\n  UBIFS: fix compiler warnings\n  UBIFS: fully sort GCed nodes\n  UBIFS: fix commentaries\n  UBIFS: introduce a helpful variable\n  UBIFS: use KERN_CONT\n  UBIFS: fix lprops committing bug\n  UBIFS: fix bogus assertion\n  UBIFS: fix bug where page is marked uptodate when out of space\n  UBIFS: amend key_hash return value\n  UBIFS: improve find function interface\n  UBIFS: list usage cleanup\n  UBIFS: fix dbg_chk_lpt_sz()\n"
    },
    {
      "commit": "a3ec947c85ec339884b30ef6a08133e9311fdae1",
      "tree": "c3cc5859a6b6d8986547405b6c5bd11bc8916114",
      "parents": [
        "585d3bc06f4ca57f975a5a1f698f65a45ea66225"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Wed Mar 04 12:06:34 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "vfs: simple_set_mnt() should return void\n\nsimple_set_mnt() is defined as returning \u0027int\u0027 but always returns 0.\nCallers assume simple_set_mnt() never fails and don\u0027t properly cleanup if\nit were to _ever_ fail.  For instance, get_sb_single() and get_sb_nodev()\nshould:\n\n        up_write(sb-\u003es_unmount);\n        deactivate_super(sb);\n\nif simple_set_mnt() fails.\n\nSince simple_set_mnt() never fails, would be cleaner if it did not\nreturn anything.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "963f0cf6d116d83c558a8efe9045c1c5ad7aed34",
      "tree": "43937f0d742bfac7dfc1a00bae8f72e98dc87425",
      "parents": [
        "fcabb3479e2b15abfd2d2ef5363295f16e98b2d7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Mar 26 12:51:21 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Mar 26 16:36:20 2009 +0200"
      },
      "message": "UBIFS: add R/O compatibility\n\nNow UBIFS is supported by u-boot. If we ever decide to change the\nmedia format, then people will have to upgrade their u-boots to\nmount new format images. However, very often it is possible to\npreserve R/O forward-compatibility, even though the write\nforward-compatibility is not preserved.\n\nThis patch introduces a new super-block field which stores the\nR/O compatibility version.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Adrian Hunter \u003cAdrian.Hunter@nokia.com\u003e\n"
    },
    {
      "commit": "fcabb3479e2b15abfd2d2ef5363295f16e98b2d7",
      "tree": "52b8a3e6cd23af90ffaaed110f05cfd61741b764",
      "parents": [
        "f10770f5e56b4297701fd7c3e551b206f98d7ac2"
      ],
      "author": {
        "name": "Hunter Adrian",
        "email": "adrian.hunter@nokia.com",
        "time": "Wed Mar 18 12:29:39 2009 +0100"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:13:21 2009 +0200"
      },
      "message": "UBIFS: fix compiler warnings\n\nfs/ubifs/super.c: In function ‘ubifs_show_options’:\nfs/ubifs/super.c:425: warning: format not a string literal and no format arguments\nfs/ubifs/super.c: In function ‘mount_ubifs’:\nfs/ubifs/super.c:1204: warning: format not a string literal and no format arguments\nfs/ubifs/super.c: In function ‘ubifs_remount_rw’:\nfs/ubifs/super.c:1557: warning: format not a string literal and no format arguments\n\nSigned-off-by: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "fb1cd01a33ecb8a49d590c034ba146dff80c5597",
      "tree": "d963edf8512c6979fd7c8a34b6550a81e9828128",
      "parents": [
        "c9927c3ee2d3d14893efd793a2a9ea772ddb4289"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Mar 16 09:56:57 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Mar 16 10:52:02 2009 +0200"
      },
      "message": "UBIFS: introduce a helpful variable\n\nThis patch introduces a helpful @c-\u003eidx_leb_size variable.\nThe patch also fixes some spelling issues and makes comments\nuse \"LEB\" instead of \"eraseblock\", which is more correct.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b221337ae4ef9baff84d6d5ecb806e79a5597329",
      "tree": "5dafb3b31751fee5c50656be2157bc9865732f7d",
      "parents": [
        "f55aa59106b66cd547c8f296e0b3430ad76554c5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Mar 15 17:20:22 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Mar 15 17:20:22 2009 +0200"
      },
      "message": "UBIFS: fix bogus assertion\n\nEmpty journal head LEBs are accounted as taken empty as well, so\nthe GC LEB does not have to be the only taken empty LEB when\nnounting/remounting.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "27ad27993313312a4ad0047d0a944c425cd511a5",
      "tree": "e80043a796d012e60ba7ed17c38cc13e5a56f888",
      "parents": [
        "a2b9df3ff691db8e5e521dccd231a8098bbf7416"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:34:30 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:34:30 2009 +0200"
      },
      "message": "UBIFS: remove fast unmounting\n\nThis UBIFS feature has never worked properly, and it was a mistake\nto add it because we simply have no use-cases. So, lets still accept\nthe fast_unmount mount option, but ignore it. This does not change\nmuch, because UBIFS commit in sync_fs anyway, and sync_fs is called\nwhile unmounting.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a2b9df3ff691db8e5e521dccd231a8098bbf7416",
      "tree": "50a12bd4d40a27d7a605aa55e3d770b4af3c8576",
      "parents": [
        "b466f17d780c5b72427f36aef22ecdec9f1d0689"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:22:54 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:22:54 2009 +0200"
      },
      "message": "UBIFS: return sensible error codes\n\nWhen mounting/re-mounting, UBIFS returns EINVAL even if the ENOSPC\nor EROFS codes are are much better, just because we have not found\nreferences to ENOSPC/EROFS in mount (2) man pages. This patch\nchanges this behaviour and makes UBIFS return real error code,\nbecause:\n\n1. It is just less confusing and more logical\n2. mount is not described in SuSv3, so it seems to be not really\n   well-standartized\n3. we do not cover all cases, and any random undocumented in man\n   pages error code may be returned anyway\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": "3eb14297c4b85af0c5e6605e18d93b6031330d71",
      "tree": "a029c57515d69fafeddbe60f43b6eb1f6f29c7f0",
      "parents": [
        "4a29d2005b0f28d018d36d209c47f3973a725df5"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 11:17:24 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:15:39 2009 +0200"
      },
      "message": "UBIFS: sync wbufs after syncing inodes and pages\n\nAll writes go through wbufs so they must be sync\u0027d\nafter syncing inodes and pages.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6ba87c9b920bea8c2703308d31eb7de925242c30",
      "tree": "a83b51da6884e483f78ff85c81f37e9e4e66f064",
      "parents": [
        "49d128aa60751a010640f4763d11577e2f508853"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 16:12:20 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 18:22:47 2009 +0200"
      },
      "message": "UBIFS: fix assertions\n\nI introduce wrong assertions in one of the previous commits, this\npatch fixes them.\n\nAlso, initialize debugfs after the debugging check. This is a little\nnicer because we want the FS data to be accessible to external users\nafter everything has been initialized.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "49d128aa60751a010640f4763d11577e2f508853",
      "tree": "e74af898443112bf1e323e019b6c1a74f7e5d415",
      "parents": [
        "b4978e949104844224ecf786170c9263efa601f3"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Mon Jan 26 10:55:40 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: ensure orphan area head is initialized\n\nWhen mounting read-only the orphan area head is\nnot initialized.  It must be initialized when\nremounting read/write, but it was not.  This patch\nfixes that.\n\n[Artem: sorry, added comment tweaking noise]\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "b4978e949104844224ecf786170c9263efa601f3",
      "tree": "a8002df0e1f8feace090a6dcd5ea294ab55f2060",
      "parents": [
        "84abf972ccff5c13d10b672972949eba431a6e0e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 18:23:03 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: always clean up GC LEB space\n\nWhen we mount UBIFS, GC LEB may contain out-of-date information,\nand UBIFS should update lprops and set free space for thei LEB.\nCurrently UBIFS does this only if mounted R/W. But for R/O mount\nwe have to do the same, because otherwise we will have incorrect\nFS free space reported to user-space.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "84abf972ccff5c13d10b672972949eba431a6e0e",
      "tree": "378ebf8a77fbc1f906fa8eee2472f8bd6d935772",
      "parents": [
        "e4d9b6cbfc98d696a28d2c24a3d49768695811ee"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 23 14:54:59 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jan 26 12:54:11 2009 +0200"
      },
      "message": "UBIFS: add re-mount debugging checks\n\nWe observe space corrupted accounting when re-mounting. So add some\ndebbugging checks to catch problems like this.\n\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": "e8b815663b1bfd9c255af5176604ec0eafdf6ed7",
      "tree": "63eea164bed606905200177f18391238102bda40",
      "parents": [
        "dedb0d48a9d4d57086526b94a4b64da789a646e4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 15 17:43:23 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jan 18 14:05:08 2009 +0200"
      },
      "message": "UBIFS: constify operations\n\nMark super, file, and inode operation structcutes with \u0027const\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "dedb0d48a9d4d57086526b94a4b64da789a646e4",
      "tree": "4771fbc7593b606bc9e88941590a7b4f0b480d82",
      "parents": [
        "1de9e8e70f5acc441550ca75433563d91b269bbe"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jan 09 21:02:37 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Jan 18 14:04:57 2009 +0200"
      },
      "message": "UBIFS: do not commit twice\n\nVFS calls \u0027-\u003esync_fs()\u0027 twice - first time with @wait \u003d 0, second\ntime with @wait \u003d 1. As a result, we may commit and synchronize\nwrite-buffers twice. Avoid doing this by returning immediatelly if\n@wait \u003d 0.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e8ea1759138d4279869f52bfb7dca8f02f8ccfe5",
      "tree": "2e59ef400c9b79af6eeb80024c3923e21c915a8a",
      "parents": [
        "48b47c561e41525061b5bc0cfd67d6367fd11dc4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jan 06 14:40:23 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "UBIFS: do not use WB_SYNC_HOLD\n\nWB_SYNC_HOLD is going to be zapped so we should not use it. Use\n%WB_SYNC_NONE instead. Here is what akpm said:\n\n\"I think I\u0027ll just switch that to WB_SYNC_NONE.  The `wait\u003d\u003d0\u0027 mode is\njust an advisory thing to help the fs shove lots of data into the\nqueues.  If some gets missed then it\u0027ll be picked up on the second\n-\u003esync_fs call, with wait\u003d\u003d1.\"\n\nThanks to Randy Dunlap for catching this.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: 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": "8e5033adc78ff4fbeab7052134e7af1f6ff04187",
      "tree": "d6312317a68dfe06e5df36e2bed79fb35523f3ea",
      "parents": [
        "5d38b3ac78e0e0e420fba134716fc3d20e6b978a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 30 18:37:45 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:25 2008 +0200"
      },
      "message": "UBIFS: add more useful debugging prints\n\nPrint node sizes and maximum node sizes.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "57a450e95932f7798677885b8a01443aca72fdc7",
      "tree": "18de5d14062a2f5c14f7b71c2cf1e48c345c0c87",
      "parents": [
        "a9f2fc0e251e71a51deb8059b181c375a4a5e979"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 30 16:23:34 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:25 2008 +0200"
      },
      "message": "UBIFS: allow mounting when short of space\n\nIt is fine if there is not free space - we should still allow mounting\nthis FS. This patch relaxes the free space requirements and adds info\ndumps.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "26d05777b0a23062a39e83c369c0a3583918f164",
      "tree": "1e5f86365d63b81c4f0641c63c14e6d9b623c251",
      "parents": [
        "cb5c6a2b2be59b480a3746c5113cb3411c053bff"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 09:11:02 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:24 2008 +0200"
      },
      "message": "UBIFS: always commit on unmount\n\nUBIFS commits on unmount to make the next mount faster. Currently,\nit commits only if there is more than LEB size bytes in the\njournal. This is not very good, because journal size may be\nlarge (512KiB). And there may be few deletions in the journal\nwhich do not take much journal space, but which do introduce\na lot of TNC changes and make mount slow.\n\nThus, jurt remove this condition and always commit.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "cb5c6a2b2be59b480a3746c5113cb3411c053bff",
      "tree": "16b67528c7ed1b8f1d6c4cbd9ac62cc1335a77a6",
      "parents": [
        "f10383006c26b33539820759b9dc8656497b02a4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 08:18:43 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:24 2008 +0200"
      },
      "message": "UBIFS: use ubi_sync\n\nUBI now has (fake for now, though) synchronization call - use\nit.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f10383006c26b33539820759b9dc8656497b02a4",
      "tree": "e06ed0b85804ca52d309dc137f06ab4d89de876a",
      "parents": [
        "304d427cd99eb645b44b08d77e70ce308e6bcd8c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 08:16:32 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:24 2008 +0200"
      },
      "message": "UBIFS: always commit in sync_fs\n\nAlways run commit in sync_fs, because even if the journal seems\nto be almost empty, there may be a deletion which removes a large\nfile, which affects the index greatly. And because we want\nbetter free space predictions after \u0027sync_fs()\u0027, we have to\ncommit.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "304d427cd99eb645b44b08d77e70ce308e6bcd8c",
      "tree": "257a12f1b04d6fad8e40ccd1f9bd712e109c8cf8",
      "parents": [
        "79807d075ab8d1ca3574f5f52421e0047c1f1256"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 08:04:17 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:24 2008 +0200"
      },
      "message": "UBIFS: fix file-system synchronization\n\nArgh. The -\u003esync_fs call is called _before_ all inodes are flushed.\nThis means we first sync write buffers and commit, then all\ninodes are synced, and we end up with unflushed write buffers!\n\nFix this by forcing synching all indoes from \u0027ubifs_sync_fs()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "79807d075ab8d1ca3574f5f52421e0047c1f1256",
      "tree": "d94b099c4d69a1d1f1ad5c33d2ad533649c837ce",
      "parents": [
        "c8f915913afdfe1a796e312e21658b8edcf20868"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Dec 27 19:18:00 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:23 2008 +0200"
      },
      "message": "UBIFS: fix constants initialization\n\nThe c-\u003emin_idx_lebs constant depends on c-\u003eold_idx_sz, which\nis read from the master node. This means that we have to\ninitialize c-\u003emin_idx_lebs only after we have read the master\nnode.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "4d61db4f87b527734ac0cc830dda8fcc4e2add2f",
      "tree": "881cb7614a928ba004f588a82c064592f461fee3",
      "parents": [
        "af14a1ad792621942a03e4bd0e5f17b6e177e2e0"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Dec 18 14:06:51 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 23 12:23:40 2008 +0200"
      },
      "message": "UBIFS: use nicer 64-bit math\n\nInstead of using do_div(), use better primitives from\nlinux/math64.h.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "af14a1ad792621942a03e4bd0e5f17b6e177e2e0",
      "tree": "b91e77a8a1a373ca3dfcc84ec0feb243fb74e2e5",
      "parents": [
        "d3cf502b6ccee1c52890d42cd18cbc98b7526126"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Dec 19 19:26:29 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 23 12:23:29 2008 +0200"
      },
      "message": "UBIFS: fix available blocks count\n\nTake into account that 2 eraseblocks are never available because\nthey are reserved for the index. This gives more realistic count\nof FS blocks.\n\nTo avoid future confusions like this, introduce a constant.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "552ff3179d1e93a3e982357544c059f3e9a5516e",
      "tree": "fb53c9ab1b19e1c98fc0a316859413723e34d186",
      "parents": [
        "17c2f9f85c896b48a5d74a9155d99ec5b241a0e6"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Oct 23 11:49:28 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 03 13:14:33 2008 +0200"
      },
      "message": "UBIFS: add debugfs support\n\nWe need to have a possibility to see various UBIFS variables\nand ask UBIFS to dump various information. Debugfs is what\nwe need.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "17c2f9f85c896b48a5d74a9155d99ec5b241a0e6",
      "tree": "9d3e38e673d1d3af650072388a671ec767d3941a",
      "parents": [
        "5dd7cbc083f3a91fa7454125fe992826701b67bc"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Oct 17 13:31:39 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 03 13:14:33 2008 +0200"
      },
      "message": "UBIFS: separate debugging fields out\n\nIntroduce a new data structure which contains all debugging\nstuff inside. This is cleaner than having debugging stuff\ndirectly in \u0027c\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    }
  ],
  "next": "553dea4dd531562688ba01c641c7f8fc7abaaf8c"
}
