)]}'
{
  "log": [
    {
      "commit": "b0b0382bb4904965a9e9fca77ad87514dfda0d1c",
      "tree": "dc46873fa74e0d194e4a2571b16f0767e1919ae8",
      "parents": [
        "6d42e7e9f6d86ed4dfacde75a6cf515068f9749c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 02 14:34:06 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 29 23:28:33 2012 -0400"
      },
      "message": "-\u003eencode_fh() API change\n\npass inode + parent\u0027s inode or NULL instead of dentry + bool saying\nwhether we want the parent or not.\n\nNOTE: that needs ceph fix folded in.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "f466c6fdb3b1f043ff1977a8d2a1d0cd4dc164fa",
      "tree": "4ebd1b27da5be1a77c6d095b2d0066ab8fb2c5e0",
      "parents": [
        "a8a4b79b53fc7cbb023afedf58b04dd4e9bbb114"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 01:16:43 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:43 2012 -0400"
      },
      "message": "move private bits of reiserfs_fs.h to fs/reiserfs/reiserfs.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a3063ab88fcbe5249f841cb95dfd626b8bf2674f",
      "tree": "bb3304f3317a4075cee2926b39867336cae708b0",
      "parents": [
        "c45ac8887e778c4fa2b572c51a94a681a0955d4d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 01:03:10 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:42 2012 -0400"
      },
      "message": "move reiserfs_acl.h to fs/reiserfs/acl.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c45ac8887e778c4fa2b572c51a94a681a0955d4d",
      "tree": "913d8c72376def5c3c29838273b2ddde49887c81",
      "parents": [
        "82234e61a8fc75599f29026c0805fc0cfe2a6c87"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 17 00:59:06 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:42 2012 -0400"
      },
      "message": "take private bits of reiserfs_xattr.h to fs/reiserfs/xattr.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8e0718924e7d7eaf6104e54aeaeda477570e1e06",
      "tree": "d3ba947bb403112679a0d0a58c7648b9be5ba715",
      "parents": [
        "576b1d67ce949e7542ff765b00eb5357e706768b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 02:50:53 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:00 2012 -0500"
      },
      "message": "reiserfs: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "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": "4482a087d4c5a6ffbc385c56b4a4e2f694d9fd5d",
      "tree": "10ca7beda590618be3c695720e04582c63a03822",
      "parents": [
        "6311b10800a4bdc3f2c85d01fb113cf49bb83770"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Jul 23 17:37:03 2011 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 25 14:25:38 2011 -0400"
      },
      "message": "reiserfs: cache negative ACLs for v1 stat format\n\nAlways set up a negative ACL cache entry if the inode can\u0027t have ACLs.\nThat behaves much better than doing this check inside -\u003echeck_acl.\n\nAlso remove the left over MAY_NOT_BLOCK check.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "aacfc19c626ebd3daa675652457d71019a1f583f",
      "tree": "9c1cfb5945e939f1ba56b4c0101c211e84e544c0",
      "parents": [
        "df2d6f26586f12a24f3ae5df4e236dc5c08d6eb4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:47 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:49 2011 -0400"
      },
      "message": "fs: simplify the blockdev_direct_IO prototype\n\nSimple filesystems always pass inode-\u003ei_sb_bdev as the block device\nargument, and never need a end_io handler.  Let\u0027s simply things for\nthem and for my grepping activity by dropping these arguments.  The\nonly thing not falling into that scheme is ext4, which passes and\nend_io handler without needing special flags (yet), but given how\nmessy the direct I/O code there is use of __blockdev_direct_IO\nin one instead of two out of three cases isn\u0027t going to make a large\ndifference anyway.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "562c72aa57c36b178eacc3500a0215651eca9429",
      "tree": "2c522c53ab26fc72e85e08747a08e3dca1207c87",
      "parents": [
        "11b80f459adaf91a712f95e7734a17655a36bf30"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Fri Jun 24 14:29:45 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:47 2011 -0400"
      },
      "message": "fs: move inode_dio_wait calls into -\u003esetattr\n\nLet filesystems handle waiting for direct I/O requests themselves instead\nof doing it beforehand.  This means filesystem-specific locks to prevent\nnew dio referenes from appearing can be held.  This is important to allow\ngeneralizing i_dio_count to non-DIO_LOCKING filesystems.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "5fe0c2378884e68beb532f5890cc0e3539ac747b",
      "tree": "be25414052184e146049ea6466854366559d5528",
      "parents": [
        "c8b91accfa1059d5565443193d89572eca2f5dd6"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Sat Jan 29 18:43:25 2011 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 14 09:15:28 2011 -0400"
      },
      "message": "exportfs: Return the minimum required handle size\n\nThe exportfs encode handle function should return the minimum required\nhandle size. This helps user to find out the handle size by passing 0\nhandle size in the first step and then redoing to the call again with\nthe returned handle size value.\n\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "451a3c24b0135bce54542009b5fde43846c7cf67",
      "tree": "f0fbbcc155aef2a1ffcb8aa593fe7a966d0e6900",
      "parents": [
        "55f6561c6941713ab5ae9180525b026dd40b7d14"
      ],
      "author": {
        "name": "Arnd Bergmann",
        "email": "arnd@arndb.de",
        "time": "Wed Nov 17 16:26:55 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 17 08:59:32 2010 -0800"
      },
      "message": "BKL: remove extraneous #include \u003csmp_lock.h\u003e\n\nThe big kernel lock has been removed from all these files at some point,\nleaving only the #include.\n\nRemove this too as a cleanup.\n\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "426e1f5cec4821945642230218876b0e89aafab1",
      "tree": "2728ace018d0698886989da586210ef1543a7098",
      "parents": [
        "9e5fca251f44832cb996961048ea977f80faf6ea",
        "63997e98a3be68d7cec806d22bf9b02b2e1daabb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 17:58:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits)\n  split invalidate_inodes()\n  fs: skip I_FREEING inodes in writeback_sb_inodes\n  fs: fold invalidate_list into invalidate_inodes\n  fs: do not drop inode_lock in dispose_list\n  fs: inode split IO and LRU lists\n  fs: switch bdev inode bdi\u0027s correctly\n  fs: fix buffer invalidation in invalidate_list\n  fsnotify: use dget_parent\n  smbfs: use dget_parent\n  exportfs: use dget_parent\n  fs: use RCU read side protection in d_validate\n  fs: clean up dentry lru modification\n  fs: split __shrink_dcache_sb\n  fs: improve DCACHE_REFERENCED usage\n  fs: use percpu counter for nr_dentry and nr_dentry_unused\n  fs: simplify __d_free\n  fs: take dcache_lock inside __d_path\n  fs: do not assign default i_ino in new_inode\n  fs: introduce a per-cpu last_ino allocator\n  new helper: ihold()\n  ...\n"
    },
    {
      "commit": "1b430beee5e388605dfb092b214ef0320f752cf6",
      "tree": "c1b1ece282aab771fd1386a3fe0c6e82cb5c5bfe",
      "parents": [
        "d19d5476f4b9f91d2de92b91588bb118beba6c0d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Oct 26 14:21:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:05 2010 -0700"
      },
      "message": "writeback: remove nonblocking/encountered_congestion references\n\nThis removes more dead code that was somehow missed by commit 0d99519efef\n(writeback: remove unused nonblocking and congestion checks).  There are\nno behavior change except for the removal of two entries from one of the\next4 tracing interface.\n\nThe nonblocking checks in -\u003ewritepages are no longer used because the\nflusher now prefer to block on get_request_wait() than to skip inodes on\nIO congestion.  The latter will lead to more seeky IO.\n\nThe nonblocking checks in -\u003ewritepage are no longer used because it\u0027s\nredundant with the WB_SYNC_NONE check.\n\nWe no long set -\u003enonblocking in VM page out and page migration, because\na) it\u0027s effectively redundant with WB_SYNC_NONE in current code\nb) it\u0027s old semantic of \"Don\u0027t get stuck on request queues\" is mis-behavior:\n   that would skip some dirty inodes on congestion and page out others, which\n   is unfair in terms of LRU age.\n\nInspired by Christoph Hellwig. Thanks!\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Sage Weil \u003csage@newdream.net\u003e\nCc: Steve French \u003csfrench@samba.org\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ebdec241d509cf69f6ebf1ecdc036359d3dbe154",
      "tree": "e3c23f9b213936cb8501c83f55522a01f4a69aca",
      "parents": [
        "56b0dacfa2b8416815a2f2a5f4f51e46be4cf14c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 06 10:47:23 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:18:20 2010 -0400"
      },
      "message": "fs: kill block_prepare_write\n\n__block_write_begin and block_prepare_write are identical except for slightly\ndifferent calling conventions.  Convert all callers to the __block_write_begin\ncalling conventions and drop block_prepare_write.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f4ae2faa40199b97b12f508234640bc565d166f8",
      "tree": "a4441d53e663fe028693bd140c0c1aae26091626",
      "parents": [
        "da5cabf80e2433131bf0ed8993abc0f7ea618c73"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Aug 11 14:07:01 2010 +0300"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Aug 18 00:58:57 2010 -0400"
      },
      "message": "fix reiserfs_evict_inode end_writeback second call\n\nreiserfs_evict_inode calls end_writeback two times hitting\nkernel BUG at fs/inode.c:298 becase inode-\u003ei_state is I_CLEAR already.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "845a2cc0507055278e0fa722ed0f8c791b7401dd",
      "tree": "73902e3bd0fbb4dffd3676070b4b0a296f4238e4",
      "parents": [
        "bd55597520a2eaa0d71dd7683513a14bfd1bdf5c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 11:37:37 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:23 2010 -0400"
      },
      "message": "convert reiserfs to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "db78b877f7744bec4a9d9f9e7d10da3931d7cd39",
      "tree": "fd9ee2fbe0998218b6d90322f85b285887e6fe9d",
      "parents": [
        "1025774ce411f2bd4b059ad7b53f0003569b74fa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:03 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:38 2010 -0400"
      },
      "message": "always call inode_change_ok early in -\u003esetattr\n\nMake sure we call inode_change_ok before doing any changes in -\u003esetattr,\nand make sure to call it even if our fs wants to ignore normal UNIX\npermissions, but use the ATTR_FORCE to skip those.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1025774ce411f2bd4b059ad7b53f0003569b74fa",
      "tree": "2be221c205cb5579652a6063e8ee27d1c72d1bbd",
      "parents": [
        "eef2380c187890816b73b1a4cb89a09203759469"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:02 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:37 2010 -0400"
      },
      "message": "remove inode_setattr\n\nReplace inode_setattr with opencoded variants of it in all callers.  This\nmoves the remaining call to vmtruncate into the filesystem methods where it\ncan be replaced with the proper truncate sequence.\n\nIn a few cases it was obvious that we would never end up calling vmtruncate\nso it was left out in the opencoded variant:\n\n spufs: explicitly checks for ATTR_SIZE earlier\n btrfs,hugetlbfs,logfs,dlmfs: explicitly clears ATTR_SIZE earlier\n ufs: contains an opencoded simple_seattr + truncate that sets the filesize just above\n\nIn addition to that ncpfs called inode_setattr with handcrafted iattrs,\nwhich allowed to trim down the opencoded variant.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6e1db88d536adcbbfe562b2d4b7d6425784fff12",
      "tree": "8cfcb5a6190722db6249b2e4978f39247975abcf",
      "parents": [
        "f4e420dc423148fba637af1ab618fa8896dfb2d6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:57 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:32 2010 -0400"
      },
      "message": "introduce __block_write_begin\n\nSplit up the block_write_begin implementation - __block_write_begin is a new\ntrivial wrapper for block_prepare_write that always takes an already\nallocated page and can be either called from block_write_begin or filesystem\ncode that already has a page allocated.  Remove the handling of already\nallocated pages from block_write_begin after switching all callers that\ndo it to __block_write_begin.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eafdc7d190a944c755a9fe68573c193e6e0217e7",
      "tree": "915c3cc8004706fabf88eae1ab123a3fa0147516",
      "parents": [
        "256249584bda1a9357e2d29987a37f5b2df035f6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:53 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:29 2010 -0400"
      },
      "message": "sort out blockdev_direct_IO variants\n\nMove the call to vmtruncate to get rid of accessive blocks to the callers\nin prepearation of the new truncate calling sequence.  This was only done\nfor DIO_LOCKING filesystems, so the __blockdev_direct_IO_newtrunc variant\nwas not needed anyway.  Get rid of blockdev_direct_IO_no_locking and\nits _newtrunc variant while at it as just opencoding the two additional\nparamters is shorted than the name suffix.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0e4f6a791b1e8cfde75a74e2f885642ecb3fe9d8",
      "tree": "3cb4d6590be13c4890a7d6d40b90a2517ccbe87a",
      "parents": [
        "918377b696bff7384923a1ef4bf0af7626cb9b68"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 04 12:18:57 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:27 2010 -0400"
      },
      "message": "Fix reiserfs_file_release()\n\na) count file openers correctly; i_count use was completely wrong\nb) use new mutex for exclusion between final close/open/truncate,\nto protect tailpacking logics.  i_mutex use was wrong and resulted\nin deadlocks.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "421f91d21ad6f799dc7b489bb33cc560ccc56f98",
      "tree": "aaf9f6385233fdf9277e634603156c89ede7f770",
      "parents": [
        "65155b3708137fabee865dc4da822763c0c41208"
      ],
      "author": {
        "name": "Uwe Kleine-König",
        "email": "u.kleine-koenig@pengutronix.de",
        "time": "Fri Jun 11 12:17:00 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Jun 16 18:05:05 2010 +0200"
      },
      "message": "fix typos concerning \"initiali[zs]e\"\n\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "12755627bdcddcdb30a1bfb9a09395a52b1d6838",
      "tree": "b2d69696975d5457648020324f683a45302fbf3c",
      "parents": [
        "fcbc59f96e38a0999e827be9d04d46b62b53b20a"
      ],
      "author": {
        "name": "Dmitry Monakhov",
        "email": "dmonakhov@openvz.org",
        "time": "Thu Apr 08 22:04:20 2010 +0400"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri May 21 19:30:45 2010 +0200"
      },
      "message": "quota: unify quota init condition in setattr\n\nQuota must being initialized if size or uid/git changes requested.\nBut initialization performed in two different places:\nin case of i_size file system is responsible for dquot init\n, but in case of uid/gid init will be called internally in\ndquot_transfer().\nThis ambiguity makes code harder to understand.\nLet\u0027s move this logic to one common helper function.\n\nSigned-off-by: Dmitry Monakhov \u003cdmonakhov@openvz.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "e213e26ab3988c516c06eba4dcd030ac052f6dc9",
      "tree": "6e26fbdbb842b387697d73daf6e70cf718269a77",
      "parents": [
        "c812a51d11bbe983f4c24e32b59b265705ddd3c2",
        "efd8f0e6f6c1faa041f228d7113bd3a9db802d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 05 13:20:53 2010 -0800"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6: (33 commits)\n  quota: stop using QUOTA_OK / NO_QUOTA\n  dquot: cleanup dquot initialize routine\n  dquot: move dquot initialization responsibility into the filesystem\n  dquot: cleanup dquot drop routine\n  dquot: move dquot drop responsibility into the filesystem\n  dquot: cleanup dquot transfer routine\n  dquot: move dquot transfer responsibility into the filesystem\n  dquot: cleanup inode allocation / freeing routines\n  dquot: cleanup space allocation / freeing routines\n  ext3: add writepage sanity checks\n  ext3: Truncate allocated blocks if direct IO write fails to update i_size\n  quota: Properly invalidate caches even for filesystems with blocksize \u003c pagesize\n  quota: generalize quota transfer interface\n  quota: sb_quota state flags cleanup\n  jbd: Delay discarding buffers in journal_unmap_buffer\n  ext3: quota_write cross block boundary behaviour\n  quota: drop permission checks from xfs_fs_set_xstate/xfs_fs_set_xquota\n  quota: split out compat_sys_quotactl support from quota.c\n  quota: split out netlink notification support from quota.c\n  quota: remove invalid optimization from quota_sync_all\n  ...\n\nFixed trivial conflicts in fs/namei.c and fs/ufs/inode.c\n"
    },
    {
      "commit": "a9185b41a4f84971b930c519f0c63bd450c4810d",
      "tree": "268cf4e206cca12fb9e1dd68984e7c190e465b46",
      "parents": [
        "26821ed40b4230259e770c9911180f38fcaa6f59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Mar 05 09:21:37 2010 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 05 13:25:52 2010 -0500"
      },
      "message": "pass writeback_control to -\u003ewrite_inode\n\nThis gives the filesystem more information about the writeback that\nis happening.  Trond requested this for the NFS unstable write handling,\nand other filesystems might benefit from this too by beeing able to\ndistinguish between the different callers in more detail.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "871a293155a24554e153538d36e3a80fa169aefb",
      "tree": "7e38f5a2f9e87f63cbc4bc1077a4bb49dde441b0",
      "parents": [
        "907f4554e2521cb28b0009d17167760650a9561c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:07 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot initialize routine\n\nGet rid of the initialize dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_initialize helper to __dquot_initialize\nand vfs_dq_init to dquot_initialize to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "907f4554e2521cb28b0009d17167760650a9561c",
      "tree": "68dc49163fd34331f8efbd63592c8f1baa387031",
      "parents": [
        "9f7547580263d4a55efe06ce5cfd567f568be6e8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:06 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: move dquot initialization responsibility into the filesystem\n\nCurrently various places in the VFS call vfs_dq_init directly.  This means\nwe tie the quota code into the VFS.  Get rid of that and make the\nfilesystem responsible for the initialization.   For most metadata operations\nthis is a straight forward move into the methods, but for truncate and\nopen it\u0027s a bit more complicated.\n\nFor truncate we currently only call vfs_dq_init for the sys_truncate case\nbecause open already takes care of it for ftruncate and open(O_TRUNC) - the\nnew code causes an additional vfs_dq_init for those which is harmless.\n\nFor open the initialization is moved from do_filp_open into the open method,\nwhich means it happens slightly earlier now, and only for regular files.\nThe latter is fine because we don\u0027t need to initialize it for operations\non special files, and we already do it as part of the namespace operations\nfor directories.\n\nAdd a dquot_file_open helper that filesystems that support generic quotas\ncan use to fill in -\u003eopen.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "9f7547580263d4a55efe06ce5cfd567f568be6e8",
      "tree": "6f926a075eeed815d0a6680c06f235da0e5ea6d9",
      "parents": [
        "257ba15cedf1288f0c96118d7e63947231d27278"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:05 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:30 2010 +0100"
      },
      "message": "dquot: cleanup dquot drop routine\n\nGet rid of the drop dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_drop helper to __dquot_drop\nand vfs_dq_drop to dquot_drop to have a consistent namespace.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "b43fa8284d7790d9cca32c9c55e24f29be2fa33b",
      "tree": "acb7f205fe2a1ae324e0e11c50f43baaa6b8dfab",
      "parents": [
        "759bfee658beab14af7b357156461d0eb852be2c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:03 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:29 2010 +0100"
      },
      "message": "dquot: cleanup dquot transfer routine\n\nGet rid of the transfer dquot operation - it is now always called from\nthe filesystem and if a filesystem really needs it\u0027s own (which none\ncurrently does) it can just call into it\u0027s own routine directly.\n\nRename the now static low-level dquot_transfer helper to __dquot_transfer\nand vfs_dq_transfer to dquot_transfer to have a consistent namespace,\nand make the new dquot_transfer return a normal negative errno value\nwhich all callers expect.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "63936ddaa16b9486e2d426ed7b09f559a5c60f87",
      "tree": "4cb1c4581799e10c26dd71d1a7d420de3c2cfd05",
      "parents": [
        "5dd4056db84387975140ff2568eaa0406f07985e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Mar 03 09:05:01 2010 -0500"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Mar 05 00:20:28 2010 +0100"
      },
      "message": "dquot: cleanup inode allocation / freeing routines\n\nGet rid of the alloc_inode and free_inode dquot operations - they are\nalways called from the filesystem and if a filesystem really needs\ntheir own (which none currently does) it can just call into it\u0027s\nown routine directly.\n\nAlso get rid of the vfs_dq_alloc/vfs_dq_free wrappers and always\ncall the lowlevel dquot_alloc_inode / dqout_free_inode routines\ndirectly, which now lose the number argument which is always 1.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "175359f89df39f4faed663c8cfd6ee0222d2fa1e",
      "tree": "8a5da216333192e7c2d605e1644f6bead22cdd06",
      "parents": [
        "bbec919150037b8a2e58e32d3ba642ba3b6582a5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Feb 11 13:13:10 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Feb 14 19:07:56 2010 +0100"
      },
      "message": "reiserfs: Fix softlockup while waiting on an inode\n\nWhen we wait for an inode through reiserfs_iget(), we hold\nthe reiserfs lock. And waiting for an inode may imply waiting\nfor its writeback. But the inode writeback path may also require\nthe reiserfs lock, which leads to a deadlock.\n\nWe just need to release the reiserfs lock from reiserfs_iget()\nto fix this.\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "82062e7b50280bcf0feca70ac35a44f375602976",
      "tree": "0321bff42945768990a92c3770d4270497c0e8ee",
      "parents": [
        "dbd6a7cfead4fa2d7ad3fefe47168fcb146ac5ba",
        "31370f62baa1460b785cee9944bdcaf63d19e567"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 14:03:55 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 08 14:03:55 2010 -0800"
      },
      "message": "Merge branch \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  reiserfs: Relax reiserfs_xattr_set_handle() while acquiring xattr locks\n  reiserfs: Fix unreachable statement\n  reiserfs: Don\u0027t call reiserfs_get_acl() with the reiserfs lock\n  reiserfs: Relax lock on xattr removing\n  reiserfs: Relax the lock before truncating pages\n  reiserfs: Fix recursive lock on lchown\n  reiserfs: Fix mistake in down_write() conversion\n"
    },
    {
      "commit": "108d3943c021f0b66e860ba98ded40b82b677bd7",
      "tree": "0567b063d5365e24bb418476310f412936e4dd8c",
      "parents": [
        "5fe1533fda8ae005541bd418a7a8bc4fa0cda522"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 00:15:38 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 08:00:29 2010 +0100"
      },
      "message": "reiserfs: Relax the lock before truncating pages\n\nWhile truncating a file, reiserfs_setattr() calls inode_setattr()\nthat will truncate the mapping for the given inode, but for that\nit needs the pages locks.\n\nIn order to release these, the owners need the reiserfs lock to\ncomplete their jobs. But they can\u0027t, as we don\u0027t release it before\ncalling inode_setattr().\n\nWe need to do that to fix the following softlockups:\n\nINFO: task flush-8:0:2149 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nflush-8:0     D f51af998     0  2149      2 0x00000000\n f51af9ac 00000092 00000002 f51af998 c2803304 00000000 c1894ad0 010f3000\n f51af9cc c1462604 c189ef80 f51af974 c1710304 f715b450 f715b5ec c2807c40\n 00000000 0005bb00 c2803320 c102c55b c1710304 c2807c50 c2803304 00000246\nCall Trace:\n [\u003cc1462604\u003e] ? schedule+0x434/0xb20\n [\u003cc102c55b\u003e] ? resched_task+0x4b/0x70\n [\u003cc106fa22\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc146414d\u003e] ? mutex_lock_nested+0x1fd/0x350\n [\u003cc14640b9\u003e] mutex_lock_nested+0x169/0x350\n [\u003cc1178cde\u003e] ? reiserfs_write_lock+0x2e/0x40\n [\u003cc1178cde\u003e] reiserfs_write_lock+0x2e/0x40\n [\u003cc11719a2\u003e] do_journal_end+0xc2/0xe70\n [\u003cc1172912\u003e] journal_end+0xb2/0x120\n [\u003cc11686b3\u003e] ? pathrelse+0x33/0xb0\n [\u003cc11729e4\u003e] reiserfs_end_persistent_transaction+0x64/0x70\n [\u003cc1153caa\u003e] reiserfs_get_block+0x12ba/0x15f0\n [\u003cc106fa22\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc1154b24\u003e] reiserfs_writepage+0xa74/0xe80\n [\u003cc1465a27\u003e] ? _raw_spin_unlock_irq+0x27/0x50\n [\u003cc11f3d25\u003e] ? radix_tree_gang_lookup_tag_slot+0x95/0xc0\n [\u003cc10b5377\u003e] ? find_get_pages_tag+0x127/0x1a0\n [\u003cc106fa22\u003e] ? mark_held_locks+0x62/0x80\n [\u003cc106fcd4\u003e] ? trace_hardirqs_on_caller+0x124/0x170\n [\u003cc10bc1e0\u003e] __writepage+0x10/0x40\n [\u003cc10bc9ab\u003e] write_cache_pages+0x16b/0x320\n [\u003cc10bc1d0\u003e] ? __writepage+0x0/0x40\n [\u003cc10bcb88\u003e] generic_writepages+0x28/0x40\n [\u003cc10bcbd5\u003e] do_writepages+0x35/0x40\n [\u003cc11059f7\u003e] writeback_single_inode+0xc7/0x330\n [\u003cc11067b2\u003e] writeback_inodes_wb+0x2c2/0x490\n [\u003cc1106a86\u003e] wb_writeback+0x106/0x1b0\n [\u003cc1106cf6\u003e] wb_do_writeback+0x106/0x1e0\n [\u003cc1106c18\u003e] ? wb_do_writeback+0x28/0x1e0\n [\u003cc1106e0a\u003e] bdi_writeback_task+0x3a/0xb0\n [\u003cc10cbb13\u003e] bdi_start_fn+0x63/0xc0\n [\u003cc10cbab0\u003e] ? bdi_start_fn+0x0/0xc0\n [\u003cc105d1f4\u003e] kthread+0x74/0x80\n [\u003cc105d180\u003e] ? kthread+0x0/0x80\n [\u003cc100327a\u003e] kernel_thread_helper+0x6/0x10\n3 locks held by flush-8:0/2149:\n #0:  (\u0026type-\u003es_umount_key#30){+++++.}, at: [\u003cc110676f\u003e] writeback_inodes_wb+0x27f/0x490\n #1:  (\u0026journal-\u003ej_mutex){+.+...}, at: [\u003cc117199a\u003e] do_journal_end+0xba/0xe70\n #2:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1178cde\u003e] reiserfs_write_lock+0x2e/0x40\nINFO: task fstest:3813 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nfstest        D 00000002     0  3813   3812 0x00000000\n f5103c94 00000082 f5103c40 00000002 f5ad5450 00000007 f5103c28 011f3000\n 00000006 f5ad5450 c10bb005 00000480 c1710304 f5ad5450 f5ad55ec c2907c40\n 00000001 f5ad5450 f5103c74 00000046 00000002 f5ad5450 00000007 f5103c6c\nCall Trace:\n [\u003cc10bb005\u003e] ? free_hot_cold_page+0x1d5/0x280\n [\u003cc1462d64\u003e] io_schedule+0x74/0xc0\n [\u003cc10b5a45\u003e] sync_page+0x35/0x60\n [\u003cc146325a\u003e] __wait_on_bit_lock+0x4a/0x90\n [\u003cc10b5a10\u003e] ? sync_page+0x0/0x60\n [\u003cc10b59e5\u003e] __lock_page+0x85/0x90\n [\u003cc105d660\u003e] ? wake_bit_function+0x0/0x60\n [\u003cc10bf654\u003e] truncate_inode_pages_range+0x1e4/0x2d0\n [\u003cc10bf75f\u003e] truncate_inode_pages+0x1f/0x30\n [\u003cc10bf7cf\u003e] truncate_pagecache+0x5f/0xa0\n [\u003cc10bf86a\u003e] vmtruncate+0x5a/0x70\n [\u003cc10fdb7d\u003e] inode_setattr+0x5d/0x190\n [\u003cc1150117\u003e] reiserfs_setattr+0x1f7/0x2f0\n [\u003cc1464569\u003e] ? down_write+0x49/0x70\n [\u003cc10fde01\u003e] notify_change+0x151/0x330\n [\u003cc10e6f3d\u003e] do_truncate+0x6d/0xa0\n [\u003cc10f4ce2\u003e] do_filp_open+0x9a2/0xcf0\n [\u003cc1465aec\u003e] ? _raw_spin_unlock+0x2c/0x50\n [\u003cc10fec50\u003e] ? alloc_fd+0xe0/0x100\n [\u003cc10e602d\u003e] do_sys_open+0x6d/0x130\n [\u003cc1002cfb\u003e] ? sysenter_exit+0xf/0x16\n [\u003cc10e615e\u003e] sys_open+0x2e/0x40\n [\u003cc1002ccc\u003e] sysenter_do_call+0x12/0x32\n3 locks held by fstest/3813:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#4){+.+.+.}, at: [\u003cc10e6f33\u003e] do_truncate+0x63/0xa0\n #1:  (\u0026sb-\u003es_type-\u003ei_alloc_sem_key#3){+.+.+.}, at: [\u003cc10fdf07\u003e] notify_change+0x257/0x330\n #2:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc1178c8e\u003e] reiserfs_write_lock_once+0x2e/0x50\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5fe1533fda8ae005541bd418a7a8bc4fa0cda522",
      "tree": "411dd7c99f884e914a34ce91d8f282bbc70c63c8",
      "parents": [
        "f3e22f48f37c1e14441c9f72ca8e63b1d4516745"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Jan 04 22:04:01 2010 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 05 07:59:38 2010 +0100"
      },
      "message": "reiserfs: Fix recursive lock on lchown\n\nOn chown, reiserfs will call reiserfs_setattr() to change the owner\nof the given inode, but it may also recursively call\nreiserfs_setattr() to propagate the owner change to the private xattr\nfiles for this inode.\n\nHence, the reiserfs lock may be acquired twice which is not wanted\nas reiserfs_setattr() calls journal_begin() that is going to try to\nrelax the lock in order to safely acquire the journal mutex.\n\nUsing reiserfs_write_lock_once() from reiserfs_setattr() solves\nthe problem.\n\nThis fixes the following warning, that precedes a lockdep report.\n\nWARNING: at fs/reiserfs/lock.c:95 reiserfs_lock_check_recursive+0x3f/0x50()\nHardware name: MS-7418\nUnwanted recursive reiserfs lock!\nPid: 4189, comm: fsstress Not tainted 2.6.33-rc2-tip-atom+ #195\nCall Trace:\n [\u003cc1178bff\u003e] ? reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc1178bff\u003e] ? reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc103f7ac\u003e] warn_slowpath_common+0x6c/0xc0\n [\u003cc1178bff\u003e] ? reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc103f84b\u003e] warn_slowpath_fmt+0x2b/0x30\n [\u003cc1178bff\u003e] reiserfs_lock_check_recursive+0x3f/0x50\n [\u003cc1172ae3\u003e] do_journal_begin_r+0x83/0x350\n [\u003cc1172f2d\u003e] journal_begin+0x7d/0x140\n [\u003cc106509a\u003e] ? in_group_p+0x2a/0x30\n [\u003cc10fda71\u003e] ? inode_change_ok+0x91/0x140\n [\u003cc115007d\u003e] reiserfs_setattr+0x15d/0x2e0\n [\u003cc10f9bf3\u003e] ? dput+0xe3/0x140\n [\u003cc1465adc\u003e] ? _raw_spin_unlock+0x2c/0x50\n [\u003cc117831d\u003e] chown_one_xattr+0xd/0x10\n [\u003cc11780a3\u003e] reiserfs_for_each_xattr+0x113/0x2c0\n [\u003cc1178310\u003e] ? chown_one_xattr+0x0/0x10\n [\u003cc14641e9\u003e] ? mutex_lock_nested+0x2a9/0x350\n [\u003cc117826f\u003e] reiserfs_chown_xattrs+0x1f/0x60\n [\u003cc106509a\u003e] ? in_group_p+0x2a/0x30\n [\u003cc10fda71\u003e] ? inode_change_ok+0x91/0x140\n [\u003cc1150046\u003e] reiserfs_setattr+0x126/0x2e0\n [\u003cc1177c20\u003e] ? reiserfs_getxattr+0x0/0x90\n [\u003cc11b0d57\u003e] ? cap_inode_need_killpriv+0x37/0x50\n [\u003cc10fde01\u003e] notify_change+0x151/0x330\n [\u003cc10e659f\u003e] chown_common+0x6f/0x90\n [\u003cc10e67bd\u003e] sys_lchown+0x6d/0x80\n [\u003cc1002ccc\u003e] sysenter_do_call+0x12/0x32\n---[ end trace 7c2b77224c1442fc ]---\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Christian Kujau \u003clists@nerdbynature.de\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45d28b097280a78893ce25a5d0db41e6a2717853",
      "tree": "0c2049700c5fca3fc9d73d2f347fab21e84765f8",
      "parents": [
        "4207a152bc242effd0b8231143aa5b9f7a1593a9",
        "835d5247d98f46e35d007dcfa6215e526ca33360"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 02 11:17:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 02 11:17:05 2010 -0800"
      },
      "message": "Merge branch \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027reiserfs/kill-bkl\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  reiserfs: Safely acquire i_mutex from xattr_rmdir\n  reiserfs: Safely acquire i_mutex from reiserfs_for_each_xattr\n  reiserfs: Fix journal mutex \u003c-\u003e inode mutex lock inversion\n  reiserfs: Fix unwanted recursive reiserfs lock in reiserfs_unlink()\n  reiserfs: Relax lock before open xattr dir in reiserfs_xattr_set_handle()\n  reiserfs: Relax reiserfs lock while freeing the journal\n  reiserfs: Fix reiserfs lock \u003c-\u003e i_mutex dependency inversion on xattr\n  reiserfs: Warn on lock relax if taken recursively\n  reiserfs: Fix reiserfs lock \u003c-\u003e i_xattr_sem dependency inversion\n  reiserfs: Fix remaining in-reclaim-fs \u003c-\u003e reclaim-fs-on locking inversion\n  reiserfs: Fix reiserfs lock \u003c-\u003e inode mutex dependency inversion\n  reiserfs: Fix reiserfs lock and journal lock inversion dependency\n  reiserfs: Fix possible recursive lock\n"
    },
    {
      "commit": "ec8e2f7466ca370f5e09000ca40a71759afc9ac8",
      "tree": "41c33d2317d9ffb0cc60cdacebf246bc023f8677",
      "parents": [
        "2bf212b9e48e1c35eaf8f0cc1729d7c4a39b7b5a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Dec 17 15:27:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 17 15:45:30 2009 -0800"
      },
      "message": "reiserfs: truncate blocks not used by a write\n\nIt can happen that write does not use all the blocks allocated in\nwrite_begin either because of some filesystem error (like ENOSPC) or\nbecause page with data to write has been removed from memory.  We truncate\nthese blocks so that we don\u0027t have dangling blocks beyond i_size.\n\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb1c2e51c5a72f093b5af384b11d2f1c2abd6c13",
      "tree": "e4cb094df0a729eaac4eb1229e0f9ee0ab39aeaf",
      "parents": [
        "500f5a0bf5f0624dae34307010e240ec090e4cde"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Dec 13 23:32:06 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Dec 14 11:47:11 2009 +0100"
      },
      "message": "reiserfs: Fix reiserfs lock and journal lock inversion dependency\n\nWhen we were using the bkl, we didn\u0027t care about dependencies against\nother locks, but the mutex conversion created new ones, which is why\nwe have reiserfs_mutex_lock_safe(), which unlocks the reiserfs lock\nbefore acquiring another mutex.\n\nBut this trick actually fails if we have acquired the reiserfs lock\nrecursively, as we try to unlock it to acquire the new mutex without\ninverted dependency, but we eventually only decrease its depth.\n\nThis happens in the case of a nested inode creation/deletion.\nSay we have no space left on the device, we create an inode\nand tak the lock but fail to create its entry, then we release the\ninode using iput(), which calls reiserfs_delete_inode() that takes\nthe reiserfs lock recursively. The path eventually ends up in\njournal_begin() where we try to take the journal safely but we\nfail because of the reiserfs lock recursion:\n\n[ INFO: possible circular locking dependency detected ]\n2.6.32-06486-g053fe57 #2\n-------------------------------------------------------\nvi/23454 is trying to acquire lock:\n (\u0026journal-\u003ej_mutex){+.+...}, at: [\u003cc110dac4\u003e] do_journal_begin_r+0x64/0x2f0\n\nbut task is already holding lock:\n (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc11106a8\u003e] reiserfs_write_lock+0x28/0x40\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #1 (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}:\n       [\u003cc104f8f3\u003e] validate_chain+0xa23/0xf70\n       [\u003cc1050325\u003e] __lock_acquire+0x4e5/0xa70\n       [\u003cc105092a\u003e] lock_acquire+0x7a/0xa0\n       [\u003cc134c78f\u003e] mutex_lock_nested+0x5f/0x2b0\n       [\u003cc11106a8\u003e] reiserfs_write_lock+0x28/0x40\n       [\u003cc110dacb\u003e] do_journal_begin_r+0x6b/0x2f0\n       [\u003cc110ddcf\u003e] journal_begin+0x7f/0x120\n       [\u003cc10f76c2\u003e] reiserfs_remount+0x212/0x4d0\n       [\u003cc1093997\u003e] do_remount_sb+0x67/0x140\n       [\u003cc10a9ca6\u003e] do_mount+0x436/0x6b0\n       [\u003cc10a9f86\u003e] sys_mount+0x66/0xa0\n       [\u003cc1002c50\u003e] sysenter_do_call+0x12/0x36\n\n-\u003e #0 (\u0026journal-\u003ej_mutex){+.+...}:\n       [\u003cc104fe38\u003e] validate_chain+0xf68/0xf70\n       [\u003cc1050325\u003e] __lock_acquire+0x4e5/0xa70\n       [\u003cc105092a\u003e] lock_acquire+0x7a/0xa0\n       [\u003cc134c78f\u003e] mutex_lock_nested+0x5f/0x2b0\n       [\u003cc110dac4\u003e] do_journal_begin_r+0x64/0x2f0\n       [\u003cc110ddcf\u003e] journal_begin+0x7f/0x120\n       [\u003cc10ef52f\u003e] reiserfs_delete_inode+0x9f/0x140\n       [\u003cc10a55fc\u003e] generic_delete_inode+0x9c/0x150\n       [\u003cc10a56ed\u003e] generic_drop_inode+0x3d/0x60\n       [\u003cc10a4607\u003e] iput+0x47/0x50\n       [\u003cc10e915c\u003e] reiserfs_create+0x16c/0x1c0\n       [\u003cc109a9c1\u003e] vfs_create+0xc1/0x130\n       [\u003cc109dbec\u003e] do_filp_open+0x81c/0x920\n       [\u003cc109004f\u003e] do_sys_open+0x4f/0x110\n       [\u003cc1090179\u003e] sys_open+0x29/0x40\n       [\u003cc1002c50\u003e] sysenter_do_call+0x12/0x36\n\nother info that might help us debug this:\n\n2 locks held by vi/23454:\n #0:  (\u0026sb-\u003es_type-\u003ei_mutex_key#5){+.+.+.}, at: [\u003cc109d64e\u003e]\ndo_filp_open+0x27e/0x920\n #1:  (\u0026REISERFS_SB(s)-\u003elock){+.+.+.}, at: [\u003cc11106a8\u003e]\nreiserfs_write_lock+0x28/0x40\n\nstack backtrace:\nPid: 23454, comm: vi Not tainted 2.6.32-06486-g053fe57 #2\nCall Trace:\n [\u003cc134b202\u003e] ? printk+0x18/0x1e\n [\u003cc104e960\u003e] print_circular_bug+0xc0/0xd0\n [\u003cc104fe38\u003e] validate_chain+0xf68/0xf70\n [\u003cc104ca9b\u003e] ? trace_hardirqs_off+0xb/0x10\n [\u003cc1050325\u003e] __lock_acquire+0x4e5/0xa70\n [\u003cc105092a\u003e] lock_acquire+0x7a/0xa0\n [\u003cc110dac4\u003e] ? do_journal_begin_r+0x64/0x2f0\n [\u003cc134c78f\u003e] mutex_lock_nested+0x5f/0x2b0\n [\u003cc110dac4\u003e] ? do_journal_begin_r+0x64/0x2f0\n [\u003cc110dac4\u003e] ? do_journal_begin_r+0x64/0x2f0\n [\u003cc110ff80\u003e] ? delete_one_xattr+0x0/0x1c0\n [\u003cc110dac4\u003e] do_journal_begin_r+0x64/0x2f0\n [\u003cc110ddcf\u003e] journal_begin+0x7f/0x120\n [\u003cc11105b5\u003e] ? reiserfs_delete_xattrs+0x15/0x50\n [\u003cc10ef52f\u003e] reiserfs_delete_inode+0x9f/0x140\n [\u003cc10a55bf\u003e] ? generic_delete_inode+0x5f/0x150\n [\u003cc10ef490\u003e] ? reiserfs_delete_inode+0x0/0x140\n [\u003cc10a55fc\u003e] generic_delete_inode+0x9c/0x150\n [\u003cc10a56ed\u003e] generic_drop_inode+0x3d/0x60\n [\u003cc10a4607\u003e] iput+0x47/0x50\n [\u003cc10e915c\u003e] reiserfs_create+0x16c/0x1c0\n [\u003cc1099a5d\u003e] ? inode_permission+0x7d/0xa0\n [\u003cc109a9c1\u003e] vfs_create+0xc1/0x130\n [\u003cc10e8ff0\u003e] ? reiserfs_create+0x0/0x1c0\n [\u003cc109dbec\u003e] do_filp_open+0x81c/0x920\n [\u003cc104ca9b\u003e] ? trace_hardirqs_off+0xb/0x10\n [\u003cc134dc0d\u003e] ? _spin_unlock+0x1d/0x20\n [\u003cc10a6eea\u003e] ? alloc_fd+0xba/0xf0\n [\u003cc109004f\u003e] do_sys_open+0x4f/0x110\n [\u003cc1090179\u003e] sys_open+0x29/0x40\n [\u003cc1002c50\u003e] sysenter_do_call+0x12/0x36\n\nTo fix this, use reiserfs_lock_once() from reiserfs_delete_inode()\nwhich prevents from adding reiserfs lock recursion.\n\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1d2c6cfd40b2dece3bb958cbbc405a2c1536ab75",
      "tree": "52ab33b148548083ae0456857791a8d410c83a31",
      "parents": [
        "27b3a5c51b50a234fb4a21146841e6723b5934ce"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 20 04:11:30 2009 +0100"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Nov 20 18:25:02 2009 +0100"
      },
      "message": "kill-the-bkl/reiserfs: turn GFP_ATOMIC flag to GFP_NOFS in reiserfs_get_block()\n\nGFP_ATOMIC was used in reiserfs_get_block to not lose the Bkl so that\nnobody can modify the tree in the middle of its work. Now that we\nkicked out the bkl, we can use a more friendly flag. We use GFP_NOFS\nhere because we already hold the reiserfs lock.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Laurent Riffard \u003claurent.riffard@free.fr\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "27b3a5c51b50a234fb4a21146841e6723b5934ce",
      "tree": "41b1df81b0b40b0115c77f835b3791db7c13c1f5",
      "parents": [
        "205cb37b89ab37db553907e5ac17962eec561804"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 23:34:31 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Oct 14 23:34:31 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: drop the fs race watchdog from _get_block_create_0()\n\nWe had a watchdog in _get_block_create_0() that jumped to a fixup retry\npath in case the bkl got relaxed while calling kmap().\nThis is not necessary anymore since we now have a reiserfs lock that is\nnot implicitly relaxed while sleeping.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Laurent Riffard \u003claurent.riffard@free.fr\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "7e94277050e31aa4204060f03953bba72598cf7d",
      "tree": "7a53cd463e76c0ed5e72345152755b5318ad430b",
      "parents": [
        "b10ab4c337a600456ed2d9daea0331016f7cdeeb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Aug 25 03:38:12 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:29 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: fix recursive reiserfs write lock in reiserfs_commit_write()\n\nreiserfs_commit_write() is always called with the write lock held.\nThus the current calls to reiserfs_write_lock() in this function are\nacquiring the lock recursively.\nWe can safely drop them.\n\nThis also solves further assumptions for this lock to be really\nreleased while calling reiserfs_write_unlock().\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Laurent Riffard \u003claurent.riffard@free.fr\u003e\n"
    },
    {
      "commit": "d6f5b0aa08078c3dabe377d5b1a6077e9c9352d3",
      "tree": "b5d6bd99e007c57a6cd4953368202d99a41141cd",
      "parents": [
        "09eb47a7c52ad535aafca889e0b936c445c375ce"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri May 08 14:53:52 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:20 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: factorize the locking in reiserfs_write_end()\n\nreiserfs_write_end() is a hot path in reiserfs.\nWe have two wasteful write lock lock/release inside that can be gathered\nwithout changing the code logic.\n\nThis patch factorizes them out in a single protected section, reducing the\nnumber of contentions inside.\n\n[ Impact: reduce lock contention in a reiserfs hotpath ]\n\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "26931309a47747fd31b2ef029c29d47794c2d93d",
      "tree": "85b3ba9ee14c6d90243e4590af60e7ef3e72c5ff",
      "parents": [
        "d663af807d8bb226394cb7e02f4665f6141a8140"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 07 23:48:44 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:16 2009 +0200"
      },
      "message": "kill-the-bkl/reiserfs: lock only once on reiserfs_get_block()\n\nreiserfs_get_block() is one of these sites where the write lock might\nbe acquired recursively.\n\nIt\u0027s a particular problem because this function is called very often.\nIt\u0027s a hot spot which needs to reschedule() periodically while converting\ndirect items to indirect ones because it can take some time.\n\nThen if we are applying the write lock release/reacquire pattern on\nschedule() here, it may not produce the desired effect since we may have\nlocked in more than one depth.\n\nThe solution is to use reiserfs_write_lock_once() which won\u0027t try\nto reacquire the lock recursively. Then the lock will be *really*\nreleased before schedule().\n\nAlso, we only release the lock if TIF_NEED_RESCHED is set to not\ncreate wasteful numerous contentions.\n\n[ Impact: fix a too long holded lock case in reiserfs_get_block() ]\n\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n"
    },
    {
      "commit": "22c963addcf426bef97a43f6e601f985f8082ed5",
      "tree": "f71ae95fd1eee899c446ebb03a3cc02fe24daf3c",
      "parents": [
        "daf88c898312a22b5385655bc6e0b064eaa2efba"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 14 05:34:24 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:18:03 2009 +0200"
      },
      "message": "kill-the-BKL/reiserfs: lock only once in reiserfs_truncate_file\n\nImpact: fix a deadlock\n\nreiserfs_truncate_file() can be called from multiple context where\nthe write lock can be already hold or not.\n\nThis function also acquire (possibly recursively) the write\nlock. Subsequent releases before sleeping will not actually release\nthe lock because we may be in more than one lock depth degree.\n\nA typical case is:\n\nreiserfs_file_release {\n\tacquire_the_lock()\n\treiserfs_truncate_file()\n\t\treacquire_the_lock()\n\t\tjournal_begin() {\n\t\t\tdo_journal_begin_r() {\n\t\t\t\treiserfs_wait_on_write_block() {\n\t\t\t\t\t/*\n\t\t\t\t\t * Not released because still one\n\t\t\t\t\t * depth owned\n\t\t\t\t\t */\n\t\t\t\t\trelease_lock()\n\t\t\t\t\twait_for_event()\n\nAt this stage the event never happen because the one which provides\nit needs the write lock.\n\nWe use reiserfs_write_lock_once() here to ensure that we don\u0027t acquire the\nwrite lock recursively.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nLKML-Reference: \u003c1239680065-25013-3-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8ebc423238341b52912c7295b045a32477b33f09",
      "tree": "39677401de0df98c09ca888c87d85033b6fe93c9",
      "parents": [
        "74fca6a42863ffacaf7ba6f1936a9f228950f657"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Apr 07 04:19:49 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Sep 14 07:17:59 2009 +0200"
      },
      "message": "reiserfs: kill-the-BKL\n\nThis patch is an attempt to remove the Bkl based locking scheme from\nreiserfs and is intended.\n\nIt is a bit inspired from an old attempt by Peter Zijlstra:\n\n   http://lkml.indiana.edu/hypermail/linux/kernel/0704.2/2174.html\n\nThe bkl is heavily used in this filesystem to prevent from\nconcurrent write accesses on the filesystem.\n\nReiserfs makes a deep use of the specific properties of the Bkl:\n\n- It can be acqquired recursively by a same task\n- It is released on the schedule() calls and reacquired when schedule() returns\n\nThe two properties above are a roadmap for the reiserfs write locking so it\u0027s\nvery hard to simply replace it with a common mutex.\n\n- We need a recursive-able locking unless we want to restructure several blocks\n  of the code.\n- We need to identify the sites where the bkl was implictly relaxed\n  (schedule, wait, sync, etc...) so that we can in turn release and\n  reacquire our new lock explicitly.\n  Such implicit releases of the lock are often required to let other\n  resources producer/consumer do their job or we can suffer unexpected\n  starvations or deadlocks.\n\nSo the new lock that replaces the bkl here is a per superblock mutex with a\nspecific property: it can be acquired recursively by a same task, like the\nbkl.\n\nFor such purpose, we integrate a lock owner and a lock depth field on the\nsuperblock information structure.\n\nThe first axis on this patch is to turn reiserfs_write_(un)lock() function\ninto a wrapper to manage this mutex. Also some explicit calls to\nlock_kernel() have been converted to reiserfs_write_lock() helpers.\n\nThe second axis is to find the important blocking sites (schedule...(),\nwait_on_buffer(), sync_dirty_buffer(), etc...) and then apply an explicit\nrelease of the write lock on these locations before blocking. Then we can\nsafely wait for those who can give us resources or those who need some.\nTypically this is a fight between the current writer, the reiserfs workqueue\n(aka the async commiter) and the pdflush threads.\n\nThe third axis is a consequence of the second. The write lock is usually\non top of a lock dependency chain which can include the journal lock, the\nflush lock or the commit lock. So it\u0027s dangerous to release and trying to\nreacquire the write lock while we still hold other locks.\n\nThis is fine with the bkl:\n\n      T1                       T2\n\nlock_kernel()\n    mutex_lock(A)\n    unlock_kernel()\n    // do something\n                            lock_kernel()\n                                mutex_lock(A) -\u003e already locked by T1\n                                schedule() (and then unlock_kernel())\n    lock_kernel()\n    mutex_unlock(A)\n    ....\n\nThis is not fine with a mutex:\n\n      T1                       T2\n\nmutex_lock(write)\n    mutex_lock(A)\n    mutex_unlock(write)\n    // do something\n                           mutex_lock(write)\n                              mutex_lock(A) -\u003e already locked by T1\n                              schedule()\n\n    mutex_lock(write) -\u003e already locked by T2\n    deadlock\n\nThe solution in this patch is to provide a helper which releases the write\nlock and sleep a bit if we can\u0027t lock a mutex that depend on it. It\u0027s another\nsimulation of the bkl behaviour.\n\nThe last axis is to locate the fs callbacks that are called with the bkl held,\naccording to Documentation/filesystem/Locking.\n\nThose are:\n\n- reiserfs_remount\n- reiserfs_fill_super\n- reiserfs_put_super\n\nReiserfs didn\u0027t need to explicitly lock because of the context of these callbacks.\nBut now we must take care of that with the new locking.\n\nAfter this patch, reiserfs suffers from a slight performance regression (for now).\nOn UP, a high volume write with dd reports an average of 27 MB/s instead\nof 30 MB/s without the patch applied.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Bron Gondwana \u003cbrong@fastmail.fm\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nLKML-Reference: \u003c1239070789-13354-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "281eede0328c84a8f20e0e85b807d5b51c3de4f2",
      "tree": "9eb0184c7066f27593f2fd75db1593bf688c330f",
      "parents": [
        "7a77b15d9294749809de918e24bebc39e0fbc9ab"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 21:07:04 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:06 2009 -0400"
      },
      "message": "switch reiserfs to inode-\u003ei_acl\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e1c502482853f84606928f5a2f2eb6da1993cda1",
      "tree": "ca296007164906342a195bdf3a5305277e6af5da",
      "parents": [
        "019abbc87025a030fd25008612afd4eff8a375f7",
        "ee93961be1faddf9e9a638bc519145c20f0cfeba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:29:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:33:01 2009 -0700"
      },
      "message": "Merge branch \u0027reiserfs-updates\u0027 from Jeff Mahoney\n\n* reiserfs-updates: (35 commits)\n  reiserfs: rename [cn]_* variables\n  reiserfs: rename p_._ variables\n  reiserfs: rename p_s_tb to tb\n  reiserfs: rename p_s_inode to inode\n  reiserfs: rename p_s_bh to bh\n  reiserfs: rename p_s_sb to sb\n  reiserfs: strip trailing whitespace\n  reiserfs: cleanup path functions\n  reiserfs: factor out buffer_info initialization\n  reiserfs: add atomic addition of selinux attributes during inode creation\n  reiserfs: use generic readdir for operations across all xattrs\n  reiserfs: journaled xattrs\n  reiserfs: use generic xattr handlers\n  reiserfs: remove i_has_xattr_dir\n  reiserfs: make per-inode xattr locking more fine grained\n  reiserfs: eliminate per-super xattr lock\n  reiserfs: simplify xattr internal file lookups/opens\n  reiserfs: Clean up xattrs when REISERFS_FS_XATTR is unset\n  reiserfs: remove IS_PRIVATE helpers\n  reiserfs: remove link detection code\n  ...\n\nFixed up conflicts manually due to:\n - quota name cleanups vs variable naming changes:\n\tfs/reiserfs/inode.c\n\tfs/reiserfs/namei.c\n\tfs/reiserfs/stree.c\n        fs/reiserfs/xattr.c\n - exported include header cleanups\n\tinclude/linux/reiserfs_fs.h\n"
    },
    {
      "commit": "995c762ea486b48c9777522071fbf132dea96807",
      "tree": "d6d82ca71ca67a98687762b83ce2858eb8dc624f",
      "parents": [
        "ad31a4fc0386e8590c51ca4b8f1ae1d8b8b2ac5e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:47 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: rename p_s_inode to inode\n\nThis patch is a simple s/p_s_inode/inode/g to the reiserfs code.  This\nis the third in a series of patches to rip out some of the awful\nvariable naming in reiserfs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0222e6571c332563a48d4cf5487b67feabe60b5e",
      "tree": "44829ca0a4b1343edec08d4f70696cb0d3218975",
      "parents": [
        "3cd6dbe6feb9b32347e6c6f25a27f0cde9d50418"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:44 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: strip trailing whitespace\n\nThis patch strips trailing whitespace from the reiserfs code.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57fe60df62410f949da094d06ced1dda9575b69c",
      "tree": "f3ba5db112cd7d2a8865d16bece28c38a766145c",
      "parents": [
        "a41f1a4715f26f7bc4d047d0bc7710145c8e69c7"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:41 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:39 2009 -0700"
      },
      "message": "reiserfs: add atomic addition of selinux attributes during inode creation\n\nSome time ago, some changes were made to make security inode attributes\nbe atomically written during inode creation.  ReiserFS fell behind in\nthis area, but with the reworking of the xattr code, it\u0027s now fairly\neasy to add.\n\nThe following patch adds the ability for security attributes to be added\nautomatically during inode creation.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ab2621ebd9a28bf7a524ecd50d492a10579dfcc",
      "tree": "62dda6de2fed116aff363190f95a58d56c690e3e",
      "parents": [
        "48b32a3553a54740d236b79a90f20147a25875e3"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:39 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: journaled xattrs\n\nDeadlocks are possible in the xattr code between the journal lock and the\nxattr sems.\n\nThis patch implements journalling for xattr operations. The benefit is\ntwofold:\n * It gets rid of the deadlock possibility by always ensuring that xattr\n   write operations are initiated inside a transaction.\n * It corrects the problem where xattr backing files aren\u0027t considered any\n   differently than normal files, despite the fact they are metadata.\n\nI discussed the added journal load with Chris Mason, and we decided that\nsince xattrs (versus other journal activity) is fairly rare, the introduction\nof larger transactions to support journaled xattrs wouldn\u0027t be too big a deal.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d984561b326cd0fe0d1183d11b9b4fa1d011d21d",
      "tree": "e0487588581bccaa2b875529ed84ec5a4a254ab9",
      "parents": [
        "6c17675e1e02ebde220ef639a3fb1333928ec2f4"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:35 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:38 2009 -0700"
      },
      "message": "reiserfs: eliminate per-super xattr lock\n\nWith the switch to using inode-\u003ei_mutex locking during lookups/creation\nin the xattr root, the per-super xattr lock is no longer needed.\n\nThis patch removes it.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6dfede696391133eadd7ce90b61c9573ee6e5a90",
      "tree": "2051bfc5108d0e7592b8738e43f4ae972d398ccd",
      "parents": [
        "010f5a21a323e7383e067009a7785462883fe5ea"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:32 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: remove IS_PRIVATE helpers\n\nThere are a number of helper functions for marking a reiserfs inode\nprivate that were leftover from reiserfs did its own thing wrt to\nprivate inodes.  S_PRIVATE has been in the kernel for some time, so this\npatch removes the helpers and uses IS_PRIVATE instead.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0030b64570c862f04c1550ba4a0bf7a9c128162a",
      "tree": "811b8eec4a417983ad1e5b51f44194f9cc98496d",
      "parents": [
        "1e5e59d431038c53954fe8f0b38bee0f0ad30349"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:28 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:37 2009 -0700"
      },
      "message": "reiserfs: use reiserfs_error()\n\nThis patch makes many paths that are currently using warnings to handle\nthe error.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3a9c2109f84882b9b3178f6b1838d550d3df0ec",
      "tree": "08a502b8013eabb562f03be45622b0f63b1a34b9",
      "parents": [
        "78b6513d2881f1a759fb9825a036d926392de084"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:25 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: rework reiserfs_panic\n\nReiserFS panics can be somewhat inconsistent.\nIn some cases:\n * a unique identifier may be associated with it\n * the function name may be included\n * the device may be printed separately\n\nThis patch aims to make warnings more consistent. reiserfs_warning() prints\nthe device name, so printing it a second time is not required. The function\nname for a warning is always helpful in debugging, so it is now automatically\ninserted into the output. Hans has stated that every warning should have\na unique identifier. Some cases lack them, others really shouldn\u0027t have them.\nreiserfs_warning() now expects an id associated with each message. In the\nrare case where one isn\u0027t needed, \"\" will suffice.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45b03d5e8e674eb6555b767e1c8eb40b671ff892",
      "tree": "d74acd1be7f5102143df960e8cd692aadcc437df",
      "parents": [
        "1d889d9958490888b3fad1d486145d9a03559cbc"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Mon Mar 30 14:02:21 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 12:16:36 2009 -0700"
      },
      "message": "reiserfs: rework reiserfs_warning\n\nReiserFS warnings can be somewhat inconsistent.\nIn some cases:\n * a unique identifier may be associated with it\n * the function name may be included\n * the device may be printed separately\n\nThis patch aims to make warnings more consistent. reiserfs_warning() prints\nthe device name, so printing it a second time is not required. The function\nname for a warning is always helpful in debugging, so it is now automatically\ninserted into the output. Hans has stated that every warning should have\na unique identifier. Some cases lack them, others really shouldn\u0027t have them.\nreiserfs_warning() now expects an id associated with each message. In the\nrare case where one isn\u0027t needed, \"\" will suffice.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "77db4f25bca22ce96be0cd3c5a3160599817ff45",
      "tree": "c920107811ce80952c320071065ac3872073d900",
      "parents": [
        "a269eb18294d35874c53311acc2cd0b5ef477ce5"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jan 26 17:14:18 2009 +0100"
      },
      "committer": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Mar 26 02:18:36 2009 +0100"
      },
      "message": "reiserfs: Use lowercase names of quota functions\n\nUse lowercase names of quota functions instead of old uppercase ones.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCC: reiserfs-devel@vger.kernel.org\n"
    },
    {
      "commit": "520c85346666d4d9a6fcaaa8450542302dc28b91",
      "tree": "9c9cc9e2493b606104dd8602302ae28258ebeac0",
      "parents": [
        "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
        "4ae8978cf92a96257cd8998a49e781be83571d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "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:\n  inotify: fix type errors in interfaces\n  fix breakage in reiserfs_new_inode()\n  fix the treatment of jfs special inodes\n  vfs: remove duplicate code in get_fs_type()\n  add a vfs_fsync helper\n  sys_execve and sys_uselib do not call into fsnotify\n  zero i_uid/i_gid on inode allocation\n  inode-\u003ei_op is never NULL\n  ntfs: don\u0027t NULL i_op\n  isofs check for NULL -\u003ei_op in root directory is dead code\n  affs: do not zero -\u003ei_op\n  kill suid bit only for regular files\n  vfs: lseek(fd, 0, SEEK_CUR) race condition\n"
    },
    {
      "commit": "2f1169e2dc0c70e213f79ada88a10912cc2fbe94",
      "tree": "887a9c427992b2a3a131ce0a90080a1b31cb7773",
      "parents": [
        "5b45d96bf963afeb931a75faf02fb424e446e5a9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 02 08:16:51 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:29 2009 -0500"
      },
      "message": "fix breakage in reiserfs_new_inode()\n\nnow that we use ih.key earlier, we need to do all its setup early enough\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c1eaa26b671299b3ec01d40c6c71ee19a4f81517",
      "tree": "a9cc7d3126a727f01d3cb9aa41fee199bb502987",
      "parents": [
        "6b38e842bb832a3dbeb17e382404aef3c40ac5f9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 30 02:03:58 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 31 18:07:44 2008 -0500"
      },
      "message": "nfsd race fixes: reiserfs\n\n... and the same for reiserfs.  The difference here is that we need\ninsert_inode_locked4() to match iget5_locked().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "440037287c5ebb07033ab927ca16bb68c291d309",
      "tree": "c4be3843ea87a777c2647f471895917005d8068f",
      "parents": [
        "4ea3ada2955e4519befa98ff55dd62d6dfbd1705"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 11 15:49:04 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:01 2008 -0400"
      },
      "message": "[PATCH] switch all filesystems over to d_obtain_alias\n\nSwitch all users of d_alloc_anon to d_obtain_alias.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ca5de404ff036a29b25e9a83f6919c9f606c5841",
      "tree": "474da867c4d4086313cee90cdc3560bb17fade96",
      "parents": [
        "529ae9aaa08378cfe2a4350bded76f32cc8ff0ce"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Aug 02 12:02:13 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 21:56:09 2008 -0700"
      },
      "message": "fs: rename buffer trylock\n\nLike the page lock change, this also requires name change, so convert the\nraw test_and_set bitop to a trylock.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb35c218d83ec0780d9db869310f2e333f628702",
      "tree": "d958661099c79352c36508784720c89d12ad1682",
      "parents": [
        "90621ed829ac64eb25b4d1214e9a5155e5c67ff2"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Jul 08 14:37:06 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 08 12:39:31 2008 -0700"
      },
      "message": "reiserfs: discard prealloc in reiserfs_delete_inode\n\nWith the removal of struct file from the xattr code,\nreiserfs_file_release() isn\u0027t used anymore, so the prealloc isn\u0027t\ndiscarded.  This causes hangs later down the line.\n\nThis patch adds it to reiserfs_delete_inode.  In most cases it will be a\nno-op due to it already having been called, but will avoid hangs with\nxattrs.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f",
      "tree": "d4b17ef65960594681397a3acac02c2d248200b5",
      "parents": [
        "d1bc8e95445224276d7896b8b08cbb0b28a0ca80"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:26 2008 -0800"
      },
      "message": "Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p)\n\nConvert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:\n\nperl -spi -e \u0027s/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\\1)/\u0027 `grep -rl \u0027ERR_PTR[(]*PTR_ERR\u0027 fs crypto net security`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eebd2aa355692afaf9906f62118620f1a1c19dbb",
      "tree": "207eead3a736963c3e50942038c463f2f611ccce",
      "parents": [
        "b98348bdd08dc4ec11828aa98a78edde15c53cfa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Mon Feb 04 22:28:29 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:13 2008 -0800"
      },
      "message": "Pagecache zeroing: zero_user_segment, zero_user_segments and zero_user\n\nSimplify page cache zeroing of segments of pages through 3 functions\n\nzero_user_segments(page, start1, end1, start2, end2)\n\n        Zeros two segments of the page. It takes the position where to\n        start and end the zeroing which avoids length calculations and\n\tmakes code clearer.\n\nzero_user_segment(page, start, end)\n\n        Same for a single segment.\n\nzero_user(page, start, length)\n\n        Length variant for the case where we know the length.\n\nWe remove the zero_user_page macro. Issues:\n\n1. Its a macro. Inline functions are preferable.\n\n2. The KM_USER0 macro is only defined for HIGHMEM.\n\n   Having to treat this special case everywhere makes the\n   code needlessly complex. The parameter for zeroing is always\n   KM_USER0 except in one single case that we open code.\n\nAvoiding KM_USER0 makes a lot of code not having to be dealing\nwith the special casing for HIGHMEM anymore. Dealing with\nkmap is only necessary for HIGHMEM configurations. In those\nconfigurations we use KM_USER0 like we do for a series of other\nfunctions defined in highmem.h.\n\nSince KM_USER0 is depends on HIGHMEM the existing zero_user_page\nfunction could not be a macro. zero_user_* functions introduced\nhere can be be inline because that constant is not used when these\nfunctions are called.\n\nAlso extract the flushing of the caches to be outside of the kmap.\n\n[akpm@linux-foundation.org: fix nfs and ntfs build]\n[akpm@linux-foundation.org: fix ntfs build some more]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be55caf177e14bc54d1498d599a78849b0b230bb",
      "tree": "ca108e80b1c935f939b55d86ee8c5072e5207727",
      "parents": [
        "480b116c98344ca246f50aade6eb7aca98151a2f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Oct 21 16:42:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Oct 22 08:13:20 2007 -0700"
      },
      "message": "reiserfs: new export ops\n\nAnother nice little cleanup by using the new methods.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ee1667042c350003b9d3f35e5666cc8c43ce8aa",
      "tree": "331217461b684c298397d7347431c500c5969148",
      "parents": [
        "6c57c2c8d3862c8d5b908669654f6565da74ec19"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Oct 18 23:39:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:35 2007 -0700"
      },
      "message": "reiserfs: fix usage of signed ints for block numbers\n\nDo a quick signedness check for block numbers.  There are a number of places\nwhere signed integers are used for block numbers, which limits the usable file\nsystem size to 8 TiB.  The disk format, excepting a problem which will be\nfixed in the following patch, supports file systems up to 16 TiB in size.\nThis patch cleans up those sites so that we can enable the full usable size.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdd6fe6e2f7eb8e940854317613885c33b1fe584",
      "tree": "e255e989145fe0147d602f36cab776864fb512d0",
      "parents": [
        "8a0ce7d99a4d19788e017f3138bc59b9962057ae"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Oct 18 03:05:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:22 2007 -0700"
      },
      "message": "reiserfs: turn of ATTR_KILL_S*ID at beginning of reiserfs_setattr\n\nreiserfs_setattr can call notify_change recursively using the same\niattr struct. This could cause it to trip the BUG() in notify_change.\nFix reiserfs to clear those bits near the beginning of the function.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "deba0f49b9345f885a53a077623a68cef89c01d5",
      "tree": "cd8538a476ac76ff41a7070c472b1f28cda536e2",
      "parents": [
        "e423003028183df54f039dfda8b58c49e78c89d7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 16 23:26:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:46 2007 -0700"
      },
      "message": "fs/reiserfs/: cleanups\n\n- remove the following no longer used functions:\n  - bitmap.c: reiserfs_claim_blocks_to_be_allocated()\n  - bitmap.c: reiserfs_release_claimed_blocks()\n  - bitmap.c: reiserfs_can_fit_pages()\n\n- make the following functions static:\n  - inode.c: restart_transaction()\n  - journal.c: reiserfs_async_progress_wait()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7557e8f7ff785d6c2b5bc914cd1675314ff0fcf",
      "tree": "ad00de4fd519ff462df289f23dfb21d395e1e011",
      "parents": [
        "ba9d8cec6c7165e440f9b2413a0464cf3c12fb25"
      ],
      "author": {
        "name": "Vladimir Saveliev",
        "email": "vs@namesys.com",
        "time": "Tue Oct 16 01:25:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "reiserfs: use generic_cont_expand_simple\n\nThis patch makes reiserfs to use AOP_FLAG_CONT_EXPAND\nin order to get rid of the special generic_cont_expand routine\n\nSigned-off-by: Vladimir Saveliev \u003cvs@namesys.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba9d8cec6c7165e440f9b2413a0464cf3c12fb25",
      "tree": "7fc05b10cdd18da51fce987b3323754ecdc53973",
      "parents": [
        "797b4cffdf79b9ed66759b8d2d5252eba965fb18"
      ],
      "author": {
        "name": "Vladimir Saveliev",
        "email": "vs@namesys.com",
        "time": "Tue Oct 16 01:25:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:42:56 2007 -0700"
      },
      "message": "reiserfs: convert to new aops\n\nConvert reiserfs to new aops\n\nSigned-off-by: Vladimir Saveliev \u003cvs@namesys.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a569425512253992cc64ebf8b6d00a62f986db3e",
      "tree": "7ea72c75c54697bddbad807af89cc549d7426a69",
      "parents": [
        "6dd4ac3b30b81b5bd0d628af1c89b7da689a38ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Tue Jul 17 04:04:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:06 2007 -0700"
      },
      "message": "knfsd: exportfs: add exportfs.h header\n\ncurrently the export_operation structure and helpers related to it are in\nfs.h.  fs.h is already far too large and there are very few places needing the\nexport bits, so split them off into a separate header.\n\n[akpm@linux-foundation.org: fix cifs build]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2fff596955867d407cc7e8e426097bd9ad2be9b",
      "tree": "68ca108b7eecef9d789fb7bf9eb2405854880575",
      "parents": [
        "0c11d7a9e9e9793219baf715048c190a84bead57"
      ],
      "author": {
        "name": "Nate Diller",
        "email": "nate.diller@gmail.com",
        "time": "Wed May 09 02:35:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:56 2007 -0700"
      },
      "message": "reiserfs: use zero_user_page\n\nUse zero_user_page() instead of open-coding it.\n\nSigned-off-by: Nate Diller \u003cnate.diller@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de14569f94513279e3d44d9571a421e9da1759ae",
      "tree": "9cc06497397728a13cc53150c574fd6d9896b7c5",
      "parents": [
        "30150f8d7b76f25b1127a5079528b7a17307f995"
      ],
      "author": {
        "name": "Vladimir Saveliev",
        "email": "vs@namesys.com",
        "time": "Mon Jan 22 20:40:46 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jan 23 07:52:06 2007 -0800"
      },
      "message": "[PATCH] resierfs: avoid tail packing if an inode was ever mmapped\n\nThis patch fixes a confusion reiserfs has for a long time.\n\nOn release file operation reiserfs used to try to pack file data stored in\nlast incomplete page of some files into metadata blocks.  After packing the\npage got cleared with clear_page_dirty.  It did not take into account that\nthe page may be mmaped into other process\u0027s address space.  Recent\nreplacement for clear_page_dirty cancel_dirty_page found the confusion with\nsanity check that page has to be not mapped.\n\nThe patch fixes the confusion by making reiserfs avoid tail packing if an\ninode was ever mmapped.  reiserfs_mmap and reiserfs_file_release are\nserialized with mutex in reiserfs specific inode.  reiserfs_mmap locks the\nmutex and sets a bit in reiserfs specific inode flags.\nreiserfs_file_release checks the bit having the mutex locked.  If bit is\nset - tail packing is avoided.  This eliminates a possibility that mmapped\npage gets cancel_page_dirty-ed.\n\nSigned-off-by: Vladimir Saveliev \u003cvs@namesys.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fec6d055da71fb02a76f9c2c12427fa79974018b",
      "tree": "d6fb2e5fea74ab83280389ef8a16564bf284ebc5",
      "parents": [
        "0cc72dc7f050188d8d7344b1dd688cbc68d3cd30"
      ],
      "author": {
        "name": "Josef \"Jeff\" Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Fri Dec 08 02:36:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:40 2006 -0800"
      },
      "message": "[PATCH] struct path: rename Reiserfs\u0027s struct path\n\nRename Reiserfs\u0027s struct path to struct treepath to prevent name collision\nbetween it and struct path from fs/namei.c.\n\nSigned-off-by: Josef \"Jeff\" Sipek \u003cjsipek@cs.sunysb.edu\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "01afb2134ed079fa4551b4d26f62423df6790c09",
      "tree": "c2846354f3f3ef8e1248e80f94f23ce7e13a1b6e",
      "parents": [
        "9399575dd30edcb84e821583daf81d4ba774a95b"
      ],
      "author": {
        "name": "Yan Burman",
        "email": "burman.yan@gmail.com",
        "time": "Wed Dec 06 20:39:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:41 2006 -0800"
      },
      "message": "[PATCH] reiser: replace kmalloc+memset with kzalloc\n\nReplace kmalloc+memset with kzalloc\n\nSigned-off-by: Yan Burman \u003cburman.yan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "87b4126f10cce2d49687df227f6228fa5a9ac6c6",
      "tree": "df0ba51b90297484eb22253d30d02424ad0425b0",
      "parents": [
        "4cf303487d5dddaace2daca8437c555f3f0bc1aa"
      ],
      "author": {
        "name": "Suzuki K P",
        "email": "suzuki@in.ibm.com",
        "time": "Wed Dec 06 20:36:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:32 2006 -0800"
      },
      "message": "[PATCH] fix reiserfs bad path release panic\n\nOne of our test team hit a reiserfs_panic while running fsstress tests on\n2.6.19-rc1.  The message looks like :\n\n  REISERFS: panic(device Null superblock):\n  reiserfs[5676]: assertion !(p-\u003epath_length !\u003d 1 ) failed at\n  fs/reiserfs/stree.c:397:reiserfs_check_path: path not properly relsed.\n\nThe backtrace looked :\n\n  kernel BUG in reiserfs_panic at fs/reiserfs/prints.c:361!\n\t.reiserfs_check_path+0x58/0x74\n\t.reiserfs_get_block+0x1444/0x1508\n\t.__block_prepare_write+0x1c8/0x558\n\t.block_prepare_write+0x34/0x64\n\t.reiserfs_prepare_write+0x118/0x1d0\n\t.generic_file_buffered_write+0x314/0x82c\n\t.__generic_file_aio_write_nolock+0x350/0x3e0\n\t.__generic_file_write_nolock+0x78/0xb0\n\t.generic_file_write+0x60/0xf0\n\t.reiserfs_file_write+0x198/0x2038\n\t.vfs_write+0xd0/0x1b4\n\t.sys_write+0x4c/0x8c\n\tsyscall_exit+0x0/0x4\n\nUpon debugging I found that the restart_transaction was not releasing\nthe path if the th-\u003erefcount was \u003e 1.\n\n/*static*/\nint restart_transaction(struct reiserfs_transaction_handle *th,\n                           \t\t\tstruct inode *inode, struct path *path)\n{\n\t[...]\n\n         /* we cannot restart while nested */\n         if (th-\u003et_refcount \u003e 1) { \u003c\u003c- Path is not released in this case!\n                 return 0;\n         }\n\n         pathrelse(path); \u003c\u003c- Path released here.\n\t[...]\n\nThis could happen in such a situation :\n\nIn reiserfs/inode.c: reiserfs_get_block() ::\n\n      if (repeat \u003d\u003d NO_DISK_SPACE || repeat \u003d\u003d QUOTA_EXCEEDED) {\n          /* restart the transaction to give the journal a chance to free\n           ** some blocks.  releases the path, so we have to go back to\n           ** research if we succeed on the second try\n           */\n          SB_JOURNAL(inode-\u003ei_sb)-\u003ej_next_async_flush \u003d 1;\n\n        --\u003e\u003e  retval \u003d restart_transaction(th, inode, \u0026path); \u003c\u003c--\n\n  We are supposed to release the path, no matter we succeed or fail. But\nif the th-\u003erefcount is \u003e 1, the path is still valid. And,\n\n          if (retval)\n                   goto failure;\n          repeat \u003d\n              _allocate_block(th, block, inode,\n                             \u0026allocated_block_nr, NULL, create);\n\nIf the above allocate_block fails with NO_DISK_SPACE or QUOTA_EXCEEDED,\nwe would have path which is not released.\n\n         if (repeat !\u003d NO_DISK_SPACE \u0026\u0026 repeat !\u003d QUOTA_EXCEEDED) {\n                   goto research;\n         }\n         if (repeat \u003d\u003d QUOTA_EXCEEDED)\n                   retval \u003d -EDQUOT;\n         else\n                   retval \u003d -ENOSPC;\n         goto failure;\n\t[...]\n\n       failure:\n\t[...]\n         reiserfs_check_path(\u0026path); \u003c\u003c Panics here !\n\nAttached here is a patch which could fix the issue.\n\nfix reiserfs/inode.c : restart_transaction() to release the path in all\ncases.\n\nThe restart_transaction() doesn\u0027t release the path when the the journal\nhandle has a refcount \u003e 1.  This would trigger a reiserfs_panic() if we\nencounter an -ENOSPC / -EDQUOT in reiserfs_get_block().\n\nSigned-off-by: Suzuki K P \u003csuzuki@in.ibm.com\u003e\nCc: \"Vladimir V. Saveliev\" \u003cvs@namesys.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "585b7747d63e3a5f65628d21c1745edd926d7897",
      "tree": "a00ec26498cb7c505bf6cf70da7957abd837658e",
      "parents": [
        "add216608a63713b8a2c4545698d5ae02e27ac3b"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Wed Oct 04 02:15:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:14 2006 -0700"
      },
      "message": "[PATCH] Remove unnecessary check in fs/reiserfs/inode.c\n\nSince all callers dereference dir, we dont need this check.  Coverity id\n#337.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cfe14677f286c9be5d683b88214def8f4b8a6f24",
      "tree": "038d6cc9d2a1f71a74fa753c0291038f37fb6718",
      "parents": [
        "068fbb315dd1e9dd3418aac39a9cfeabe39c16a6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Sep 29 02:00:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:11 2006 -0700"
      },
      "message": "[PATCH] reiserfs: ifdef ACL stuff from inode\n\nShrink reiserfs inode more (by 8 bytes) for ACL non-users:\n\n\t-reiser_inode_cache     344     11\n\t+reiser_inode_cache     336     11\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "068fbb315dd1e9dd3418aac39a9cfeabe39c16a6",
      "tree": "200b12fa1145f7876ddd10e6871c1a1652f90189",
      "parents": [
        "e6cab99bb478e067b1a7a120333ff326954a2412"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Sep 29 01:59:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:11 2006 -0700"
      },
      "message": "[PATCH] reiserfs: ifdef xattr_sem\n\nShrink reiserfs inode by 12 bytes for xattr non-users (me).\n\n\t-reiser_inode_cache     356     11\n\t+reiser_inode_cache     344     11\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b4c76fa721c7c8a43655a74e508870d21d2e26d3",
      "tree": "b8c69298a29e3476413da922f7fd6c13cb750f83",
      "parents": [
        "b5f3953c10b27fcd1c83e199e573b41d8327e22e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Sat Aug 05 12:15:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:49 2006 -0700"
      },
      "message": "[PATCH] reiserfs_write_full_page() should not get_block past eof\n\nreiserfs_write_full_page does zero bytes in the file past eof, but it may\ncall get_block on those buffers as well.  On machines where the page size\nis larger than the blocksize, this can result in mmaped files incorrectly\ngrowing up to a block boundary during writepage.\n\nThe fix is to avoid calling get_block for any blocks that are entirely past\neof\n\nSigned-off-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0b33dee2dcc85626627919094befc17cfb141e4",
      "tree": "59e36e5ad2e84ce8823e3ea975c2f36ff6bed0e8",
      "parents": [
        "c3760ae1f914cf4479301a92c58ae65824ac5894"
      ],
      "author": {
        "name": "Alexander Zarochentsev",
        "email": "zam@namesys.com",
        "time": "Sat Aug 05 12:14:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Aug 06 08:57:46 2006 -0700"
      },
      "message": "[PATCH] i_mutex does not need to be locked in reiserfs_delete_inode()\n\nFixes an i_mutex-inside-i_mutex lockdep nasty.\n\nSigned-off-by: Alexander Zarochentsev \u003czam@namesys.com\u003e\nCc: \u003creiserfs-dev@namesys.com\u003e\nCc: Hans Reiser \u003creiser@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd535a5965cef7551da34aef5cec47f46e97b6d9",
      "tree": "104840ddc1afa4f86292fcfb3c99dbdca99aaf50",
      "parents": [
        "d882b172512758703ff8d9efb96505eaaee48d2e"
      ],
      "author": {
        "name": "Vladimir Saveliev",
        "email": "vs@namesys.com",
        "time": "Sat Jul 01 04:36:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jul 01 09:56:04 2006 -0700"
      },
      "message": "[PATCH] reiserfs: update ctime and mtime on expanding truncate\n\nReiserfs does not update ctime and mtime on expanding truncate via\ntruncate().  This patch fixes it.\n\nSigned-off-by: Vladimir Saveliev \u003cvs@namesys.com\u003e\nCc: Hans Reiser \u003creiser@namesys.com\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "f5e54d6e53a20cef45af7499e86164f0e0d16bb2",
      "tree": "cb92acbb89b84796261bf5563182261ec5654127",
      "parents": [
        "a052b68b1e7a31f1e6a721290035e9deb0f6fed9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Jun 28 04:26:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jun 28 14:59:04 2006 -0700"
      },
      "message": "[PATCH] mark address_space_operations const\n\nSame as with already do with the file operations: keep them in .rodata and\nprevents people from doing runtime patching.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1d8fa7a2b9a39d18727acc5c468e870df606c852",
      "tree": "41537fe9ea5478f3243e3301184dc13980f8201f",
      "parents": [
        "fa30bd058b746c0e2318a77ff8b4977faa924c2c"
      ],
      "author": {
        "name": "Badari Pulavarty",
        "email": "pbadari@us.ibm.com",
        "time": "Sun Mar 26 01:38:02 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:01 2006 -0800"
      },
      "message": "[PATCH] remove -\u003eget_blocks() support\n\nNow that get_block() can handle mapping multiple disk blocks, no need to have\n-\u003eget_blocks().  This patch removes fs specific -\u003eget_blocks() added for DIO\nand makes it users use get_block() instead.\n\nSigned-off-by: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c499ec24c31edf270e777a868ffd0daddcfe7ebd",
      "tree": "bf16f601b5446bb0b9fe3f90030a76ac4e25fc11",
      "parents": [
        "a57ebfdb2cf9fa60dfa2f403f70ef6c432ca2a62"
      ],
      "author": {
        "name": "Vladimir V. Saveliev",
        "email": "vs@namesys.com",
        "time": "Thu Mar 02 02:54:39 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 02 08:33:08 2006 -0800"
      },
      "message": "[PATCH] reiserfs: do not check if unsigned \u003c 0\n\nThis patch fixes bugs in reiserfs where unsigned integers were checked\nwhether they are less then 0.\n\nSigned-off-by: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nSigned-off-by: Hans Reiser \u003creiser@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0e851cf30f1a9bd2e2a7624e9810378d6a2b072",
      "tree": "a8cf33d9b22594fb5c1094bd8b15f2f315b53f2d",
      "parents": [
        "fc5cd582e9c934ddaf6f310179488932cd154794"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] reiserfs: reiserfs hang and performance fix for data\u003djournal mode\n\nIn data\u003djournal mode, reiserfs writepage needs to make sure not to trigger\ntransactions while being run under PF_MEMALLOC.  This patch makes sure to\nredirty the page instead of forcing a transaction start in this case.\n\nAlso, calling filemap_fdata* in order to trigger io on the block device can\ncause lock inversions on the page lock.  Instead, do simple batching from\nflush_commit_list.\n\nSigned-off-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d62b1b87a7d1c3a21dddabed4251763090be3182",
      "tree": "52d563a2af8bde77c9e4638e3636c8cd3bb0c01e",
      "parents": [
        "ec191574b9c3cb7bfb95e4f803b63f7c8dc52690"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "mason@suse.com",
        "time": "Wed Feb 01 03:06:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:26 2006 -0800"
      },
      "message": "[PATCH] resierfs: fix reiserfs_invalidatepage race against data\u003dordered\n\nAfter a transaction has closed but before it has finished commit, there is\na window where data\u003dordered mode requires invalidatepage to pin pages\ninstead of freeing them.  This patch fixes a race between the\ninvalidatepage checks and data\u003dordered writeback, and it also adds a check\nto the reiserfs write_ordered_buffers routines to write any anonymous\nbuffers that were dirtied after its first writeback loop.\n\nThat bug works like this:\n\nproc1: transaction closes and a new one starts\nproc1: write_ordered_buffers starts processing data\u003dordered list\nproc1: buffer A is cleaned and written\nproc2: buffer A is dirtied by another process\nproc2: File is truncated to zero, page A goes through invalidatepage\nproc2: reiserfs_invalidatepage sees dirty buffer A with reiserfs\n       journal head, pins it\nproc1: write_ordered_buffers frees the journal head on buffer A\n\nAt this point, buffer A stays dirty forever\n\nSigned-off-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2499604960fff307fe99ff4d4363c50eaa69235a",
      "tree": "94d329a760e82deb21930c986ca54d479c6c5930",
      "parents": [
        "5d5e815618c4a8b53806845268c951201d14af6e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Dec 14 14:38:05 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Dec 14 18:56:08 2005 -0800"
      },
      "message": "[PATCH] reiserfs: close open transactions on error path\n\nThe following patch fixes a bug where if the journal is aborted, it can\nleave a transaction open.  The result will be a BUG when another code\npath attempts to start a transaction and will get a \"nesting into\ndifferent fs\" error, since current-\u003ejournal_info will be left non-NULL.\n\nOriginal fix against SUSE kernel by Chris Mason \u003cmason@suse.com\u003e\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7729ac5efe156129d172784fedeaddb2167a1914",
      "tree": "f0d28ced93c3482988e3e935e4a67ac4eed4f20a",
      "parents": [
        "1a9c3f78a32ddc4ec50f5da2cf2db5db6f442986"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Mon Nov 28 13:43:53 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:23 2005 -0800"
      },
      "message": "[PATCH] reiserfs: fix 32-bit overflow in map_block_for_writepage()\n\nI now see another overflow in reiserfs that should lead to data corruptions\nwith files that are bigger than 4G under certain circumstances when using\nmmap.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "27496a8c67bef4d789d8e3c8317ca35813a507ae"
}
