)]}'
{
  "commit": "d3712b9dfcf44ca145cf87e7f4096fa2d923471a",
  "tree": "d72aaaa845fb81c669093363a0a1cc6d9e96baf2",
  "parents": [
    "c5d2bc11030568966f04a2af35bacf33d3e37af7",
    "f2933e86ad93a8d1287079d59e67afd6f4166a9d"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Jan 31 09:23:59 2012 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Jan 31 09:23:59 2012 -0800"
  },
  "message": "Merge tag \u0027for-linus\u0027 of git://github.com/prasad-joshi/logfs_upstream\n\nThere are few important bug fixes for LogFS\n\n* tag \u0027for-linus\u0027 of git://github.com/prasad-joshi/logfs_upstream:\n  Logfs: Allow NULL block_isbad() methods\n  logfs: Grow inode in delete path\n  logfs: Free areas before calling generic_shutdown_super()\n  logfs: remove useless BUG_ON\n  MAINTAINERS: Add Prasad Joshi in LogFS maintiners\n  logfs: Propagate page parameter to __logfs_write_inode\n  logfs: set superblock shutdown flag after generic sb shutdown\n  logfs: take write mutex lock during fsync and sync\n  logfs: Prevent memory corruption\n  logfs: update page reference count for pined pages\n\nFix up conflict in fs/logfs/dev_mtd.c due to semantic change in what\n\"mtd-\u003eblock_isbad\" means in commit f2933e86ad93: \"Logfs: Allow NULL\nblock_isbad() methods\" clashing with the abstraction changes in the\ncommits 7086c19d0742: \"mtd: introduce mtd_block_isbad interface\" and\nd58b27ed58a3: \"logfs: do not use \u0027mtd-\u003eblock_isbad\u0027 directly\".\n\nThis resolution takes the semantics from commit f2933e86ad93, and just\nmakes mtd_block_isbad() return zero (false) if the \u0027block_isbad\u0027\nfunction is NULL.  But that also means that now \"mtd_can_have_bb()\"\nalways returns 0.\n\nNow, \"mtd_block_markbad()\" will obviously return an error if the\nlow-level driver doesn\u0027t support bad blocks, so this is somewhat\nnon-symmetric, but it actually makes sense if a NULL \"block_isbad\"\nfunction is considered to mean \"I assume that all my blocks are always\ngood\".\n",
  "tree_diff": []
}
