)]}'
{
  "log": [
    {
      "commit": "818039c7d597db3b1d30964a8f9489ac42c0642d",
      "tree": "15a7529f017b818895e3e5ba75df4ef6f415af48",
      "parents": [
        "e9b4cf2094a65a05a831f070e46c554260632330"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jun 06 16:03:10 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu Jun 07 10:43:54 2012 +0300"
      },
      "message": "UBIFS: fix debugfs-less systems support\n\nCommit \"f70b7e5 UBIFS: remove Kconfig debugging option\" broke UBIFS and it\nrefuses to initialize if debugfs (CONFIG_DEBUG_FS) is disabled. I incorrectly\nassumed that debugfs files creation function will return success if debugfs\nis disabled, but they actually return -ENODEV. This patch fixes the issue.\n\nReported-by: Paul Parsons \u003clost.distance@yahoo.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nTested-by: Paul Parsons \u003clost.distance@yahoo.com\u003e\n"
    },
    {
      "commit": "b36a261e8c0ab323d04db9cdd1f6bb4c273c4b32",
      "tree": "00c90c5fa556f335338f4f61c808d4dfe502bb74",
      "parents": [
        "0964f6a27b3574d9210c59ec883cbb3fff78a78d"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Mon May 14 17:55:51 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Sun May 20 20:25:59 2012 +0300"
      },
      "message": "UBI: Kill data type hint\n\nWe do not need this feature and to our shame it even was not working\nand there was a bug found very recently.\n\t-- Artem Bityutskiy\n\nWithout the data type hint UBI2 (fastmap) will be easier to implement.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "a6aae4dd0ffad299a33d122f8a339b399bee5381",
      "tree": "958b015be27d97d079a3c14694576571ca916600",
      "parents": [
        "f70b7e52aa23c9aea5346b9730b402fb55f9079b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 20:11:23 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 20:11:23 2012 +0300"
      },
      "message": "UBIFS: get rid of dbg_err\n\nThis patch removes the \u0027dbg_err()\u0027 macro and we now use \u0027ubifs_err()\u0027 instead.\nThe idea of \u0027dbg_err()\u0027 was to compile out some error message to make the\nbinary a bit smaller - but I think it was a bad idea.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "f70b7e52aa23c9aea5346b9730b402fb55f9079b",
      "tree": "20882b6e8345b8836d395248fd7f31fce7d09236",
      "parents": [
        "1baafd28dc17422f10be9b2a3a75432154e3abc7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:53:46 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:53:46 2012 +0300"
      },
      "message": "UBIFS: remove Kconfig debugging option\n\nHave the debugging stuff always compiled-in instead. It simplifies maintanance\na lot.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "edf6be245fd34a4438646375cecb11f5feb92646",
      "tree": "ca1ddfc1900d5875d5434c6c7f39ca4966ef3baa",
      "parents": [
        "7c46d0ae29ba880963db283706950de7aa86c0a0"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:15:56 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:15:56 2012 +0300"
      },
      "message": "UBIFS: rename dumping functions\n\nThis commit re-names all functions which dump something from \"dbg_dump_*()\" to\n\"ubifs_dump_*()\". This is done for consistency with UBI and because this way it\nwill be more logical once we remove the debugging sompilation option.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "7c46d0ae29ba880963db283706950de7aa86c0a0",
      "tree": "1ba1ba22f2281dda27116443db50ebbcfc84cc09",
      "parents": [
        "1bdcc63112a0fe10030abee6ad71aaecd091e68e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:04:54 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:04:54 2012 +0300"
      },
      "message": "UBIFS: get rid of dbg_dump_stack\n\nIn case of errors we almost always need the stack dump - it makes no sense\nto compile it out. Remove the \u0027dbg_dump_stack()\u0027 function completely.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "b06283c7df35b5a49ab141ed38e0280821379096",
      "tree": "9b99a46776ca420887bf73ecbc9bb3041e5f66b6",
      "parents": [
        "16c395ca72a79115653892c0724d4928f72520fe"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 18 16:06:17 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 29 16:10:20 2012 +0200"
      },
      "message": "UBIFS: make the dbg_lock spinlock static\n\nRemove the usage of the \u0027dbg_lock\u0027 spinlock from \u0027dbg_err()\u0027 and make\nit static.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "16c395ca72a79115653892c0724d4928f72520fe",
      "tree": "b0dcbfab98796f84fe2ddd6c37de9312067a71f2",
      "parents": [
        "78437368c8d9c8dc13461c689d13369f64e4522c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 18 15:46:13 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 29 16:10:20 2012 +0200"
      },
      "message": "UBIFS: increase dumps loglevel\n\nMost of the time we use the dumping function to dump something in case\nof error. We use \u0027KERN_DEBUG\u0027 printk level, and the drawback is that users\ndo not see them in the console, while they see the other error messages\nin the console. The result is that they send bug reports which does not\ncontain a lot of useful information. This patch changes the printk level\nof the dump functions to \u0027KERN_ERR\u0027 to correct the situation.\n\nI documented it in the MTD web site that people have to send the \u0027dmesg\u0027 output\nwhen submitting bug reposts - it did not help.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "515315a123af641a9533e4ff0f178c470dc08fc7",
      "tree": "1a215c3df46286d7ff878cd86517818404758900",
      "parents": [
        "beba006074e7170d3bc91470c8a6c914730d4c63"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jan 13 12:33:53 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jan 13 12:50:42 2012 +0200"
      },
      "message": "UBIFS: fix key printing\n\nBefore commit 56e46742e846e4de167dde0e1e1071ace1c882a5 we have had locking\naround all printing macros and we could use static buffers for creating\nkey strings and printing them. However, now we do not have that locking and\nwe cannot use static buffers. This commit removes the old DBGKEY() macros\nand introduces few new helper macros for printing debugging messages plus\na key at the end. Thankfully, all the messages are already structures in\na way that the key is printed in the end.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "beba006074e7170d3bc91470c8a6c914730d4c63",
      "tree": "3d7330a25a1c7c8228774ec9ff9cc7f1f2dcd1ab",
      "parents": [
        "d34315da9146253351146140ea4b277193ee5e5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 11 15:52:09 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Jan 13 12:46:21 2012 +0200"
      },
      "message": "UBIFS: use snprintf instead of sprintf when printing keys\n\nSwitch to \u0027snprintf()\u0027 which is more secure and reliable. This is also a\npreparation to the subsequent key printing fixes.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "d37854cf99319966f34bb19c7a897b87d478b56c",
      "tree": "31a1d7eb0403fc33feaebb3fd4d010e326ac0330",
      "parents": [
        "93ee7a9340d64f20295aacc3fb6a22b759323280"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@intel.com",
        "time": "Mon Aug 22 16:23:56 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Aug 22 16:23:56 2011 +0300"
      },
      "message": "UBIFS: introduce a helper to dump scanning info\n\nThis commit adds \u0027dbg_dump_sleb()\u0027 helper function to dump scanning\ninformation.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@intel.com\u003e\n"
    },
    {
      "commit": "a7fa94a9fe26a4925914083a31b5387bca530eb1",
      "tree": "e745f630a78b473379e9d0866a9b1be25b528677",
      "parents": [
        "d27462a518c31a4b1093ad866229f85b2b765e7e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 16:20:03 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:34 2011 +0300"
      },
      "message": "UBIFS: improve power cut emulation testing\n\nThis patch cleans-up and improves the power cut testing:\n\n1. Kill custom \u0027simple_random()\u0027 function and use \u0027random32()\u0027 instead.\n2. Make timeout larger\n3. When cutting the buffer - fill the end with random data sometimes, not\n   only with 0xFFs.\n4. Some times cut in the middle of the buffer, not always at the end.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d27462a518c31a4b1093ad866229f85b2b765e7e",
      "tree": "e2663f6294ad516bc3debebf394fc437a84d0de5",
      "parents": [
        "f57cb188ccd9c0242111d99b7283eda7827746c4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 15:10:33 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:34 2011 +0300"
      },
      "message": "UBIFS: rename recovery testing variables\n\nSince the recovery testing is effectively about emulating power cuts by UBIFS,\nuse \"power cut\" as the base term for all the related variables and name them\ncorrespondingly. This is just a minor clean-up for the sake of readability.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f57cb188ccd9c0242111d99b7283eda7827746c4",
      "tree": "687b8b3f6e91594461f663ebd6568b9a534d8e32",
      "parents": [
        "0a541b14e819f972d14f29d17cb9fd8b4b71222e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 14:51:41 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: remove custom list of superblocks\n\nThis is a clean-up of the power-cut emulation code - remove the custom list of\nsuperblocks which we maintained to find the superblock by the UBI volume\ndescriptor. We do not need that crud any longer, because now we can get the\nsuperblock as a function argument.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "0a541b14e819f972d14f29d17cb9fd8b4b71222e",
      "tree": "b996e3d7aeb4d05e398b805792e8d16c840edbf1",
      "parents": [
        "d3b2578f56e0a77b9e261d83e9b5a0a666b82980"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 14:38:50 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: stop re-defining UBI operations\n\nNow when we use UBIFS helpers for all the I/O, we can remove the horrible hack\nof re-defining UBI I/O functions.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "891a54a153646f9b16bffe5df6cb74cb3f1e9dc6",
      "tree": "e61849c41a6301e6bfb757ec043b9debc5160963",
      "parents": [
        "e7717060ddd509e6c305ad7bf5a090a95e91c8cf"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 11:32:21 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:32 2011 +0300"
      },
      "message": "UBIFS: remove unused and unneeded debugging function\n\nThis patch contains several minor clean-up and preparational cahnges.\n\n1. Remove \u0027dbg_read()\u0027, \u0027dbg_write()\u0027, \u0027dbg_change()\u0027, and \u0027dbg_leb_erase()\u0027\n   functions as they are not used.\n2. Remove \u0027dbg_leb_read()\u0027 and \u0027dbg_is_mapped()\u0027 as they are not really needed,\n   it is fine to let reads go through in failure mode.\n3. Rename \u0027offset\u0027 argument to \u0027offs\u0027 to be consistent with the rest of UBIFS\n   code.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e7717060ddd509e6c305ad7bf5a090a95e91c8cf",
      "tree": "03869be56858dfc5226a94129d528714838e4dc0",
      "parents": [
        "28488fc28aa39815b78c2cbeaaf25f33fef92ce8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 17:43:43 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:32 2011 +0300"
      },
      "message": "UBIFS: add global debugfs knobs\n\nNow we have per-FS (superblock) debugfs knobs, but they have one drawback - you\nhave to first mount the FS and only after this you can switch self-checks\non/off. But often we want to have the checks enabled during the mount.\nIntroduce global debugging knobs for this purpose.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "28488fc28aa39815b78c2cbeaaf25f33fef92ce8",
      "tree": "b2f50655effb1e067af15b22c91f591173e3761c",
      "parents": [
        "7dae997de62bbd78f12305bf10019ec8f1103bd4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 09:58:23 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:32 2011 +0300"
      },
      "message": "UBIFS: introduce debugfs helpers\n\nSeparate out pieces of code from the debugfs file read/write functions and\ncreate separate \u0027interpret_user_input()\u0027/\u0027provide_user_output()\u0027 helpers. These\nhelpers will be needed in one of the following patches, so this is just a\npreparational change.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7dae997de62bbd78f12305bf10019ec8f1103bd4",
      "tree": "0f26a540ea6f2857d4d0f0cbb5212b1618f9f241",
      "parents": [
        "24a4f8009ee9e259a412d86373e0d2aac3a80333"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 15:44:14 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:32 2011 +0300"
      },
      "message": "UBIFS: re-arrange debugging code a bit\n\nMove \u0027dbg_debugfs_init()\u0027 and \u0027dbg_debugfs_exit()\u0027 functions which initialize\ndebugfs for whole UBIFS subsystem below the code which initializes debugfs for\na particular UBIFS instance. And do the same for \u0027ubifs_debugging_init()\u0027 and\n\u0027ubifs_debugging_exit()\u0027 functions. This layout is a bit better for the next\npatches, so this is just a preparation.\n\nAlso, rename \u0027open_debugfs_file()\u0027 into \u0027dfs_file_open()\u0027 for consistency.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "24a4f8009ee9e259a412d86373e0d2aac3a80333",
      "tree": "4ec4d21471e6fe770d3300ae41f1ca4a142b6b77",
      "parents": [
        "81e79d38df5a17bb1c738a14f8e5f3412fb33afa"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 15:23:25 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:30 2011 +0300"
      },
      "message": "UBIFS: be more informative in failure mode\n\nWhen we are testing UBIFS recovery, it is better to print in which eraseblock\nwe are going to fail. Currently UBIFS prints it only if recovery debugging\nmessages are enabled, but this is not very practical. So change \u0027dbg_rcvry()\u0027\nmessages to \u0027ubifs_warn()\u0027 messages.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "81e79d38df5a17bb1c738a14f8e5f3412fb33afa",
      "tree": "88f88631a6e10ec9fd83261ceee195e283be57eb",
      "parents": [
        "8d7819b4af697eec45339cc24db7c3fe45fea0e7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 18:16:34 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:28 2011 +0300"
      },
      "message": "UBIFS: switch self-check knobs to debugfs\n\nUBIFS has many built-in self-check functions which can be enabled using the\ndebug_chks module parameter or the corresponding sysfs file\n(/sys/module/ubifs/parameters/debug_chks). However, this is not flexible enough\nbecause it is not per-filesystem. This patch moves this to debugfs interfaces.\n\nWe already have debugfs support, so this patch just adds more debugfs files.\nWhile looking at debugfs support I\u0027ve noticed that it is racy WRT file-system\nunmount, and added a TODO entry for that. This problem has been there for long\ntime and it is quite standard debugfs PITA. The plan is to fix this later.\n\nThis patch is simple, but it is large because it changes many places where we\ncheck if a particular type of checks is enabled or disabled.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "8d7819b4af697eec45339cc24db7c3fe45fea0e7",
      "tree": "2a32526fbf5a4cac8a3056352efcd6b69c4785b6",
      "parents": [
        "2b1844a8c934723134ee1ff313e51d0d281cdef1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 08:53:35 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:28 2011 +0300"
      },
      "message": "UBIFS: lessen amount of debugging check types\n\nWe have too many different debugging checks - lessen the amount by merging all\nindex-related checks into one. At the same time, move the \"force in-the-gap\"\ntest to the \"index checks\" class, because it is too heavy for the \"general\"\nclass.\n\nThis patch merges TNC, Old index, and Index size check and calles this just\n\"index checks\".\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2b1844a8c934723134ee1ff313e51d0d281cdef1",
      "tree": "1c490adba95a54eb14f9b00890ce9b09050358f7",
      "parents": [
        "d808efb407e1a2cf83a8d21411157195f26bdef9"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 08:31:29 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:28 2011 +0300"
      },
      "message": "UBIFS: introduce helper functions for debugging checks and tests\n\nThis patch introduces helper functions for all debugging checks, so instead of\ndoing\n\nif (!(ubifs_chk_flags \u0026 UBIFS_CHK_GEN))\n\nwe now do\n\nif (!dbg_is_chk_gen(c))\n\nThis is a preparation to further changes where the flags will go away, and\nwe\u0027ll need to only change the helper functions, but the code which utilizes\nthem won\u0027t be touched.\n\nAt the same time this patch removes \u0027dbg_force_in_the_gaps()\u0027,\n\u0027dbg_force_in_the_gaps_enabled()\u0027, and dbg_failure_mode helpers for\nconsistency.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d808efb407e1a2cf83a8d21411157195f26bdef9",
      "tree": "a939d339288290b10b332dc6890646e68867aa20",
      "parents": [
        "bb2615d4d14777fd37e2b91bd99b92c0354813d1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 18:14:38 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: amend debugging inode size check function prototype\n\nAdd \u0027const struct ubifs_info *c\u0027 parameter to \u0027dbg_check_synced_i_size()\u0027\nfunction because we\u0027ll need it in the next patch when we switch to debugfs.\nSo this patch is just a preparation.\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": "4315fb4072905e45da94d51e2c1e86fa41c5fc5f",
      "tree": "e8e5f514cddf7b0d13cfe71897a83019da58da5c",
      "parents": [
        "bfcf677decd8051c305b1d8fda407d069c2361e3"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed May 25 17:32:42 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: improve inode dumping function\n\nTeach \u0027dbg_dump_inode()\u0027 dump directory entries for directory inodes.\nThis requires few additional changes:\n1. The \u0027c\u0027 argument of \u0027dbg_dump_inode()\u0027 cannot be const any more.\n2. Users of \u0027dbg_dump_inode()\u0027 should not have \u0027tnc_mutex\u0027 locked.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "ae380ce04731579f45f27b3a84d7d8d8ee1f9b1b",
      "tree": "f887f69b40899eb6bc5a61554da9485100ed2f89",
      "parents": [
        "549c999a768a7a144c60a0faa58f34c48f39112b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 19 14:13:16 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: lessen the size of debugging info data structure\n\nThis patch lessens the \u0027struct ubifs_debug_info\u0027 size by 90 bytes by\nallocating less bytes for the debugfs root directory name. It introduces macros\nfor the name patter an length instead of hard-coding 100 bytes. It also makes\nUBIFS use \u0027snprintf()\u0027 and teaches it to gracefully catch situations when the\nname array is too short.\n\nAdditionally, this patch makes 2 unrelated changes - I just thought they do not\ndeserve separate commits: simplifies \u0027ubifs_assert()\u0027 for non-debugging case\nand makes \u0027dbg_debugfs_init()\u0027 properly verify debugfs return code which may be\nan error code or NULL, so we should you \u0027IS_ERR_OR_NULL()\u0027 instead of\n\u0027IS_ERR()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "56e46742e846e4de167dde0e1e1071ace1c882a5",
      "tree": "ffed000ab5bb33d482878bd72420474bdab1eec4",
      "parents": [
        "bdc1a1b6100c78a6002b1761ebe36d5fe8f8585b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 17 15:15:30 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 23 08:22:20 2011 +0300"
      },
      "message": "UBIFS: switch to dynamic printks\n\nSwitch to debugging using dynamic printk (pr_debug()). There is no good reason\nto carry custom debugging prints if there is so cool and powerful generic\ndynamic printk infrastructure, see Documentation/dynamic-debug-howto.txt. With\ndynamic printks we can switch on/of individual prints, per-file, per-function\nand per format messages. This means that instead of doing old-fashioned\n\necho 1 \u003e /sys/module/ubifs/parameters/debug_msgs\n\nto enable general messages, we can do:\n\necho \u0027format \"UBIFS DBG gen\" +ptlf\u0027 \u003e control\n\nto enable general messages and additionally ask the dynamic printk\ninfrastructure to print process ID, line number and function name. So there is\nno reason to keep UBIFS-specific crud if there is more powerful generic thing.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "9f58d3503a1368673609db1962e4a584261b62eb",
      "tree": "9b31f7f6f6c8513d80b5e807f029d225c9be9b25",
      "parents": [
        "e11602ea3e43392904db7a579dc990062ebb7151"
      ],
      "author": {
        "name": "Matthew L. Creech",
        "email": "mlcreech@gmail.com",
        "time": "Thu May 05 16:33:20 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:14 2011 +0300"
      },
      "message": "UBIFS: add a superblock flag for free space fix-up\n\nThe \u0027space_fixup\u0027 flag can be set in the superblock of a new filesystem by\nmkfs.ubifs to indicate that any eraseblocks with free space remaining should be\nfixed-up the first time it\u0027s mounted (after which the flag is un-set). This\nmeans that the UBIFS image has been flashed by a \"dumb\" flasher and the free\nspace has been actually programmed (writing all 0xFFs), so this free space\ncannot be used. UBIFS fixes the free space up by re-writing the contents of all\nLEBs with free space using the atomic LEB change UBI operation.\n\nArtem: improved commit message, add some more commentaries to the code.\n\nSigned-off-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "45cd5cddbfbdf0993dbc76d06ed77d0bf547b421",
      "tree": "90fb0e0924d94de9b6a5d2dc3b27841fd882c5d5",
      "parents": [
        "69f8a75a7d9db05a7ee708514d605ab74956c73e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 02 22:34:39 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:57 2011 +0300"
      },
      "message": "UBIFS: fix debugging FS checking failure\n\nWhen the debugging self-checks are enabled, we go trough whole file-system\nafter mount and check/validate every single node referred to by the index.\nThis is implemented by the \u0027dbg_check_filesystem()\u0027 function. However, this\nfunction fails if we mount \"unclean\" file-system, i.e., if we mount the\nfile-system after a power cut. It fails with the following symptoms:\n\nUBIFS DBG (pid 8171): ubifs_recover_size: ino 937 size 3309925 -\u003e 3317760\nUBIFS: recovery deferred\nUBIFS error (pid 8171): check_leaf: data node at LEB 1000:0 is not within inode size 3309925\n\nThe reason of failure is that recovery fixed up the inode size in memory, but\nnot on the flash so far. So the value on the flash is incorrect so far,\nand would be corrected when we re-mount R/W. But \u0027check_leaf()\u0027 ignores\nthis fact and tries to validate the size of the on-flash inode, which is\nincorrect, so it fails.\n\nThis patch teaches the checking code to look at the VFS inode cache first,\nand if there is the inode in question, use that inode instead of the inode\non the flash media. This fixes the issue.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "341e262f903afbb8c23133ed6e193ea6254f73c4",
      "tree": "5e30a1697788e1640f2d2d06c2a1a1739a0b8ff2",
      "parents": [
        "1321657d8f843641529eff26e25722158cc29349"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 22 12:11:12 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:55 2011 +0300"
      },
      "message": "UBIFS: do not change debugfs file position\n\nThis patch is a tiny improvement which removes few bytes of code.\nUBIFS debugfs files are non-seekable and the file position is ignored,\nso do not increase it in the write handler.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1321657d8f843641529eff26e25722158cc29349",
      "tree": "d3d0ad3cc1f8074f4ffb3a4700e63f0a15ee35c6",
      "parents": [
        "3b2f9a019e655f3407e4e69cdbaf8b75699b79a4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Apr 24 10:53:17 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:55 2011 +0300"
      },
      "message": "UBIFS: fix oops in lprops dump function\n\nThe \u0027dbg_dump_lprop()\u0027 is trying to detect journal head LEBs when printing,\nso it looks at the write-buffers. However, if we are in R/O mode, we\nde-allocate the write-buffers, so \u0027dbg_dump_lprop()\u0027 oopses. This patch fixes\nthe issue.\n\nNote, this patch is not critical, it is only about the debugging code path, and\nit is unlikely that anyone but UBIFS developers would ever hit this issue.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1a29af8bd740b2720caeafbffece1c0be6a9d06d",
      "tree": "ab0e9e7c327b20afbcbbc3ccf4063e8cd54a41a2",
      "parents": [
        "14ffd5d0b051b0b937df0cf3580a92f428ff70b1"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Apr 20 17:06:17 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:54 2011 +0300"
      },
      "message": "UBIFS: use EROFS when emulating failures\n\nWhen the debugging failure emulation is enabled and UBIFS decides to\nemulate an I/O error, it uses EIO error code. In which case UBIFS\nswitches into R/O mode later on. The for the user-space is that when\na failure is emulated, the file-system sometimes returns EIO and\nsometimes EROFS. This makes it more difficult to implement user-space\ntests for the failure mode. Let\u0027s be consistent and return EROFS in\nall the cases.\n\nThis patch is an improvement for the debugging code and does not affect\nthe functionality at all.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "bc3f07f0906e867270fdc2006b0bbcb130a722c1",
      "tree": "e290a98b57187896c2e5cefabc55a578f155803c",
      "parents": [
        "f1bd66afb14c25095cf6ff499c1388db423acc9e"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 13:52:20 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:54 2011 +0300"
      },
      "message": "UBIFS: make force in-the-gaps to be a general self-check\n\nUBIFS can force itself to use the \u0027in-the-gaps\u0027 commit method - the last resort\nmethod which is normally invoced very very rarely. Currently this \"force\nint-the-gaps\" debugging feature is a separate test mode. But it is a bit saner\nto make it to be the \"general\" self-test check instead.\n\nThis patch is just a clean-up which should make the debugging code look a bit\nnicer and easier to use - we have way too many debugging options.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\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": "8c3067e445fb25119761356c88abc39dacfb9524",
      "tree": "832aafb6b5c0d5d621d014ee346c99c3c8eb9efd",
      "parents": [
        "8ff83089f8bcbd9a2e898b68f1a46487c8b6e38c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Mar 30 13:18:58 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: rearrange the budget dump\n\nRe-arrange the budget dump and make sure we first dump all\nthe \u0027struct ubifs_budg_info\u0027 fields, and then the other information.\nAdditionally, print the \u0027uncommitted_idx\u0027 variable.\n\nThis change is required for to the following dumping function\nenhancement where it will be possible to dump saved\n\u0027struct ubifs_budg_info\u0027 objects, not only the current one.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "8ff83089f8bcbd9a2e898b68f1a46487c8b6e38c",
      "tree": "36b286946894a4b797d850cca67603cac89ec1f2",
      "parents": [
        "b137545c44fc0c80fb778abb0c582bda5601e8f8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Mar 29 18:19:50 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: simplify dbg_dump_budg calling conventions\n\nThe current \u0027dbg_dump_budg()\u0027 calling convention is that the\n\u0027c-\u003espace_lock\u0027 spinlock is held. However, none of the callers\nactually use it from contects which have \u0027c-\u003espace_lock\u0027 locked,\nso all callers have to explicitely lock and unlock the spinlock.\nThis is not very sensible convention. This patch changes it and\nmakes \u0027dbg_dump_budg()\u0027 lock the spinlock instead of imposing this\nto the callers. This simplifies the code a little.\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": "1bbfc848a915081237660d898bbcf50e4a8fc59f",
      "tree": "50016a57e5f1e2e8f0521a49a66e5cb0ad637ff9",
      "parents": [
        "693d92a1bbc9e42681c42ed190bd42b636ca876f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Mar 21 16:26:42 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 13 19:23:53 2011 +0300"
      },
      "message": "UBIFS: make debugfs files non-seekable\n\nTurn the debufs files UBIFS maintains into non-seekable. Indeed, none\nof them is supposed to be seek\u0027ed.\n\nDo this by making the \u0027.lseek()\u0027 handler to be \u0027no_llseek()\u0027 and by\nusing \u0027nonseekable_open()\u0027 in the \u0027.open()\u0027 operation.\n\nThis does mean an API break but this debugging API is only used by a couple\nof test scripts which do not rely in the \u0027llseek()\u0027 operation.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7da6443aca9be29c6948dcbd636ad50154d0bc0c",
      "tree": "e7489f3d988171c4737f46ce6120411e995ed2ac",
      "parents": [
        "95169535113073993a3ed97ecc21831657f42a80"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Apr 04 17:16:39 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 11:07:37 2011 +0300"
      },
      "message": "UBIFS: fix debugging failure in dbg_check_space_info\n\nThis patch fixes a debugging failure with which looks like this:\nUBIFS error (pid 32313): dbg_check_space_info: free space changed from 6019344 to 6022654\n\nThe reason for this failure is described in the comment this patch adds\nto the code. But in short - \u0027c-\u003efreeable_cnt\u0027 may be different before\nand after re-mounting, and this is normal. So the debugging code should\nmake sure that free space calculations do not depend on \u0027c-\u003efreeable_cnt\u0027.\n\nA similar issue has been reported here:\nhttp://lists.infradead.org/pipermail/linux-mtd/2011-April/034647.html\n\nThis patch should fix it.\n\nFor the -stable guys: this patch is only relevant for kernels 2.6.30\nonwards.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org [2.6.30+]\n"
    },
    {
      "commit": "95169535113073993a3ed97ecc21831657f42a80",
      "tree": "7f118921eb0d46effe0f9bd4e4d766ead16bd663",
      "parents": [
        "cc6a86b950d69cfe542ee0d0ff30790152936a00"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 01 10:16:17 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:46:01 2011 +0300"
      },
      "message": "UBIFS: fix error path in dbg_debugfs_init_fs\n\nThe debug interface is substandard and on error returns either\nNULL or an error code packed in the pointer. So using \"IS_ERR\"\nfor the pointers returned by debugfs function is incorrect.\nInstead, we should use IS_ERR_OR_NULL.\n\nThis path is an improved vestion of the original patch from\nPhil Carmody.\n\nReported-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "cc6a86b950d69cfe542ee0d0ff30790152936a00",
      "tree": "209ac625bd17d661bc086f75615c8ac712309981",
      "parents": [
        "81354de3d8691c2dedcc686cd2c167819ff0df10"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Apr 01 10:10:52 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Apr 05 10:46:01 2011 +0300"
      },
      "message": "UBIFS: unify error path dbg_debugfs_init_fs\n\nThis is just a small clean-up patch which simlifies and unifies the\nerror path in the dbg_debugfs_init_fs(). We have common error path\nfor all failure cases in this function except of the very first\ncase. And this patch makes the first failure case use the same\nerror path as the other cases by using the \u0027fname\u0027 and \u0027dent\u0027\nvariables.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nAcked-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\n"
    },
    {
      "commit": "fc5e58c0c4fd86881ec8ba8e46e41a07e25dc7a6",
      "tree": "21c1223c94bc366e48a7f4f5a19011f7defc7631",
      "parents": [
        "3d46b316bcc1ecb17f8e7874a8ec620c64864898"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Mar 24 16:14:26 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Mar 24 16:14:26 2011 +0200"
      },
      "message": "UBIFS: use GFP_NOFS properly\n\nThis patch fixes a brown-paperbag bug which was introduced by me:\nI used incorrect \"GFP_KERNEL | GFP_NOFS\" allocation flags to make\nsure my allocations do not cause write-back. But the correct form\nis \"GFP_NOFS\".\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7c83cc91ab1505e53ebfb99b1ea19ed1cf01c1b0",
      "tree": "7c21e030b4b904b9c201d0e20658ac32867a458b",
      "parents": [
        "f5cf319cf32d2284b3fbc24f3c526e2a9363b4ac"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 11 17:15:55 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Mar 16 14:05:25 2011 +0200"
      },
      "message": "UBIFS: save 128KiB or more RAM\n\nWhen debugging is enabled, we allocate a buffer of PEB size for\nvarious debugging purposes. However, now all users of this buffer\nare gone and we can safely remove it and save 128KiB or more RAM.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "73d9aec3fd212d7bf8af5aa1eca9c79f8a90ad5a",
      "tree": "f91a454bb4958af70a7e701a1e32c0231e2be548",
      "parents": [
        "2bcf002159c2aedd5c0ab5a21c3ea73fec87ff8d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 11 15:39:09 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Mar 16 14:05:24 2011 +0200"
      },
      "message": "UBIFS: allocate dump buffer on demand\n\nInstead of using pre-allocated \u0027c-\u003edbg-\u003ebuf\u0027 buffer in\n\u0027dbg_dump_leb()\u0027, dynamically allocate it when needed. The intend\nis to get rid of the pre-allocated \u0027c-\u003edbg-\u003ebuf\u0027 buffer and save\n128KiB of RAM (or more if PEB size is larger). Indeed, currently we\nallocate this memory even if the user never enables any self-check,\nwhich is wasteful.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "cce3f612fedcbeee61977497b99bbf68a4082b6b",
      "tree": "ceef1d444004e81ecae2b295468abded19ea1114",
      "parents": [
        "6342aaebda9b94e3cd101ba13eee690ac6577124"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Mar 09 13:36:23 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 11 10:52:07 2011 +0200"
      },
      "message": "UBIFS: simplify UBIFS Kconfig menu\n\nRemove debug message level and debug checks Kconfig options as they\nproved to be useless anyway. We have sysfs interface which we can\nuse for fine-grained debugging messages and checks selection, see\nDocumentation/filesystems/ubifs.txt for mode details.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "8c559d30b4e59cf6994215ada1fe744928f494bf",
      "tree": "d1a539f486d4f6a6150bee42a1e6e22bc98c4545",
      "parents": [
        "be7b42a5cb4c5050bcab4f57022007155c119d45"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Fri Feb 04 15:24:19 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Feb 06 18:59:31 2011 +0200"
      },
      "message": "UBIFS: restrict world-writable debugfs files\n\nDon\u0027t allow everybody to dump sensitive information about filesystems.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "06d362931a530e0d48c1a9554a752da4ed240f0b",
      "tree": "283304f08f3c01cec6922e6bb76291a9588352db",
      "parents": [
        "f5d9d249b9a6884daff513ef08afa43d3f7e085f",
        "6599fcbd01baf9d57e847db103d215ea4ec088f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 16:34:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 22 16:34:03 2010 -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: do not allocate unneeded scan buffer\n  UBIFS: do not forget to cancel timers\n  UBIFS: remove a bit of unneeded code\n  UBIFS: add a commentary about log recovery\n  UBIFS: avoid kernel error if ubifs superblock read fails\n  UBIFS: introduce new flags for RO mounts\n  UBIFS: introduce new flag for RO due to errors\n  UBIFS: check return code of pnode_lookup\n  UBIFS: check return code of ubifs_lpt_lookup\n  UBIFS: improve error reporting when reading bad node\n  UBIFS: introduce list sorting debugging checks\n  UBIFS: fix assertion warnings in comparison function\n  UBIFS: mark unused key objects as invalid\n  UBIFS: do not write rubbish into truncation scanning node\n  UBIFS: improve assertion in node comparison functions\n  UBIFS: do not use key type in list_sort\n  UBIFS: do not look up truncation nodes\n  UBIFS: fix assertion warning\n  UBIFS: do not treat ENOSPC specially\n  UBIFS: switch to RO mode after synchronizing\n"
    },
    {
      "commit": "6038f373a3dc1f1c26496e60b6c40b164716f07e",
      "tree": "a0d3bbd026eea41b9fc36b8c722cbaf56cd9f825",
      "parents": [
        "1ec5584e3edf9c4bf2c88c846534d19cf986ba11"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Sun Aug 15 18:52:59 2010 +0200"
      },
      "committer": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Fri Oct 15 15:53:27 2010 +0200"
      },
      "message": "llseek: automatically add .llseek fop\n\nAll file_operations should get a .llseek operation so we can make\nnonseekable_open the default for future file operations without a\n.llseek pointer.\n\nThe three cases that we can automatically detect are no_llseek, seq_lseek\nand default_llseek. For cases where we can we can automatically prove that\nthe file offset is always ignored, we use noop_llseek, which maintains\nthe current behavior of not returning an error from a seek.\n\nNew drivers should normally not use noop_llseek but instead use no_llseek\nand call nonseekable_open at open time.  Existing drivers can be converted\nto do the same when the maintainer knows for certain that no user code\nrelies on calling seek on the device file.\n\nThe generated code is often incorrectly indented and right now contains\ncomments that clarify for each added line why a specific variant was\nchosen. In the version that gets submitted upstream, the comments will\nbe gone and I will manually fix the indentation, because there does not\nseem to be a way to do that using coccinelle.\n\nSome amount of new code is currently sitting in linux-next that should get\nthe same modifications, which I will do at the end of the merge window.\n\nMany thanks to Julia Lawall for helping me learn to write a semantic\npatch that does all this.\n\n\u003d\u003d\u003d\u003d\u003d begin semantic patch \u003d\u003d\u003d\u003d\u003d\n// This adds an llseek\u003d method to all file operations,\n// as a preparation for making no_llseek the default.\n//\n// The rules are\n// - use no_llseek explicitly if we do nonseekable_open\n// - use seq_lseek for sequential files\n// - use default_llseek if we know we access f_pos\n// - use noop_llseek if we know we don\u0027t access f_pos,\n//   but we still want to allow users to call lseek\n//\n@ open1 exists @\nidentifier nested_open;\n@@\nnested_open(...)\n{\n\u003c+...\nnonseekable_open(...)\n...+\u003e\n}\n\n@ open exists@\nidentifier open_f;\nidentifier i, f;\nidentifier open1.nested_open;\n@@\nint open_f(struct inode *i, struct file *f)\n{\n\u003c+...\n(\nnonseekable_open(...)\n|\nnested_open(...)\n)\n...+\u003e\n}\n\n@ read disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n   *off \u003d E\n|\n   *off +\u003d E\n|\n   func(..., off, ...)\n|\n   E \u003d *off\n)\n...+\u003e\n}\n\n@ read_no_fpos disable optional_qualifier exists @\nidentifier read_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t read_f(struct file *f, char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ write @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\nexpression E;\nidentifier func;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n\u003c+...\n(\n  *off \u003d E\n|\n  *off +\u003d E\n|\n  func(..., off, ...)\n|\n  E \u003d *off\n)\n...+\u003e\n}\n\n@ write_no_fpos @\nidentifier write_f;\nidentifier f, p, s, off;\ntype ssize_t, size_t, loff_t;\n@@\nssize_t write_f(struct file *f, const char *p, size_t s, loff_t *off)\n{\n... when !\u003d off\n}\n\n@ fops0 @\nidentifier fops;\n@@\nstruct file_operations fops \u003d {\n ...\n};\n\n@ has_llseek depends on fops0 @\nidentifier fops0.fops;\nidentifier llseek_f;\n@@\nstruct file_operations fops \u003d {\n...\n .llseek \u003d llseek_f,\n...\n};\n\n@ has_read depends on fops0 @\nidentifier fops0.fops;\nidentifier read_f;\n@@\nstruct file_operations fops \u003d {\n...\n .read \u003d read_f,\n...\n};\n\n@ has_write depends on fops0 @\nidentifier fops0.fops;\nidentifier write_f;\n@@\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n...\n};\n\n@ has_open depends on fops0 @\nidentifier fops0.fops;\nidentifier open_f;\n@@\nstruct file_operations fops \u003d {\n...\n .open \u003d open_f,\n...\n};\n\n// use no_llseek if we call nonseekable_open\n////////////////////////////////////////////\n@ nonseekable1 depends on !has_llseek \u0026\u0026 has_open @\nidentifier fops0.fops;\nidentifier nso ~\u003d \"nonseekable_open\";\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d nso, ...\n+.llseek \u003d no_llseek, /* nonseekable */\n};\n\n@ nonseekable2 depends on !has_llseek @\nidentifier fops0.fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...  .open \u003d open_f, ...\n+.llseek \u003d no_llseek, /* open uses nonseekable */\n};\n\n// use seq_lseek for sequential files\n/////////////////////////////////////\n@ seq depends on !has_llseek @\nidentifier fops0.fops;\nidentifier sr ~\u003d \"seq_read\";\n@@\nstruct file_operations fops \u003d {\n...  .read \u003d sr, ...\n+.llseek \u003d seq_lseek, /* we have seq_read */\n};\n\n// use default_llseek if there is a readdir\n///////////////////////////////////////////\n@ fops1 depends on !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier readdir_e;\n@@\n// any other fop is used that changes pos\nstruct file_operations fops \u003d {\n... .readdir \u003d readdir_e, ...\n+.llseek \u003d default_llseek, /* readdir is present */\n};\n\n// use default_llseek if at least one of read/write touches f_pos\n/////////////////////////////////////////////////////////////////\n@ fops2 depends on !fops1 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read.read_f;\n@@\n// read fops use offset\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d default_llseek, /* read accesses f_pos */\n};\n\n@ fops3 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+\t.llseek \u003d default_llseek, /* write accesses f_pos */\n};\n\n// Use noop_llseek if neither read nor write accesses f_pos\n///////////////////////////////////////////////////////////\n\n@ fops4 depends on !fops1 \u0026\u0026 !fops2 \u0026\u0026 !fops3 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\nidentifier write_no_fpos.write_f;\n@@\n// write fops use offset\nstruct file_operations fops \u003d {\n...\n .write \u003d write_f,\n .read \u003d read_f,\n...\n+.llseek \u003d noop_llseek, /* read and write both use no f_pos */\n};\n\n@ depends on has_write \u0026\u0026 !has_read \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier write_no_fpos.write_f;\n@@\nstruct file_operations fops \u003d {\n... .write \u003d write_f, ...\n+.llseek \u003d noop_llseek, /* write uses no f_pos */\n};\n\n@ depends on has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\nidentifier read_no_fpos.read_f;\n@@\nstruct file_operations fops \u003d {\n... .read \u003d read_f, ...\n+.llseek \u003d noop_llseek, /* read uses no f_pos */\n};\n\n@ depends on !has_read \u0026\u0026 !has_write \u0026\u0026 !fops1 \u0026\u0026 !fops2 \u0026\u0026 !has_llseek \u0026\u0026 !nonseekable1 \u0026\u0026 !nonseekable2 \u0026\u0026 !seq @\nidentifier fops0.fops;\n@@\nstruct file_operations fops \u003d {\n...\n+.llseek \u003d noop_llseek, /* no read or write fn */\n};\n\u003d\u003d\u003d\u003d\u003d End semantic patch \u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "3bb66b47a4268a4419594b4c4aec58dbeb6b58d2",
      "tree": "42e4e7b28adc166573ffef4c23dc03492fd981b4",
      "parents": [
        "1a9476a77083354005750c9df45ba9d71ad12c8c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sat Aug 07 10:06:11 2010 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Aug 30 10:19:09 2010 +0300"
      },
      "message": "UBIFS: introduce list sorting debugging checks\n\nThe UBIFS bug in the GC list sorting comparison functions inspired\nme to write internal debugging check functions which verify that\nthe list of nodes is sorted properly.\n\nSo, this patch implements 2 new debugging functions:\n o \u0027dbg_check_data_nodes_order()\u0027 - check order of data nodes list\n o \u0027dbg_check_nondata_nodes_order()\u0027 - check order of non-data nodes list\n\nThe debugging functions are executed only if general UBIFS debugging checks are\nenabled. And they are compiled out if UBIFS debugging is disabled.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "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": "b38882f5c066dc681679e90f1903eda323e605b1",
      "tree": "da9f693c414415c416e69e45bd9379bb27003640",
      "parents": [
        "6afaf8a484cbbfd2ccf58a4e5396d1f280469789"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Mon Dec 07 14:21:45 2009 +0100"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 08 14:24:00 2009 +0200"
      },
      "message": "UBIFS: fix return code in check_leaf\n\nReturn the PTR_ERR of the correct pointer. This fixes the debugging code.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e055f7e873d900925c222cf2d1ec955af4a9ca90",
      "tree": "9696d7bcf60f35140b10a2c0ecf421991623c430",
      "parents": [
        "be9e62a7307583594d88f6ccf57a4e30308e7b21"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 17 15:08:31 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 17 15:08:31 2009 +0300"
      },
      "message": "UBIFS: fix debugging dump\n\nIn \u0027dbg_check_space_info()\u0027 we want to dump current lprops statistics,\nbut actually dump old statistics. Fix this.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "be9e62a7307583594d88f6ccf57a4e30308e7b21",
      "tree": "b30b5ccb97f583c4bbc2095923f6f5f9fd18890a",
      "parents": [
        "055da1b704e95fea39597bd84d64cea7d4f7d2aa"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 10:17:23 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 15 17:09:48 2009 +0300"
      },
      "message": "UBIFS: improve lprops dump\n\nImprove \u0027dbg_dump_lprop()\u0027 and print dark and dead space there,\ndecode flags, and journal heads.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "77a7ae580c6cc8a0f0d5d7a7d61eb7e9fe8d99dc",
      "tree": "299adfb136ca146d9bbfd7e171351ab971c1b93d",
      "parents": [
        "d6d140097beb554daa967d3fb576e94ad2f82dcd"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 15 15:03:51 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 15 17:05:06 2009 +0300"
      },
      "message": "UBIFS: improve journal head debugging prints\n\nConvert the journal head integer into the head name when printing\ndebugging information.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "348709bad348d2fd013e1529b4cf5f220717c328",
      "tree": "e5ba0fb86c1c41d078c38f6ca67bda957241ef53",
      "parents": [
        "e3c3efc243462d67ba9fa7f67620dcbc4597bf0a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Aug 25 15:00:55 2009 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 10 12:06:47 2009 +0300"
      },
      "message": "UBIFS: do not print scary error messages needlessly\n\nAt the moment UBIFS print large and scary error messages and\nflash dumps in case of nearly any corruption, even if it is\na recoverable corruption. For example, if the master node is\ncorrupted, ubifs_scan() prints error dumps, then UBIFS recovers\njust fine and goes on.\n\nThis patch makes UBIFS print scary error messages only in\nreal cases, which are not recoverable. It adds \u0027quiet\u0027 argument\nto the \u0027ubifs_scan()\u0027 function, so the caller may ask \u0027ubi_scan()\u0027\nnot to print error messages if the caller is able to do recovery.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nReviewed-by: Adrian Hunter \u003cAdrian.Hunter@nokia.com\u003e\n"
    },
    {
      "commit": "7d4e9ccb435e51e013e63abd340b4f496428139c",
      "tree": "c61d7f4b984cf67de137f8a8f821e1dc4da3fa50",
      "parents": [
        "fb1cd01a33ecb8a49d590c034ba146dff80c5597"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:11:12 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Mar 20 19:11:12 2009 +0200"
      },
      "message": "UBIFS: fix commentaries\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "c9927c3ee2d3d14893efd793a2a9ea772ddb4289",
      "tree": "f1ed930413d6dd2f81c46c226d288310622c02c6",
      "parents": [
        "0a6fb8d9c435c612171b453449f98da28e9969a5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Mar 16 09:42:03 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Mar 16 10:52:02 2009 +0200"
      },
      "message": "UBIFS: use KERN_CONT\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "227c75c91dbfa037d109ab7ef45b7f5ba9cab6d0",
      "tree": "605bf9ec3f49a5209d9efac23ef6ba47baf44072",
      "parents": [
        "3eb14297c4b85af0c5e6605e18d93b6031330d71"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Thu Jan 29 11:53:51 2009 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Jan 29 16:15:51 2009 +0200"
      },
      "message": "UBIFS: spelling fix \u0027date\u0027 -\u003e \u0027data\u0027\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "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": "5d38b3ac78e0e0e420fba134716fc3d20e6b978a",
      "tree": "4a1496fd04e1d7d92b0ce1e1c3f29e443ca46c53",
      "parents": [
        "80736d41f895bc472b2433a1c27fa6d4afe6ca35"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 30 17:58:42 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:25 2008 +0200"
      },
      "message": "UBIFS: print debugging messages properly\n\nWe cannot use ubifs_err() macro with DBGKEY() and DBGKEY1(),\nbecause this is racy and holding dbg_lock is needed. Use\ndbg_err() instead, which does have the lock held.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f92b982680e4b4149c559789a54e1e9db190752a",
      "tree": "fb24f6351be9f307d8f9001f226f8aa0ee71cfdc",
      "parents": [
        "6a4a9b438fe43397f4652853838f284cddd629b5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun Dec 28 11:34:26 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 31 14:13:25 2008 +0200"
      },
      "message": "UBIFS: fix checkpatch.pl warnings\n\nThese are mostly long lines and wrong indentation warning\nfixes. But also there are two volatile variables and\ncheckpatch.pl complains about them:\n\nWARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt\n+       volatile int gc_seq;\n\nWARNING: Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt\n+       volatile int gced_lnum;\n\nWell, we anyway use smp_wmb() for c-\u003egc_seq and c-\u003egced_lnum, so\nthese \u0027volatile\u0027 modifiers can be just dropped.\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": "21a60258976227daaf7a4c35e96c3d77d4988b15",
      "tree": "73c9de022a0a947ca4f5e8d8edfdbd8321270464",
      "parents": [
        "24fa9e9438b263600737c839b36543981d87d65b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Dec 12 11:13:17 2008 -0500"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 23 12:22:58 2008 +0200"
      },
      "message": "UBIFS: improve budgeting dump\n\nDump available space calculated by budgeting subsystem.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "24fa9e9438b263600737c839b36543981d87d65b",
      "tree": "4426bb9b605db661f9bc2e5320a650e192f7fe9f",
      "parents": [
        "7bbe5b5aa6d1e38af6f1fc866efc0aa461d73f19"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 17 17:45:14 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Dec 23 12:22:39 2008 +0200"
      },
      "message": "UBIFS: fix tnc dumping\n\ndebugfs tnc dumping was broken because of an obvious typo.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "2ba5f7ae8165b3f575dd3a7d8bb18f421fab8273",
      "tree": "c2916fd6398b0a380eed9ac3cd9e59c92ae8cbd5",
      "parents": [
        "787845bdeadd368eedeace92d5bf53f5aa1450ba"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Oct 31 17:32:30 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Dec 03 13:14:34 2008 +0200"
      },
      "message": "UBIFS: introduce LPT dump function\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"
    },
    {
      "commit": "e84461ad9c4f0ff91ab8553596acdb7bf5522df4",
      "tree": "e5b17679617466289603df7644d11bd213cef2ff",
      "parents": [
        "e2966cbe8901e3f1c120ef82d29c59db1b3bd882"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Oct 29 12:08:43 2008 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Nov 06 11:06:31 2008 +0200"
      },
      "message": "UBIFS: fix compilation warnings\n\nWe print \u0027ino_t\u0027 type using \u0027%lu\u0027 printk() placeholder, but this\nresults in many warnings when compiling for Alpha platform. Fix\nthis by adding (unsingned long) casts.\n\nFixes these warnings:\n\nfs/ubifs/journal.c:693: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/journal.c:1131: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/dir.c:163: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/tnc.c:2680: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/tnc.c:2700: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/replay.c:1066: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 7 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:108: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:135: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:142: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:154: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:159: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:451: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:539: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:612: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:843: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/orphan.c:856: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/recovery.c:1438: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/recovery.c:1443: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/recovery.c:1475: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/recovery.c:1495: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:105: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:105: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:110: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:110: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:114: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:114: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:118: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:118: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 3 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1591: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1671: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1674: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1680: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1699: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1788: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1821: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1833: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1924: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1932: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1938: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1945: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1953: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1960: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1967: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1973: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1988: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 4 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:1991: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 5 has type \u0027ino_t\u0027\nfs/ubifs/debug.c:2009: warning: format \u0027%lu\u0027 expects type \u0027long unsigned int\u0027, but argument 2 has type \u0027ino_t\u0027\n\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "0ecb9529a4d47825778e7b0d226eb36019252a9d",
      "tree": "1d39f3ba19e63ab4a47171433898171eba5ee793",
      "parents": [
        "069782a1ee55105220e5ae2db448495dac267cb1"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Oct 24 10:52:57 2008 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Nov 06 11:06:19 2008 +0200"
      },
      "message": "UBIFS: endian handling fixes and annotations\n\nNoticed by sparse:\nfs/ubifs/file.c:75:2: warning: restricted __le64 degrades to integer\nfs/ubifs/file.c:629:4: warning: restricted __le64 degrades to integer\nfs/ubifs/dir.c:431:3: warning: restricted __le64 degrades to integer\n\nThis should be checked to ensure the ubifs_assert is working as\nintended, I\u0027ve done the suggested annotation in this patch.\n\nfs/ubifs/sb.c:298:6: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:298:6:    expected int [signed] [assigned] tmp\nfs/ubifs/sb.c:298:6:    got restricted __le64 [usertype] \u003cnoident\u003e\nfs/ubifs/sb.c:299:19: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:299:19:    expected restricted __le64 [usertype] atime_sec\nfs/ubifs/sb.c:299:19:    got int [signed] [assigned] tmp\nfs/ubifs/sb.c:300:19: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:300:19:    expected restricted __le64 [usertype] ctime_sec\nfs/ubifs/sb.c:300:19:    got int [signed] [assigned] tmp\nfs/ubifs/sb.c:301:19: warning: incorrect type in assignment (different base types)\nfs/ubifs/sb.c:301:19:    expected restricted __le64 [usertype] mtime_sec\nfs/ubifs/sb.c:301:19:    got int [signed] [assigned] tmp\n\nThis looks like a bugfix as your tmp was a u32 so there was truncation in\nthe atime, mtime, ctime value, probably not intentional, add a tmp_le64\nand use it here.\n\nfs/ubifs/key.h:348:9: warning: cast to restricted __le32\nfs/ubifs/key.h:348:9: warning: cast to restricted __le32\nfs/ubifs/key.h:419:9: warning: cast to restricted __le32\n\nRead from the annotated union member instead.\n\nfs/ubifs/recovery.c:175:13: warning: incorrect type in assignment (different base types)\nfs/ubifs/recovery.c:175:13:    expected unsigned int [unsigned] [usertype] save_flags\nfs/ubifs/recovery.c:175:13:    got restricted __le32 [usertype] flags\nfs/ubifs/recovery.c:186:13: warning: incorrect type in assignment (different base types)\nfs/ubifs/recovery.c:186:13:    expected restricted __le32 [usertype] flags\nfs/ubifs/recovery.c:186:13:    got unsigned int [unsigned] [usertype] save_flags\n\nDo byteshifting at compile time of the flag value.  Annotate the saved_flags\nas le32.\n\nfs/ubifs/debug.c:368:10: warning: cast to restricted __le32\nfs/ubifs/debug.c:368:10: warning: cast from restricted __le64\n\nShould be checked if the truncation was intentional, I\u0027ve changed the\nprintk to print the full width.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "73944a6de048c2c49422e9063e57198256efd23e",
      "tree": "048789b4d3228dcf6e0f33a446bdbf423ebf5b6f",
      "parents": [
        "5c0013c16bd2ee08ffef1a1365622556a57218f5"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Sep 12 18:13:31 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:59 2008 +0300"
      },
      "message": "UBIFS: add more debugging messages for LPT\n\nAlso add debugging checks for LPT size and separate\nout c-\u003echeck_lpt_free from unrelated bitfields.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "b5e426e9a4a8d4ccc65a6849420d47f87c080d5d",
      "tree": "b50d85c186e58938a78e32daae27fd530169de1f",
      "parents": [
        "be61678b1d97c9b47bb839beb3c3f48da36af072"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 09 11:20:35 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Sep 30 11:12:58 2008 +0300"
      },
      "message": "UBIFS: update dbg_dump_inode\n\n\u0027dbg_dump_inode()\u0027 is quite outdated and does not print all\nthe fileds.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7424bac82ff3bd956ea04101550e01bdae17284d",
      "tree": "a9f5e3aacc822ad1bdb9fcb84193b44e1df147d3",
      "parents": [
        "6e14968c869cd30e236bb626dd0c16421d2a658d"
      ],
      "author": {
        "name": "Alexander Beregalov",
        "email": "a.beregalov@gmail.com",
        "time": "Wed Sep 17 22:09:41 2008 +0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu Sep 18 09:57:57 2008 +0300"
      },
      "message": "UBIFS: fix printk format warnings\n\nfs/ubifs/dir.c:428: warning: format \u0027%llu\u0027 expects type \u0027long long\nunsigned int\u0027, but argument 5 has type \u0027long unsigned int\u0027\n\nfs/ubifs/debug.c:541: warning: format \u0027%llu\u0027 expects type \u0027long long\nunsigned int\u0027, but argument 2 has type \u0027long unsigned int\u0027\n\nSigned-off-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1de9415906bccab51fb74c6adf575948610f0909",
      "tree": "585d0a78393c8a96d8aa031bf248b98af5a79cb7",
      "parents": [
        "dab4b4d2f915a65022343012a795f4ae4ae7e83c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jul 25 12:58:38 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:35:58 2008 +0300"
      },
      "message": "UBIFS: print pid in dump function\n\nUseful when something fails and there are many processes\nracing.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "16dfd804b44ef7156d1c201f100bd0d9dc6b7c4b",
      "tree": "8286d4c108b93037f0775ca5fbaf09985b5f658b",
      "parents": [
        "1e0f358e29cc91c8eb09e10cbf1f6bb58a62c795"
      ],
      "author": {
        "name": "Adrian Hunter",
        "email": "ext-adrian.hunter@nokia.com",
        "time": "Fri Jul 18 16:47:41 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Aug 13 11:22:41 2008 +0300"
      },
      "message": "UBIFS: fix error return in failure mode\n\nUBIFS recovery testing debug facility simulates media failures.\nWhen simulating an IO error, the error code returned must be\n-EIO but it was not always if the user switched off the\ndebug recovery testing option at the same time.\n\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    },
    {
      "commit": "1e51764a3c2ac05a23a22b2a95ddee4d9bffb16d",
      "tree": "919debdd48aef9eee9ff0e8f465ef2649325b993",
      "parents": [
        "e56a99d5a42dcb91e622ae7a0289d8fb2ddabffb"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon Jul 14 19:08:37 2008 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue Jul 15 17:35:15 2008 +0300"
      },
      "message": "UBIFS: add new flash file system\n\nThis is a new flash file system. See\nhttp://www.linux-mtd.infradead.org/doc/ubifs.html\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Adrian Hunter \u003cext-adrian.hunter@nokia.com\u003e\n"
    }
  ]
}
