)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "aa38572954ade525817fe88c54faebf85e5a61c0",
      "tree": "ef398ec06c97134592f62a49c99f3f80041b427c",
      "parents": [
        "d6e9bd256c88ce5f4b668249e363a74f51393daa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri May 27 06:53:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 27 07:04:40 2011 -0400"
      },
      "message": "fs: pass exact type of data dirties to -\u003edirty_inode\n\nTell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or\nanything else, so that the filesystem can track internally if it\nneeds to push out a transaction for fdatasync or not.\n\nThis is just the prototype change with no user for it yet.  I plan\nto push large XFS changes for the next merge window, and getting\nthis trivial infrastructure in this window would help a lot to avoid\ntree interdependencies.\n\nAlso remove incorrect comments that -\u003edirty_inode can\u0027t block.  That\nhas been changed a long time ago, and many implementations rely on it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "32e51f141fd8d880f57b6a2eb53ce72856254d4a",
      "tree": "d8d7a0d503533a03fb07b2ebd5eccd9043f2d228",
      "parents": [
        "ca16d140af91febe25daeb9e032bf8bd46b8c31f",
        "b6ff24a333267a6810e28ee5b9fc539d149c52f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:52:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:52:14 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: (25 commits)\n  cifs: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ocfs2: remove unnecessary dentry_unhash on rmdir/rename_dir\n  exofs: remove unnecessary dentry_unhash on rmdir/rename_dir\n  nfs: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ext2: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ext3: remove unnecessary dentry_unhash on rmdir/rename_dir\n  ext4: remove unnecessary dentry_unhash on rmdir/rename_dir\n  btrfs: remove unnecessary dentry_unhash in rmdir/rename_dir\n  ceph: remove unnecessary dentry_unhash calls\n  vfs: clean up vfs_rename_other\n  vfs: clean up vfs_rename_dir\n  vfs: clean up vfs_rmdir\n  vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems\n  libfs: drop unneeded dentry_unhash\n  vfs: update dentry_unhash() comment\n  vfs: push dentry_unhash on rename_dir into file systems\n  vfs: push dentry_unhash on rmdir into file systems\n  vfs: remove dget() from dentry_unhash()\n  vfs: dentry_unhash immediately prior to rmdir\n  vfs: Block mmapped writes while the fs is frozen\n  ...\n"
    },
    {
      "commit": "e4eaac06bcccb2a70bca6a2de9871882dce2aa14",
      "tree": "ca6736d96294cd6e65a1c3055718bfd5adc7336e",
      "parents": [
        "79bf7c732b5ff75b96022ed9d29181afd3d2509c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:07 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:48 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rename_dir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nrename method (except gfs2 and xfs) so that it can be dealt with on a\nper-fs basis.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79bf7c732b5ff75b96022ed9d29181afd3d2509c",
      "tree": "74b8cc690f9a37fff02d0685464e1c695a25ef94",
      "parents": [
        "64252c75a2196a0cf1e0d3777143ecfe0e3ae650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:06 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:47 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rmdir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nfs rmdir method (except gfs2 and xfs) so it can be dealt with on a per-fs\nbasis.\n\nThis does not change behavior for any in-tree file systems.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "56e46742e846e4de167dde0e1e1071ace1c882a5",
      "tree": "ffed000ab5bb33d482878bd72420474bdab1eec4",
      "parents": [
        "bdc1a1b6100c78a6002b1761ebe36d5fe8f8585b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 17 15:15:30 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 23 08:22:20 2011 +0300"
      },
      "message": "UBIFS: switch to dynamic printks\n\nSwitch to debugging using dynamic printk (pr_debug()). There is no good reason\nto carry custom debugging prints if there is so cool and powerful generic\ndynamic printk infrastructure, see Documentation/dynamic-debug-howto.txt. With\ndynamic printks we can switch on/of individual prints, per-file, per-function\nand per format messages. This means that instead of doing old-fashioned\n\necho 1 \u003e /sys/module/ubifs/parameters/debug_msgs\n\nto enable general messages, we can do:\n\necho \u0027format \"UBIFS DBG gen\" +ptlf\u0027 \u003e control\n\nto enable general messages and additionally ask the dynamic printk\ninfrastructure to print process ID, line number and function name. So there is\nno reason to keep UBIFS-specific crud if there is more powerful generic thing.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "bdc1a1b6100c78a6002b1761ebe36d5fe8f8585b",
      "tree": "2ae75adab61f3c3d6cd86f23329b404b33bbe3f9",
      "parents": [
        "bbf2b37a98d22d5b111f03674dd4f093dd6c0ae5"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Tue May 17 14:07:24 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 20 08:30:13 2011 +0300"
      },
      "message": "UBIFS: fix kernel-doc comments\n\nThis is a minor fix for UBIFS kernel-doc comments - we forgot the \"@\" symbol\nfor several \u0027struct ubifs_debug_info\u0027.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "bbf2b37a98d22d5b111f03674dd4f093dd6c0ae5",
      "tree": "0d95805a339bdb7cd85b2af6bf8546e1ab02c39f",
      "parents": [
        "43e07073865ae540e3b463f437f0f837f17714ba"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 15:15:52 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 15:48:48 2011 +0300"
      },
      "message": "UBIFS: fix extremely rare mount failure\n\nThis patch fixes an extremely rare mount failure after a power cut, when mount\nfails with ENOSPC error because UBIFS could not find the GC LEB.\n\nIn short, the reason for this failure is that after recovery the GC head LEB\ncontains less free space than it had contained just before the power cut\nhappened. As a result, if the FS is full, \u0027ubifs_rcvry_gc_commit()\u0027 is unable\nto find a dirty LEB to GC and a free LEB, so mount fails.\n\nThis patch contains a huge comment with more detailed explanation, please refer\nthat comment.\n\nSince this is really really rare and unlikely situation, I do not send this\npatch to the stable tree, also because it requires a lot of preparation\npatches which I did before. So sending this to -stable would be too risky.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "43e07073865ae540e3b463f437f0f837f17714ba",
      "tree": "41d145642dd7e8dc3da4e94c075daee61a71867f",
      "parents": [
        "7c47bfd0dbb20e5d7fa4e37cfd76bb73d39b32b4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:21:51 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 15:48:48 2011 +0300"
      },
      "message": "UBIFS: simplify LEB recovery function further\n\nFurther simplify \u0027ubifs_recover_leb()\u0027 by noticing that we have to call\n\u0027clean_buf()\u0027 in any case, and it is fine to call it if the offset is\naligned to \u0027c-\u003emin_io_size\u0027. Thus, we do not have to call it separately\nfrom every \"if\" - just call it once at the end.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "7c47bfd0dbb20e5d7fa4e37cfd76bb73d39b32b4",
      "tree": "277a373b3262229f31d3a2733a55cacaac5e5ef7",
      "parents": [
        "617992069513c1e789c707c4d75ff03bf7dd0fb0"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 13:44:48 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 15:48:48 2011 +0300"
      },
      "message": "UBIFS: always cleanup the recovered LEB\n\nNow when we call \u0027ubifs_recover_leb()\u0027 only for LEBs which are potentially\ncorrupted (i.e., only for last buds, not for all of them), we can cleanup every\nLEB, not only those where we find corruption. The reason - unstable bits. Even\nthough the LEB may look good now, it might contain unstable bits which may hit\nus a bit later.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "617992069513c1e789c707c4d75ff03bf7dd0fb0",
      "tree": "04ee36190d991f0b7836fff0a666b9847bf32d92",
      "parents": [
        "9d510db423303b4f3555074dd7bdd0d692e432a4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 13:41:55 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 15:48:48 2011 +0300"
      },
      "message": "UBIFS: clean up LEB recovery function\n\nThis patch cleans up \u0027ubifs_recover_leb()\u0027 function and makes it more readable.\nMove things which are done only once out of the loop and kill unneeded \u0027switch\u0027\nstatement.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "9d510db423303b4f3555074dd7bdd0d692e432a4",
      "tree": "e05516d94fe62492e41b7ccc219db8abfe1c6ab8",
      "parents": [
        "6554a6578131a217d4ea6d779a62f120081a2e8b"
      ],
      "author": {
        "name": "Matthew L. Creech",
        "email": "mlcreech@gmail.com",
        "time": "Fri May 06 18:58:23 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:15 2011 +0300"
      },
      "message": "UBIFS: fix-up free space on mount if flag is set\n\nIf a UBIFS filesystem is being mounted read-write, or is being remounted\nfrom read-only to read-write, check for the \"space_fixup\" flag and fix\nall LEBs containing empty space if necessary.\n\nArtem: tweaked the patch a bit\n\nSigned-off-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "6554a6578131a217d4ea6d779a62f120081a2e8b",
      "tree": "6be11a0c552de1cc91af01e0011badc4ca185b39",
      "parents": [
        "9f58d3503a1368673609db1962e4a584261b62eb"
      ],
      "author": {
        "name": "Matthew L. Creech",
        "email": "mlcreech@gmail.com",
        "time": "Fri May 06 18:58:22 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:15 2011 +0300"
      },
      "message": "UBIFS: add the fixup function\n\nThis patch adds the \u0027ubifs_fixup_free_space()\u0027 function which scans all\nLEBs in the filesystem for those that are in-use but have one or more\nempty pages, then re-maps the LEBs in order to erase the empty portions.\nAfterward it removes the \"space_fixup\" flag from the UBIFS superblock.\n\nArtem: massaged the patch\n\nSigned-off-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "9f58d3503a1368673609db1962e4a584261b62eb",
      "tree": "9b31f7f6f6c8513d80b5e807f029d225c9be9b25",
      "parents": [
        "e11602ea3e43392904db7a579dc990062ebb7151"
      ],
      "author": {
        "name": "Matthew L. Creech",
        "email": "mlcreech@gmail.com",
        "time": "Thu May 05 16:33:20 2011 -0400"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:14 2011 +0300"
      },
      "message": "UBIFS: add a superblock flag for free space fix-up\n\nThe \u0027space_fixup\u0027 flag can be set in the superblock of a new filesystem by\nmkfs.ubifs to indicate that any eraseblocks with free space remaining should be\nfixed-up the first time it\u0027s mounted (after which the flag is un-set). This\nmeans that the UBIFS image has been flashed by a \"dumb\" flasher and the free\nspace has been actually programmed (writing all 0xFFs), so this free space\ncannot be used. UBIFS fixes the free space up by re-writing the contents of all\nLEBs with free space using the atomic LEB change UBI operation.\n\nArtem: improved commit message, add some more commentaries to the code.\n\nSigned-off-by: Matthew L. Creech \u003cmlcreech@gmail.com\u003e\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "e11602ea3e43392904db7a579dc990062ebb7151",
      "tree": "3930553264a369773cc1f66aa33b790d17589a40",
      "parents": [
        "91c66083fca36cdf496e927ef8bea19e6b1bbdce"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri May 06 17:52:32 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:12:12 2011 +0300"
      },
      "message": "UBIFS: share the next_log_lnum helper\n\nWe\u0027ll need to use the \u0027next_log_lnum()\u0027 helper function from log.c in the fixup\ncode, so let\u0027s move it to misc.h. IOW, this is a preparation to the following\nfree space fixup changes.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "91c66083fca36cdf496e927ef8bea19e6b1bbdce",
      "tree": "8298bc056e929e1c946b1b2d6acbcc21dd54e235",
      "parents": [
        "cb14a18465686ea6add51b1008865b8174c28bd7"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 15 13:11:00 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 14:11:25 2011 +0300"
      },
      "message": "UBIFS: expect corruption only in last journal head LEBs\n\nThis patch improves UBIFS recovery and teaches it to expect corruption only\nin the last buds. Indeed, currently we just recover all buds, which is\nincorrect because only the last buds can have corruptions in case of a power\ncut. So it is inconsistent with the rest of the recovery strategy which tries\nhard to distinguish between corruptions cause by power cuts and other types of\ncorruptions.\n\nThis patch also adds one quirk - a bit older UBIFS was could have corruption in\nthe next to last bud because of the way it switched buds: when bud A is full,\nit first searched for the next bud B, the wrote a reference node to the log\nabout B, and then synchronized the write-buffer of A. So we could end up with\nbuds A and B, where B is the last, but A had corruption. The UBIFS behavior\nwas fixed, though, so currently it always first synchronizes A\u0027s write-buffer\nand only after this adds B to the log. However, to be make sure that we handle\nunclean (after a power cut) UBIFS images belonging to older UBIFS - we need to\nadd a quirk and keep it for some time: we need to check for the situation\ndescribed above.\n\nThankfully, it is easy to check for that situation. When UBIFS adds B to the\nlog, it always first unmaps B, then maps it, and then syncs A\u0027s write-buffer.\nThus, in that situation we can check that B is empty, in which case it is OK to\nhave corruption in A. To check that B is empty it is enough to just read the\nfirst few bytes of the bud and compare them with 0xFFs. This quirk may be\nremoved in a couple of years.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "cb14a18465686ea6add51b1008865b8174c28bd7",
      "tree": "9e1b7aa466e83c77628fa74af00049893db84c40",
      "parents": [
        "c49139d8096dc1c392455dbc3f158b46038fc9d4"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 15 14:51:54 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 10:31:41 2011 +0300"
      },
      "message": "UBIFS: synchronize write-buffer before switching to the next bud\n\nCurrently when UBIFS fills up the current bud (which is the last in the journal\nhead) and switches to the next bud, it first writes the log reference node for\nthe next bud and only after this synchronizes the write-buffer of the previous\nbud. This is not a big deal, but an unclean power cut may lead to a situation\nwhen we have corruption in a next-to-last bud, although it is much more logical\nthat we have to have corruption only in the last bud.\n\nThis patch also removes write-buffer synchronization from\n\u0027ubifs_wbuf_seek_nolock()\u0027 because this is not needed anymore (we synchronize\nthe write-buffer explicitly everywhere now) and also because this is just\nprone to various errors.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    },
    {
      "commit": "c49139d8096dc1c392455dbc3f158b46038fc9d4",
      "tree": "cc0eaf76b5221fccc6f67ba616dd00be053de038",
      "parents": [
        "e76a452640dc110147f7a7da1dcfb1c5026f982d"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Sun May 15 12:40:46 2011 +0300"
      },
      "committer": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Mon May 16 10:31:41 2011 +0300"
      },
      "message": "UBIFS: remove BUG statement\n\nRemove a \u0027BUG()\u0027 statement when we are unable to find a bud and add a\nsimilar \u0027ubifs_assert()\u0027 statement instead.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\n"
    }
  ],
  "next": "e76a452640dc110147f7a7da1dcfb1c5026f982d"
}
