)]}'
{
  "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": "6d42e7e9f6d86ed4dfacde75a6cf515068f9749c",
      "tree": "dff79a3b6d98941279a041e59b94f4505ea979dc",
      "parents": [
        "77ba78776e90e8de541f13b326e284c74286252f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 02 14:25:07 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 29 23:28:32 2012 -0400"
      },
      "message": "ubifs: use generic_fillattr()\n\ndon\u0027t open-code it...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "6133308ad1a386e7e7f776003a1c44e8b54e2166",
      "tree": "b2102f3bd3b25e0f105cd91b6a22bd96a351c5d7",
      "parents": [
        "e8650a08232e75274304b812ff04cfce9af9671c",
        "62f384552b6756cf1ea71f8762d1e97dc77dbd90"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 19:30:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 22 19:30:27 2012 -0700"
      },
      "message": "Merge tag \u0027upstream-3.5-rc1\u0027 of git://git.infradead.org/linux-ubifs\n\nPull UBI and UBIFS updates from Artem Bityutskiy:\n\nUBIFS:\n   * Always support xattrs    (remove the Kconfig option)\n   * Always support debugging (remove the Kconfig option)\n   * A fix for a memory leak on error path\n   * A number of clean-ups\nUBI:\n   * Always support debugging (remove the Kconfig option)\n   * Remove \"data type\" hint support\n   * Huge amount of renames to prepare for the fastmap wor\n   * A lot of clean-ups\n\n* tag \u0027upstream-3.5-rc1\u0027 of git://git.infradead.org/linux-ubifs: (54 commits)\n  UBI: modify ubi_wl_flush function to clear work queue for a lnum\n  UBI: introduce UBI_ALL constant\n  UBI: add lnum and vol_id to struct ubi_work\n  UBI: add volume id struct ubi_ainf_peb\n  UBI: add in hex the value for UBI_INTERNAL_VOL_START to comment\n  UBI: rename scan.c to attach.c\n  UBI: remove scan.h\n  UBI: rename UBI_SCAN_UNKNOWN_EC\n  UBI: move and rename attach_by_scanning\n  UBI: rename _init_scan functions\n  UBI: amend comments after all the renamings\n  UBI: rename ubi_scan_leb_slab\n  UBI: rename ubi_scan_move_to_list\n  UBI: rename ubi_scan_destroy_ai\n  UBI: rename ubi_scan_get_free_peb\n  UBI: rename ubi_scan_rm_volume\n  UBI: rename ubi_scan_find_av\n  UBI: rename ubi_scan_add_used\n  UBI: remove unused function\n  UBI: make ubi_scan_erase_peb static and rename\n  ...\n"
    },
    {
      "commit": "4415626732defb5a4567a0a757c7c5baae7ca846",
      "tree": "31b02e4a1882d243f5fbc8599dae8fac66d917fb",
      "parents": [
        "a65a0eb6d198e058687a9214683bd1c418f20d39"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon May 14 19:49:35 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Sun May 20 20:25:59 2012 +0300"
      },
      "message": "UBI: amend commentaries WRT dtype\n\nRichard removed the \"dtype\" hint, but few commentaries were left and this patch\nremoves them. I\u0027ve also added a better description about the \"dtype\" field in\nthe ubi-user.h for people who may ever wonder what was that dtype thing about.\n\nThis patch also adds an important note that it is better to use value \"3\" for\nthe \"dtype\" field.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.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": "56b04e3e8b5cbf71c23a739f34f9a9437afa41fb",
      "tree": "5eb86fdde125a73583f0063718978c6f40406c14",
      "parents": [
        "499429760650018216eb8d0b35067cf2c5c4520b"
      ],
      "author": {
        "name": "Sidney Amani",
        "email": "seed95@gmail.com",
        "time": "Fri May 18 14:32:37 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Sun May 20 20:19:08 2012 +0300"
      },
      "message": "UBIFS: fix memory leak on error path\n\nUBIFS leaks memory on error path in \u0027mount_ubifs()\u0027. In case of failure in\n\u0027ubifs_fixup_free_space()\u0027, it does not call \u0027ubifs_lpt_free()\u0027 whereas LPT\ndata structures can potentially be allocated. The amount of memory leaked can\nbe quite high -- see \u0027ubifs_lpt_init()\u0027.\n\nThe bug was introduced when moving the LPT initialisation earlier in the\nmount process (commit \u0027781c5717a95a74b294beb38b8276943b0f8b5bb4\u0027).\n\nSigned-off-by: Sidney Amani \u003cseed95@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "499429760650018216eb8d0b35067cf2c5c4520b",
      "tree": "b5f717005065ae0e28fd6d3f586a12c18de6daad",
      "parents": [
        "a6aae4dd0ffad299a33d122f8a339b399bee5381"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri May 18 14:32:36 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Sun May 20 20:19:01 2012 +0300"
      },
      "message": "UBIFS: make ubifs_lpt_init clean-up in case of failure\n\nMost functions in UBIFS follow the following designn pattern: if the function\nallocates multiple resources, and failss at some point, it frees what it has\nallocated and returns an error. So the caller can rely on the fact that the\ncallee has cleaned up everything after own failure.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nAcked-by: Sidney Amani \u003cseed95@gmail.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": "1baafd28dc17422f10be9b2a3a75432154e3abc7",
      "tree": "14ef1f43a67a1a4972cd4ae33a18b9bde066bf1a",
      "parents": [
        "edf6be245fd34a4438646375cecb11f5feb92646"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:36:04 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed May 16 19:36:04 2012 +0300"
      },
      "message": "UBIFS: remove a couple of unused macros\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": "26fe575028703948880fce4355a210c76bb0536e",
      "tree": "0a7d04289e1eb1f1739659ebc9498d40f2add5da",
      "parents": [
        "ee983e89670704b2a05e897b161f2674a42d1508"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 13:14:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 10 19:54:35 2012 -0700"
      },
      "message": "vfs: make it possible to access the dentry hash/len as one 64-bit entry\n\nThis allows comparing hash and len in one operation on 64-bit\narchitectures.  Right now only __d_lookup_rcu() takes advantage of this,\nsince that is the case we care most about.\n\nThe use of anonymous struct/unions hides the alternate 64-bit approach\nfrom most users, the exception being a few cases where we initialize a\n\u0027struct qstr\u0027 with a static initializer.  This makes the problematic\ncases use a new QSTR_INIT() helper function for that (but initializing\njust the name pointer with a \"{ .name \u003d xyzzy }\" initializer remains\nvalid, as does just copying another qstr structure).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "1bdcc63112a0fe10030abee6ad71aaecd091e68e",
      "tree": "0fa4760bfed47a315b4d4291438b8865c06fc5c1",
      "parents": [
        "273946a5c507ff5bce12349143470e8629bbe0a7"
      ],
      "author": {
        "name": "Subodh Nijsure",
        "email": "subodh.nijsure@gmail.com",
        "time": "Sat Apr 14 09:09:57 2012 -0700"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 03 14:11:11 2012 +0300"
      },
      "message": "UBIFS: remove xattr Kconnfig option\n\nRemove CONFIG_UBIFS_FS_XATTR configuration option and associated\nUBIFS_FS_XATTR ifdefs.\n\nTesting:\n       Tested using integck while using nandsim on x86 \u0026 MX28 based\n       platform with Micron MT29F2G08ABAEAH4 nand.\n\nSigned-off-by: Subodh Nijsure \u003csnijsure@grid-net.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "273946a5c507ff5bce12349143470e8629bbe0a7",
      "tree": "c060ab6ab237d8f4f24f80d1242384f71ca51e34",
      "parents": [
        "69964ea4c7b68c9399f7977aa5b9aa6539a6a98a"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sun Apr 01 18:57:59 2012 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Thu May 03 14:11:11 2012 +0300"
      },
      "message": "UBIFS: remove douple initialization in change_category()\n\n\"heap\" is initialized twice.  I removed the first one, because it makes\nSmatch complain that we use \"new_cat\" as an offset before checking it.\n\nThis doesn\u0027t change how the code works, it\u0027s just a cleanup.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "e57f146b2837d6a2d04a8ca86cb703f509b00e98",
      "tree": "0ebde713fc9bae7a0bcf626a5a66219899acd0b3",
      "parents": [
        "7e61b3ff50f59f134054aaf43096c761fafecf0c",
        "5a1f36c90c9b21a7aa31c29a1926b376dd6a11cf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:27:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 09:27:40 2012 -0700"
      },
      "message": "Merge tag \u0027upstream-3.4-rc1\u0027 of git://git.infradead.org/linux-ubifs\n\nPull UBIFS changes from Artem Bityutskiy:\n - Improve error messages\n - Clean-up i_nlink management\n - Minor clean-ups\n\n* tag \u0027upstream-3.4-rc1\u0027 of git://git.infradead.org/linux-ubifs:\n  UBIFS: improve error messages\n  UBIFS: kill CUR_MAX_KEY_LEN macro\n  UBIFS: do not use inc_link when i_nlink is zero\n  UBIFS: make the dbg_lock spinlock static\n  UBIFS: increase dumps loglevel\n  UBIFS: amend recovery debugging message\n"
    },
    {
      "commit": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1c7c13783c9d2d1d67f53c49dc4eaf34811a290",
      "tree": "6699f175d1b5ec915ed82f243badf57f543ed01d",
      "parents": [
        "53b55e55893fbce8d78caeb22e17a28d909a2132"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:36 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:26 2012 +0800"
      },
      "message": "ubifs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "5a1f36c90c9b21a7aa31c29a1926b376dd6a11cf",
      "tree": "fbf23e16f60f031720157482a9200ecdc765b4f5",
      "parents": [
        "7ca58bad6904c721678cf2171dc78b97cc03d500"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 07 16:29:45 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Mar 07 17:13:23 2012 +0200"
      },
      "message": "UBIFS: improve error messages\n\nRicard complaints that the following error message is odd:\n\n\"UBIFS error (pid 1578): validate_sb: bad superblock, error 8\"\n\nand he is right. This patch improves the error messages a bit and makes\nthem more user-friendly.\n\nReported-by: Ricard Wanderlof \u003cricard.wanderlof@axis.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "7ca58bad6904c721678cf2171dc78b97cc03d500",
      "tree": "6458ff0fe593c768860a3088b9d96937bad7d3be",
      "parents": [
        "c43be1085f8480ab36d5c8c76a08e67bdf6d2e18"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 29 18:43:01 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 29 18:43:01 2012 +0200"
      },
      "message": "UBIFS: kill CUR_MAX_KEY_LEN macro\n\nIt is useless and confusing and may make people believe they may just\nchange it, which is not true, because this will also change the on-flash\nformat.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "c43be1085f8480ab36d5c8c76a08e67bdf6d2e18",
      "tree": "5d77b528c065e6d5c542c631634cd440ae3938ac",
      "parents": [
        "b06283c7df35b5a49ab141ed38e0280821379096"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Feb 07 10:58:51 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 29 16:10:20 2012 +0200"
      },
      "message": "UBIFS: do not use inc_link when i_nlink is zero\n\nThis patch changes the \u0027i_nlink\u0027 counter handling in \u0027ubifs_unlink()\u0027,\n\u0027ubifs_rmdir()\u0027 and \u0027ubifs_rename()\u0027. In these function  \u0027i_nlink\u0027 may become 0,\nand if \u0027ubifs_jnl_update()\u0027 failed, we would use \u0027inc_nlink()\u0027 to restore\nthe previous \u0027i_nlink\u0027 value, which is incorrect from the VFS point of view and\nwould cause a \u0027WARN_ON()\u0027 (see \u0027inc_nlink() implementation).\n\nThis patches saves the previous \u0027i_nlink\u0027 value in a local variable and uses it\nat the error path instead of calling \u0027inc_nlink()\u0027. We do this only for the\ninodes where \u0027i_nlink\u0027 may potentially become zero.\n\nThis change has been requested by Al Viro \u003cviro@ZenIV.linux.org.uk\u003e.\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": "78437368c8d9c8dc13461c689d13369f64e4522c",
      "tree": "740e8c45103df1470f59ac62c4ea6e8bbcd19397",
      "parents": [
        "6b21d18ed50c7d145220b0724ea7f2613abf0f95"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Mon Jan 16 12:10:56 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Feb 29 16:10:20 2012 +0200"
      },
      "message": "UBIFS: amend recovery debugging message\n\nPrint LEB and offset as well.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "e234b5f2079414b3d772286e3ee00e7bbf6da833",
      "tree": "860baa06589f5f11b354500f30f43ff8c2f4cda9",
      "parents": [
        "94b1984ab9ab61cc6047c07e074d766485299a9c"
      ],
      "author": {
        "name": "Dominique Martinet",
        "email": "asmadeus@codewreck.org",
        "time": "Sun Jan 15 00:28:03 2012 +0100"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@linux.intel.com",
        "time": "Sun Jan 15 13:46:02 2012 +0200"
      },
      "message": "UBIFS: fix non-debug configuration build\n\nFix a brown paperbag bug introduced by me in the previous commit. I was\nin hurry and forgot about the non-debug case completely.\n\nArtem: amend the commit message and tweak the patch to preserve alignment.\n       This made the patch a bit less readable, though.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "94b1984ab9ab61cc6047c07e074d766485299a9c",
      "tree": "4b6cba21caf3d99129bea6a5eba0544b2fe8402a",
      "parents": [
        "1a52bb0b686844021597d190e562ab55d1210104",
        "515315a123af641a9533e4ff0f178c470dc08fc7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:31:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 13 10:31:33 2012 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix key printing\n  UBIFS: use snprintf instead of sprintf when printing keys\n  UBIFS: fix debugging messages\n  UBIFS: make debugging messages light again\n  UBI: fix debugging messages\n  UBI: make vid_hdr non-static\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": "d34315da9146253351146140ea4b277193ee5e5f",
      "tree": "79ae0d18b0219ce827d694906fb6e4057b308260",
      "parents": [
        "1f5d78dc4823a85f112aaa2d0f17624f8c2a6c52"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Jan 10 19:32:30 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 11 18:44:53 2012 +0200"
      },
      "message": "UBIFS: fix debugging messages\n\nPatch 56e46742e846e4de167dde0e1e1071ace1c882a5 broke UBIFS debugging messages:\nbefore that commit when UBIFS debugging was enabled, users saw few useful\ndebugging messages after mount. However, that patch turned \u0027dbg_msg()\u0027 into\n\u0027pr_debug()\u0027, so to enable the debugging messages users have to enable them\nfirst via /sys/kernel/debug/dynamic_debug/control, which is very impractical.\n\nThis commit makes \u0027dbg_msg()\u0027 to use \u0027printk()\u0027 instead of \u0027pr_debug()\u0027, just\nas it was before the breakage.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: stable@kernel.org [3.0+]\n"
    },
    {
      "commit": "1f5d78dc4823a85f112aaa2d0f17624f8c2a6c52",
      "tree": "f6eeebf68d44bacf5aabc1d1c04b517deb3be495",
      "parents": [
        "72f0d453d81d35087b1d3ad7c8285628c2be6e1d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 11 15:13:27 2012 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Wed Jan 11 18:44:53 2012 +0200"
      },
      "message": "UBIFS: make debugging messages light again\n\nWe switch to dynamic debugging in commit\n56e46742e846e4de167dde0e1e1071ace1c882a5 but did not take into account that\nnow we do not control anymore whether a specific message is enabled or not.\nSo now we lock the \"dbg_lock\" and release it in every debugging macro, which\nmake them not so light-weight.\n\nThis commit removes the \"dbg_lock\" protection from the debugging macros to\nfix the issue.\n\nThe downside is that now our DBGKEY() stuff is broken, but this is not\ncritical at all and will be fixed later.\n\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\nCc: stable@kernel.org [3.0+]\n"
    },
    {
      "commit": "5c395ae7033099fc657114ea997858aa622f08b2",
      "tree": "f714c8d8db528274de2da4f8aa64b69af0d2aa5e",
      "parents": [
        "49d41bae46f15da528ef9848fd7c9d38582aa8e9",
        "e57e0d8e818512047fe379157c3f77f1b9fabffb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 14:57:19 2012 -0800"
      },
      "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  UBI: fix use-after-free on error path\n  UBI: fix missing scrub when there is a bit-flip\n  UBIFS: Use kmemdup rather than duplicating its implementation\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ad44be5c7820f5b8ce97292f4bcb3de73625c35b",
      "tree": "5036e32da75761c5e3fac5a12543ef30cbaf425a",
      "parents": [
        "5eee25cacde61c37f1545a33d7fed88b14349976"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:12:59 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:06 2012 -0500"
      },
      "message": "ubifs: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5cc361e3b8241989d8240014dbbe6214c9292541",
      "tree": "bbc7ba880fe50443bcbda52be0cf8fef01024b49",
      "parents": [
        "6f686574cccc2ef66fb38e41f19cedd81e7b4504"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 23:58:21 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:35:13 2011 -0500"
      },
      "message": "ubifs: too early register_filesystem()\n\ndoing that before you are ready to handle mount() is a Bad Idea(tm)...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eaecf43a6970c8d0ef54a31427c82a99e4863fe8",
      "tree": "998f383df3a68c34e08efb5064dfc82536af5a48",
      "parents": [
        "cfcfc9eca2bcbd26a8e206baeb005b055dbf8e37"
      ],
      "author": {
        "name": "Thomas Meyer",
        "email": "thomas@m3y3r.de",
        "time": "Fri Nov 18 00:00:52 2011 +0100"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Tue Nov 22 10:58:48 2011 +0200"
      },
      "message": "UBIFS: Use kmemdup rather than duplicating its implementation\n\nThe semantic patch that makes this change is available\nin scripts/coccinelle/api/memdup.cocci.\n\nSigned-off-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@linux.intel.com\u003e\n"
    },
    {
      "commit": "cf5e15fbd72c13977720aa15b7b7e00e1d8fd8f2",
      "tree": "66ecb6f516d33915171682cc602af978c0ae014f",
      "parents": [
        "31555213f03bca37d2c02e10946296052f4ecfcd",
        "7606f85a701ed8feeac065e133ff9a51c267aa0d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 08:52:19 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 08:52:19 2011 -0800"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6\n\n* \u0027linux-next\u0027 of git://git.infradead.org/ubifs-2.6:\n  UBIFS: fix the dark space calculation\n  UBIFS: introduce a helper to dump scanning info\n"
    },
    {
      "commit": "208bca0860406d16398145ddd950036a737c3c9d",
      "tree": "7797a16c17d8bd155120126fa7976727fc6de013",
      "parents": [
        "6aad3738f6a79fd0ca480eaceefe064cc471f6eb",
        "0e175a1835ffc979e55787774e58ec79e41957d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:02:23 2011 -0800"
      },
      "message": "Merge branch \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\n* \u0027writeback-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Add a \u0027reason\u0027 to wb_writeback_work\n  writeback: send work item to queue_io, move_expired_inodes\n  writeback: trace event balance_dirty_pages\n  writeback: trace event bdi_dirty_ratelimit\n  writeback: fix ppc compile warnings on do_div(long long, unsigned long)\n  writeback: per-bdi background threshold\n  writeback: dirty position control - bdi reserve area\n  writeback: control dirty pause time\n  writeback: limit max dirty pause time\n  writeback: IO-less balance_dirty_pages()\n  writeback: per task dirty rate limit\n  writeback: stabilize bdi-\u003edirty_ratelimit\n  writeback: dirty rate control\n  writeback: add bg_threshold parameter to __bdi_update_bandwidth()\n  writeback: dirty position control\n  writeback: account per-bdi accumulated dirtied pages\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "6d6b77f163c7eabedbba00ed2abb7d4a570bff76",
      "tree": "6ce074a7dd5a25fae28ef9de6f59ddee08ea4e61",
      "parents": [
        "dd2a981f46a0903a8770a784f213d4d40bbb6f19"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:28 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add missing nlink wrappers\n\nReplace direct i_nlink updates with the respective updater function\n(inc_nlink, drop_nlink, clear_nlink, inode_dec_link_count).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "0e175a1835ffc979e55787774e58ec79e41957d7",
      "tree": "6ec4b65a8de4e9d1c12d26a1079079ed81d79450",
      "parents": [
        "ad4e38dd6a33bb3a4882c487d7abe621e583b982"
      ],
      "author": {
        "name": "Curt Wohlgemuth",
        "email": "curtw@google.com",
        "time": "Fri Oct 07 21:54:10 2011 -0600"
      },
      "committer": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Oct 31 00:33:36 2011 +0800"
      },
      "message": "writeback: Add a \u0027reason\u0027 to wb_writeback_work\n\nThis creates a new \u0027reason\u0027 field in a wb_writeback_work\nstructure, which unambiguously identifies who initiates\nwriteback activity.  A \u0027wb_reason\u0027 enumeration has been\nadded to writeback.h, to enumerate the possible reasons.\n\nThe \u0027writeback_work_class\u0027 and tracepoint event class and\n\u0027writeback_queue_io\u0027 tracepoints are updated to include the\nsymbolic \u0027reason\u0027 in all trace events.\n\nAnd the \u0027writeback_inodes_sbXXX\u0027 family of routines has had\na wb_stats parameter added to them, so callers can specify\nwhy writeback is being started.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Curt Wohlgemuth \u003ccurtw@google.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "7606f85a701ed8feeac065e133ff9a51c267aa0d",
      "tree": "6c6d307b349c0897a6f76c4d16e8ae50adc7897b",
      "parents": [
        "d37854cf99319966f34bb19c7a897b87d478b56c"
      ],
      "author": {
        "name": "srimugunthan dhandapani",
        "email": "srimugunthan.dhandapani@gmail.com",
        "time": "Fri Aug 26 16:08:39 2011 +0530"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@linux.intel.com",
        "time": "Fri Aug 26 16:08:39 2011 +0530"
      },
      "message": "UBIFS: fix the dark space calculation\n\nThe dark space calculation should be 64 bit type-casted, when\nassigning to tmp64 (similar to how total_free is calculated).\nOverflow will occur for very large flashes.\n\nSigned-off-by: srimugunthan \u003csrimugunthan.dhandapani@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@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": "016f1c54408b1e92e2e8087bfc05ca0a9c258513",
      "tree": "7f306538332540e0357efbcae7b2b91a4503eda2",
      "parents": [
        "93ee7a9340d64f20295aacc3fb6a22b759323280"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu Aug 11 12:29:46 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "artem.bityutskiy@intel.com",
        "time": "Fri Aug 19 18:58:58 2011 +0300"
      },
      "message": "UBIFS: not build debug messages with CONFIG_UBIFS_FS_DEBUG disabled\n\nWith\n  $ grep -e UBIFS_FS_DEBUG -e DYNAMIC_DEBUG .config\n  # CONFIG_UBIFS_FS_DEBUG is not set\n  CONFIG_DYNAMIC_DEBUG\u003dy\n\nDebug messages are kept in the object files due to the\ndynamic_pr_debug() macro, even if they are never going to be printed:\n  $ make fs/ubifs/super.o\n  $ strings fs/ubifs/super.o | grep \u0027compiled on\u0027\n  compiled on:         Aug 11 2011 at 12:21:38\n\nUse plain printk to fix this.\n\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\nSigned-off-by: Artem Bityutskiy \u003cartem.bityutskiy@intel.com\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "19495f70d1ebcdc732dd3c94f5968a4bff198ae5",
      "tree": "dafe4e1a099f666e1672a2a228f25598955bfc96",
      "parents": [
        "a7fa94a9fe26a4925914083a31b5387bca530eb1"
      ],
      "author": {
        "name": "Anatolij Gustschin",
        "email": "agust@denx.de",
        "time": "Thu Jul 07 12:25:02 2011 +0200"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Fri Jul 08 06:53:18 2011 +0300"
      },
      "message": "UBIFS: fix master node recovery\n\nWhen the 1st LEB was unmapped and written but 2nd LEB not,\nthe master node recovery doesn\u0027t succeed after power cut.\nWe see following error when mounting UBIFS partition on NOR\nflash:\n\nUBIFS error (pid 1137): ubifs_recover_master_node: failed to recover master node\n\nCorrect 2nd master node offset check is needed to fix the\nproblem. If the 2nd master node is at the end in the 2nd LEB,\nfirst master node is used for recovery. When checking for this\ncondition we should check whether the master node is exactly at\nthe end of the LEB (without remaining empty space) or whether\nit is followed by an empty space less than the master node size.\n\nArtem: when the error happened, offs2 \u003d 261120, sz \u003d 512, c-\u003eleb_size \u003d 262016.\n\nSigned-off-by: Anatolij Gustschin \u003cagust@denx.de\u003e\nSigned-off-by: Artem Bityutskiy \u003cdedekind1@gmail.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": "d3b2578f56e0a77b9e261d83e9b5a0a666b82980",
      "tree": "99a4760399d97ffad28f0a7426682cbcd664056e",
      "parents": [
        "987226a5d3a356792650f8e9028132a79815f6ef"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 14:22:05 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: switch to I/O helpers\n\nSwitch the rest of direct UBI calls to UBIFS helper functions.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "987226a5d3a356792650f8e9028132a79815f6ef",
      "tree": "f230d62a1f05f80e99ed1d6836bfbce84b74c250",
      "parents": [
        "d304820a1f6cdacab691bbcb7faa35ec631c6398"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 14:12:10 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: switch to ubifs_leb_write\n\nStop using \u0027ubi_leb_write()\u0027 directly and switch to the \u0027ubifs_leb_write()\u0027\nhelper.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d304820a1f6cdacab691bbcb7faa35ec631c6398",
      "tree": "b958f273673000d68a2dc088298425ae1f32e85f",
      "parents": [
        "83cef708c606f46a2b527af025acb3d24555f0c4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 14:03:25 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: switch to ubifs_leb_read\n\nInstead of using \u0027ubi_read()\u0027 function directly, used the \u0027ubifs_leb_read()\u0027\nhelper function instead. This allows to get rid of several redundant error\nmessages and make sure that we always have a stack dump on read errors.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "83cef708c606f46a2b527af025acb3d24555f0c4",
      "tree": "f5f91da8f13a7f013304ae596e56e7d52a5dcd76",
      "parents": [
        "d033c98b17ecf30d64d83d96938ce7bfb47f7520"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 13:45:09 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: introduce more I/O helpers\n\nIntroduce the following I/O helper functions: \u0027ubifs_leb_read()\u0027,\n\u0027ubifs_leb_write()\u0027, \u0027ubifs_leb_change()\u0027, \u0027ubifs_leb_unmap()\u0027,\n\u0027ubifs_leb_map()\u0027, \u0027ubifs_is_mapped().\n\nThe idea is to wrap all UBI I/O functions in order to encapsulate various\nassertions and error path handling (error message, stack dump, switching to R/O\nmode). And there are some other benefits of this which will be used in the\nfollowing patches.\n\nThis patch does not switch whole UBIFS to use these functions yet.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "d033c98b17ecf30d64d83d96938ce7bfb47f7520",
      "tree": "079b36f4b63bb7c13f177cec15f144dff794f08e",
      "parents": [
        "891a54a153646f9b16bffe5df6cb74cb3f1e9dc6"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 13:16:08 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:33 2011 +0300"
      },
      "message": "UBIFS: always print stacktrace when switching to R/O mode\n\nWhen switching to R/O mode due to an I/O error, always dump the stack, not only\nwhen debugging is enabled.\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": "bb2615d4d14777fd37e2b91bd99b92c0354813d1",
      "tree": "0b8bbad1cd3e8538ce451533d4221a8a8fb1b679",
      "parents": [
        "06b282a4cc02f37414c14c94a2f154ca250cf73f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 17:47:53 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: amend debugging name check function prototype\n\nAdd \u0027struct ubifs_info *c\u0027 parameter to the \u0027dbg_check_name()\u0027 debugging\nfunction - it will be needed in one of the following commits where we switch to\ndebugfs. So this is just a preparation.\n\nMark parameters as \u0027const\u0027 while on it.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "06b282a4cc02f37414c14c94a2f154ca250cf73f",
      "tree": "058646506c1e2652de8f9d59d56f564d3b5e66b9",
      "parents": [
        "376624476921e43d8b87498161a2ffba6ab8d5aa"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 30 18:19:34 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: add few commentaries about TNC\n\nAdd a couple of comments - while looking into TNC I could not easily figure out\nfew facts, so it is a good idea to document them in the code.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "376624476921e43d8b87498161a2ffba6ab8d5aa",
      "tree": "bf0f15c4d9df8470e4c1ba0d4df648f84170ee14",
      "parents": [
        "f42eed7cba7f83197b0ffbb023e7d89a0b2fd71d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 30 14:51:20 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: use correct flags in lprops\n\nThe UBIFS lpt tree is in many aspects similar to the TNC tree, and we have\nsimilar flags for these trees. And by mistake we use the COW_ZNODE flag for\nLPT in some places, instead of the right flag COW_CNODE. And this works\nonly because these two constants have the same value.\n\nThis patch makes all the LPT code to use COW_CNODE and also changes COW_CNODE\nconstant value to make sure we do not misuse the flags any more.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "f42eed7cba7f83197b0ffbb023e7d89a0b2fd71d",
      "tree": "b5590faffe190cd1401945e13c66684bec2f5b48",
      "parents": [
        "1f42596ec0a7d3d50a494d95e3f1afbd117250f8"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 30 14:45:30 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: harmonize znode flag helpers\n\nWe have 3 znode flags: cow, obsolete, dirty. For the last flag we have a\n\u0027ubifs_zn_dirty()\u0027 helper function, but for the other 2 flags we use\n\u0027test_bit()\u0027 directly.\n\nThis patch makes the situation more consistent and introduces helpers for the\nother 2 flags: \u0027ubifs_zn_cow()\u0027 and \u0027ubifs_zn_obsolete()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1f42596ec0a7d3d50a494d95e3f1afbd117250f8",
      "tree": "e0c3e0f5f75ea73ab8496ae07301e81c07c524a2",
      "parents": [
        "12e776a0882def45e7ee50918016968b392ac7bd"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 30 14:30:51 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: remove dead code\n\nRemove dead pieces of code under \"if (c-\u003emin_io_size \u003d\u003d 1)\" statement -\nwe never execute it because in UBIFS \u0027c-\u003emin_io_size\u0027 is always at least 8.\nThis are leftovers from old pre-mainline prototype.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "12e776a0882def45e7ee50918016968b392ac7bd",
      "tree": "bccc67f49b74a8f019940672ece19755133eb1b7",
      "parents": [
        "a29fa9dfa4d5d1b962825c79f19d9b6f3f15843b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 27 15:50:39 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:27 2011 +0300"
      },
      "message": "UBIFS: remove unnecessary brackets\n\nRemove unnecessary brackets in \"inode-\u003ei_flags |\u003d (S_NOCMTIME)\" statement to\nmake the code not look silly.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "a29fa9dfa4d5d1b962825c79f19d9b6f3f15843b",
      "tree": "bd7aa3733a869c69038b4474229fbc9ada002cbf",
      "parents": [
        "1b51e98365e42c27eb2664f8353bc62ab8c55c85"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 09:43:34 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: minor cleanup: use S_ISREG helper\n\nInstead of using long \"(inode-\u003ei_mode \u0026 S_IFMT) !\u003d S_IFREG\" expression, use\nshorted \"!S_ISREG(inode-\u003ei_mode)\".\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1b51e98365e42c27eb2664f8353bc62ab8c55c85",
      "tree": "1c696ab1f78d2bed3b2a9a31e456a69bec3da20e",
      "parents": [
        "4315fb4072905e45da94d51e2c1e86fa41c5fc5f"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed May 25 17:38:29 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: rename dbg_check_dir_size function\n\nSince this function is not only about size checking, rename it to\n\u0027dbg_check_dir()\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "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": "bfcf677decd8051c305b1d8fda407d069c2361e3",
      "tree": "ae3b439d285bc1fb3d03287c02d5fdd613a33142",
      "parents": [
        "ae380ce04731579f45f27b3a84d7d8d8ee1f9b1b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 24 14:10:03 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: dump stack when pnode or nnode reading fails\n\nWhen we fail to read a pnode or nnode - print stacktrace if debugging is enabled.\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": "549c999a768a7a144c60a0faa58f34c48f39112b",
      "tree": "c1bdefb19fafb74164331c21ebaee7b2a987441c",
      "parents": [
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 16:57:14 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "dedekind1@gmail.com",
        "time": "Mon Jul 04 10:54:26 2011 +0300"
      },
      "message": "UBIFS: return EROFS in case of broken commit\n\nIf commit failed and it is in broken state, UBIFS switches to R/O mode. Most\noperations return -EROFS in this case, except of commit which returns -EINVAL.\nMake it return -EROFS too for consistency. This is also important for our power\ncut emulation testing.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "185bf87393afe6b966881e36c459949d90930a7a",
      "tree": "203f91dbfdb21f29de119cf79ccfed3bf2b15d31",
      "parents": [
        "8b97b21e0f4f59801d05a5c536417f04ecfb5603"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jun 20 10:10:24 2011 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 10:42:34 2011 -0400"
      },
      "message": "ubifs: dereferencing an ERR_PTR in ubifs_mount()\n\nd251ed271d5 \"ubifs: fix sget races\" left out the goto from this\nerror path so the static checkers complain that we\u0027re dereferencing\n\"sb\" when it\u0027s an ERR_PTR.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d251ed271d528afb407cc2ede30923e34cb209a5",
      "tree": "b77e0133453057821ee50956c560013acb467c4c",
      "parents": [
        "b1c27ab3f93daede979f804afc38b189c2f17c60"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 10:24:33 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 17:45:34 2011 -0400"
      },
      "message": "ubifs: fix sget races\n\n* allocate ubifs_info in -\u003emount(), fill it enough for sb_test() and\nset -\u003es_fs_info to it in set() callback passed to sget().\n* do *not* free it in -\u003eput_super(); do that in -\u003ekill_sb() after we\u0027d\ndone kill_anon_super().\n* don\u0027t free it in ubifs_fill_super() either - deactivate_locked_super()\ndone by caller when ubifs_fill_super() returns an error will take care\nof that sucker.\n* get rid of kludge with passing ubi to ubifs_fill_super() in -\u003es_fs_info;\nwe only need it in alloc_ubifs_info(), so ubifs_fill_super() will need\nonly ubifs_info.  Which it will find in -\u003es_fs_info just fine, no need to\nreassign anything...\n\nAs the result, sb_test() becomes safe to apply to all superblocks that\ncan be found by sget() (and a kludge with temporary use of -\u003es_fs_info\nto store a pointer to very different structure goes away).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b1c27ab3f93daede979f804afc38b189c2f17c60",
      "tree": "469479c334b7e346708b17e269e399e073a8098f",
      "parents": [
        "ff78fca2a03c08436535d3f7152a30752d8131d1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 10:07:03 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 12 17:45:32 2011 -0400"
      },
      "message": "ubifs: split allocation of ubifs_info into a separate function\n\npreparation to ubifs sget() race fixes\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "098011940a2549ae7182db4bf101c3e3d2b4e6df",
      "tree": "2c4c1e51beee85fba008a81598a58efffa1443d0",
      "parents": [
        "781c5717a95a74b294beb38b8276943b0f8b5bb4"
      ],
      "author": {
        "name": "Ben Gardiner",
        "email": "bengardiner@nanometrics.ca",
        "time": "Mon May 30 14:56:16 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: fix-up free space earlier\n\nThe free space fixup is currently initiated during mount after the call to\nubifs_write_master() which results in a write to PEBs; this has been observed\nwith the patch \u0027assert no fixup when writing a node\u0027 applied:\n\nMove the free space fixup on mount to before the calls to\nubifs_recover_inl_heads() and ubifs_write_master(). This results in no\nassertions with the previously mentioned patch applied.\n\nArtem: tweaked the patch a bit\n\nSigned-off-by: Ben Gardiner \u003cbengardiner@nanometrics\u003e\nReviewed-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "781c5717a95a74b294beb38b8276943b0f8b5bb4",
      "tree": "ed8dfe3b7066e6d0854e381f46712c7280b2f05e",
      "parents": [
        "4f1ab9b01d34eac9fc958f7150d3bf266dcc1685"
      ],
      "author": {
        "name": "Ben Gardiner",
        "email": "bengardiner@nanometrics.ca",
        "time": "Mon May 30 14:56:15 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: intialize LPT earlier\n\nThe current \u0027mount_ubifs()\u0027 implementation does not initialize the LPT until the\nthe master node is marked dirty. Move the LPT initialization to before marking\nthe master node dirty. This is a preparation for the next patch which will move\nthe free-space-fixup check to before marking the master node dirty, because we\nhave to fix-up the free space before doing any writes.\n\nArtem: massaged the patch and commit message.\n\nSigned-off-by: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nReviewed-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "4f1ab9b01d34eac9fc958f7150d3bf266dcc1685",
      "tree": "77ff5efa6449743984e77f491902fa53f7716969",
      "parents": [
        "837072377034d0a0b18b851d1ab95676b245cc0a"
      ],
      "author": {
        "name": "Ben Gardiner",
        "email": "bengardiner@nanometrics.ca",
        "time": "Mon May 30 14:56:14 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: assert no fixup when writing a node\n\nThe current free space fixup can result in some writing to the UBI volume\nwhen the space_fixup flag is set.\n\nTo catch instances where UBIFS is writing to the NAND while the space_fixup\nflag is set, add an assert to ubifs_write_node().\n\nArtem: tweaked the patch, added similar assertion to the write buffer\n       write path.\n\nSigned-off-by: Ben Gardiner \u003cbengardiner@nanometrics.ca\u003e\nReviewed-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "837072377034d0a0b18b851d1ab95676b245cc0a",
      "tree": "7020b369ac3373f292d59fe5fd470f73ecb69897",
      "parents": [
        "812eb258311f89bcd664a34a620f249d54a2cd83"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 14:26:07 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: fix clean znode counter corruption in error cases\n\nUBIFS maintains per-filesystem and global clean znode counters\n(\u0027c-\u003eclean_zn_cnt\u0027 and \u0027ubifs_clean_zn_cnt\u0027). It is important to maintain\ncorrect values there since the shrinker relies on \u0027ubifs_clean_zn_cnt\u0027.\n\nHowever, in case of failures during commit the counters were corrupted. E.g.,\nif a failure happens in the middle of \u0027write_index()\u0027, then some nodes in the\ncommit list (\u0027c-\u003ecnext\u0027) are marked as clean, and some are marked as dirty. And\nthe \u0027ubifs_destroy_tnc_subtree()\u0027 frees does not retrun correct count, and we\nend up with non-zero \u0027c-\u003eclean_zn_cnt\u0027 when unmounting. This means that if we\nhave 2 file-sytem and one of them fails, and we unmount it,\n\u0027ubifs_clean_zn_cnt\u0027 stays incorrect and confuses the shrinker.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "812eb258311f89bcd664a34a620f249d54a2cd83",
      "tree": "2b1598190efd598cfbdff30fbca302426f796e3a",
      "parents": [
        "cf610bf4199770420629d3bc273494bd27ad6c1d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 08:40:40 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:31 2011 +0300"
      },
      "message": "UBIFS: fix memory leak on error path\n\nUBIFS leaks memory on error path in \u0027ubifs_jnl_update()\u0027 in case of write\nfailure because it forgets to free the \u0027struct ubifs_dent_node *dent\u0027 object.\nAlthough the object is small, the alignment can make it large - e.g., 2KiB\nif the min. I/O unit is 2KiB.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "cf610bf4199770420629d3bc273494bd27ad6c1d",
      "tree": "76418cad3b35d8b40090ae13d5100de598e6c4cb",
      "parents": [
        "da8b94ea61c5d80aae0cc7b7541f1e0fa7459391"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 31 07:03:21 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Jun 03 18:12:24 2011 +0300"
      },
      "message": "UBIFS: fix shrinker object count reports\n\nSometimes VM asks the shrinker to return amount of objects it can shrink,\nand we return the ubifs_clean_zn_cnt in that case. However, it is possible\nthat this counter is negative for a short period of time, due to the way\nUBIFS TNC code updates it. And I can observe the following warnings sometimes:\n\nshrink_slab: ubifs_shrinker+0x0/0x2b7 [ubifs] negative objects to delete nr\u003d-8541616642706119788\n\nThis patch makes sure UBIFS never returns negative count of objects.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "da8b94ea61c5d80aae0cc7b7541f1e0fa7459391",
      "tree": "5d0b7c64b7f5afd9c9b2c528ed08e7d8a0d97859",
      "parents": [
        "efcfde54ca68091b164f9aec544c7233a9760aff"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 08:58:19 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 12:29:06 2011 +0300"
      },
      "message": "UBIFS: fix recovery broken by the previous recovery fix\n\nUnfortunately, the recovery fix d1606a59b6be4ea392eabd40d1250aa1eeb19efb\n(UBIFS: fix extremely rare mount failure) broke recovery. This commit make\nUBIFS drop the last min. I/O unit in all journal heads, but this is needed only\nfor the GC head. And this does not work for non-GC heads. For example, if\nsuppose we have min. I/O units A and B, and A contains a valid node X, which\nwas fsynced, and then a group of nodes Y which spans the rest of A and B. In\nthis case we\u0027ll drop not only Y, but also X, which is obviously incorrect.\n\nThis patch fixes the issue and additionally makes recovery to drop last min.\nI/O unit only for the GC head, and leave things as they have been for ages for\nthe other heads - this is safer.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "efcfde54ca68091b164f9aec544c7233a9760aff",
      "tree": "f94cd590448a23c2ba7c6566dcbeb72eb3f3dd1d",
      "parents": [
        "1a0b06997ceca96db9259e537eb935f9fe59a3de"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 08:36:52 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 12:29:06 2011 +0300"
      },
      "message": "UBIFS: amend ubifs_recover_leb interface\n\nInstead of passing \"grouped\" parameter to \u0027ubifs_recover_leb()\u0027 which tells\nwhether the nodes are grouped in the LEB to recover, pass the journal head\nnumber and let \u0027ubifs_recover_leb()\u0027 look at the journal head\u0027s \u0027grouped\u0027 flag.\n\nThis patch is a preparation to a further fix where we\u0027ll need to know the\njournal head number for other purposes.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "1a0b06997ceca96db9259e537eb935f9fe59a3de",
      "tree": "0428c1bb46987ae0deb05061d74f8c639ac879c8",
      "parents": [
        "ab75950b11e74145ffe61376ac073d56645aab8a"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 08:26:05 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 12:29:06 2011 +0300"
      },
      "message": "UBIFS: introduce a \"grouped\" journal head flag\n\nJournal heads are different in a way how UBIFS writes nodes there. All normal\njournal heads receive grouped nodes, while the GC journal heads receives\nungrouped nodes. This patch adds a \u0027grouped\u0027 flag to \u0027struct ubifs_jhead\u0027 which\ndescribes this property.\n\nThis patch is a preparation to a further recovery fix.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "ab75950b11e74145ffe61376ac073d56645aab8a",
      "tree": "8c4a2548e00f6ed83fc209edcccc729fac76708e",
      "parents": [
        "55922c9d1b84b89cb946c777fddccb3247e7df2c"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Thu May 26 06:51:48 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Wed Jun 01 12:29:05 2011 +0300"
      },
      "message": "UBIFS: supress false error messages\n\nCommit ab51afe05273741f72383529ef488aa1ea598ec6 was a good clean-up, but\nit introduced a regression - now UBIFS prints scary error messages during\nrecovery on all corrupted nodes, even though the corruptions are expected\n(due to a power cut). This patch fixes the issue.\n\nAdditionally fix a typo in a commentary introduced by the same commit.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "ef1d57599dc904fdb31b8e9b5336350d21a1fde1",
      "tree": "4e3f7d49c5a8c27efd5a1009131f4b3f87eff503",
      "parents": [
        "bc658c96037fc87463f0703ad2ea7c895344cb7e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun May 29 13:46:08 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 29 11:17:34 2011 -0700"
      },
      "message": "cifs/ubifs: Fix shrinker API change fallout\n\nCommit 1495f230fa77 (\"vmscan: change shrinker API by passing\nshrink_control struct\") changed the API of -\u003eshrink(), but missed ubifs\nand cifs instances.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e54ec1c3a002a9d5e57b5ac73a934cc15a0fe06",
      "tree": "6504d32b3d3e1a3dadc7d7083b5614702f479808",
      "parents": [
        "dfb55de89879a1c32a70d0a510b3701ed9a6b855"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 27 13:42:00 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 28 01:02:51 2011 -0400"
      },
      "message": "ubifs: remove unnecessary dentry_unhash from rmdir, dir rename\n\nubifs does not have problems with references to unlinked directories.\n\nCC: Artem Bityutskiy \u003cdedekind1@gmail.com\u003e\nCC: Adrian Hunter \u003cadrian.hunter@nokia.com\u003e\nCC: linux-mtd@lists.infradead.org\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "aa38572954ade525817fe88c54faebf85e5a61c0"
}
