)]}'
{
  "log": [
    {
      "commit": "b3f2a92447b8443360ac117a3d7c06689562a70c",
      "tree": "c30e40122be3140aeabdb27bb9960fbb9ed2e730",
      "parents": [
        "ace8577aeb438025ecf642f5eda3aa551d251951"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 10 17:48:52 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 10 17:48:52 2012 -0500"
      },
      "message": "hfsplus: creation of hidden dir on mount can fail\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c47da79851d5f8629c6715e681315dd8e0a3d7d8",
      "tree": "6e2d60f888d4939819bf03c51c57a47a2487e896",
      "parents": [
        "e021d7b7fd364e0ad1b8d65af80995c72f321419"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:26:51 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:10 2012 -0500"
      },
      "message": "hfsplus: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2a79f17e4a641a2f463cb512cb0ec349844a147b",
      "tree": "8801127310d0a3492941bb284e83393844a19685",
      "parents": [
        "8c9379e972e984d11c2b99121847ba9fa7a0c56c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 09 08:06:57 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: mnt_drop_write_file()\n\nnew helper (wrapper around mnt_drop_write()) to be used in pair with\nmnt_want_write_file().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a561be7100cd610bd2e082f3211c1dfb45835817",
      "tree": "a1016a11df967be6f289a4e8ae29597ba39df17e",
      "parents": [
        "f47ec3f28354795f000c14bf18ed967ec81a3ec3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 11:57:51 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:35 2012 -0500"
      },
      "message": "switch a bunch of places to mnt_want_write_file()\n\nit\u0027s both faster (in case when file has been opened for write) and cleaner.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "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": "f1fcd9f0e96d12498afb5543107f560f196cfcf3",
      "tree": "0444192f838dc8a71b0f6d1270d979a337c6ef6f",
      "parents": [
        "f588c960fcaa6fa8bf82930bb819c9aca4eb9347"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Sep 15 10:48:40 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 15 09:03:17 2011 -0700"
      },
      "message": "hfsplus: fix filesystem size checks\n\ngeneric_check_addressable can\u0027t deal with hfsplus\u0027s larger than page\nsize allocation blocks, so simply opencode the checks that we actually\nneed in hfsplus_fill_super.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\nReported-by: Pavel Ivanov \u003cpaivanof@gmail.com\u003e\nTested-by: Pavel Ivanov \u003cpaivanof@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f588c960fcaa6fa8bf82930bb819c9aca4eb9347",
      "tree": "a2ed7bbc8339e203c4ef9e41d2181b2da7bb5241",
      "parents": [
        "cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941"
      ],
      "author": {
        "name": "Seth Forshee",
        "email": "seth.forshee@canonical.com",
        "time": "Thu Sep 15 10:48:27 2011 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 15 09:03:16 2011 -0700"
      },
      "message": "hfsplus: Fix kfree of wrong pointers in hfsplus_fill_super() error path\n\nCommit 6596528e391a (\"hfsplus: ensure bio requests are not smaller than\nthe hardware sectors\") changed the pointers used for volume header\nallocations but failed to free the correct pointers in the error path\npath of hfsplus_fill_super() and hfsplus_read_wrapper.\n\nThe second hunk came from a separate patch by Pavel Ivanov.\n\nReported-by: Pavel Ivanov \u003cpaivanof@gmail.com\u003e\nSigned-off-by: Seth Forshee \u003cseth.forshee@canonical.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "6596528e391ad978a6a120142cba97a1d7324cb6",
      "tree": "9f9ad6f52b9665074545639c54399e2680e6c889",
      "parents": [
        "aac4e4198eff7f9551d586c55342403d49249d95"
      ],
      "author": {
        "name": "Seth Forshee",
        "email": "seth.forshee@canonical.com",
        "time": "Mon Jul 18 08:06:23 2011 -0700"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 22 16:37:44 2011 +0200"
      },
      "message": "hfsplus: ensure bio requests are not smaller than the hardware sectors\n\nCurrently all bio requests are 512 bytes, which may fail for media\nwhose physical sector size is larger than this. Ensure these\nrequests are not smaller than the block device logical block size.\n\nBugLink: http://bugs.launchpad.net/bugs/734883\nSigned-off-by: Seth Forshee \u003cseth.forshee@canonical.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "aac4e4198eff7f9551d586c55342403d49249d95",
      "tree": "9fadb2150044176f1585133d0cf2711c737ddd99",
      "parents": [
        "dd7f3d5458e5c0eded620fe8192abe7e418fc94c"
      ],
      "author": {
        "name": "Naohiro Aota",
        "email": "naota@elisp.net",
        "time": "Tue Jul 12 02:54:13 2011 +0900"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jul 22 16:36:56 2011 +0200"
      },
      "message": "hfsplus: Add additional range check to handle on-disk corruptions\n\n\u0027recoff\u0027 is read from disk and used for an argument to memcpy, so if\nthe value read from disk is larger than the page size, it result to\n\"general protection fault\". This patch add additional range check for\nthe value, so that disk fuzz won\u0027t cause such fault.\n\nSigned-off-by: Naohiro Aota \u003cnaota@elisp.net\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "02c24a82187d5a628c68edfe71ae60dc135cd178",
      "tree": "c8dbaba4d82e2b20ed4335910a564a1f7d90fcf6",
      "parents": [
        "22735068d53c7115e384bc88dea95b17e76a6839"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 16 20:44:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:59 2011 -0400"
      },
      "message": "fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n\nBtrfs needs to be able to control how filemap_write_and_wait_range() is called\nin fsync to make it less of a painful operation, so push down taking i_mutex and\nthe calling of filemap_write_and_wait() down into the -\u003efsync() handlers.  Some\nfile systems can drop taking the i_mutex altogether it seems, like ext3 and\nocfs2.  For correctness sake I just pushed everything down in all cases to make\nsure that we keep the current behavior the same for everybody, and then each\nindividual fs maintainer can make up their mind about what to do from there.\nThanks,\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "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": "dd7f3d5458e5c0eded620fe8192abe7e418fc94c",
      "tree": "80ccd8fe3d0e7dab7d18852ceac6b4093d3cd44a",
      "parents": [
        "5bd9d99d107c56ff7b35a29e930d85f91a07b2fd"
      ],
      "author": {
        "name": "Alexey Khoroshilov",
        "email": "khoroshilov@ispras.ru",
        "time": "Wed Jul 06 02:30:00 2011 +0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jul 07 17:45:46 2011 +0200"
      },
      "message": "hfsplus: Add error propagation for hfsplus_ext_write_extent_locked\n\nImplement error propagation through the callers of\nhfsplus_ext_write_extent_locked().\n\nSigned-off-by: Alexey Khoroshilov \u003ckhoroshilov@ispras.ru\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "5bd9d99d107c56ff7b35a29e930d85f91a07b2fd",
      "tree": "b5db237ebff38c90b95f01d8cca28bc8c2536e7f",
      "parents": [
        "c6d5f5fa658f2569a7baaff5acda261a1316cee9"
      ],
      "author": {
        "name": "Alexey Khoroshilov",
        "email": "khoroshilov@ispras.ru",
        "time": "Wed Jul 06 02:29:59 2011 +0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jul 07 17:45:46 2011 +0200"
      },
      "message": "hfsplus: add error checking for hfs_find_init()\n\nhfs_find_init() may fail with ENOMEM, but there are places, where\nthe returned value is not checked. The consequences can be very\nunpleasant, e.g. kfree uninitialized pointer and\ninappropriate mutex unlocking.\n\nThe patch adds checks for errors in hfs_find_init().\n\nFound by Linux Driver Verification project (linuxtesting.org).\n\nSigned-off-by: Alexey Khoroshilov \u003ckhoroshilov@ispras.ru\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c6d5f5fa658f2569a7baaff5acda261a1316cee9",
      "tree": "1e7e03558a9229e8fc3aaec450ffa8049a08c96b",
      "parents": [
        "4ba2d5fdcfd19de0dedf394ddc48db2f219fa89a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Wed Feb 16 09:34:26 2011 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:40:59 2011 +0200"
      },
      "message": "hfsplus: lift the 2TB size limit\n\nReplace the hardcoded 2TB limit with a dynamic limit based on the block\nsize now that we have fixed the few overflows preventing operation\nwith large volumes.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "4ba2d5fdcfd19de0dedf394ddc48db2f219fa89a",
      "tree": "5f90b4f4c98f54528e65c81a531bdc829c1efd17",
      "parents": [
        "bf1a1b31fa3ea24e3a90821d69a5c3da066f7d6c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Wed Feb 16 09:34:22 2011 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:40:59 2011 +0200"
      },
      "message": "hfsplus: fix overflow in hfsplus_read_wrapper\n\nFor partitions larger than 2TB or at such an offset the hfs wrapper code\nin hfsplus might overflow the range representable in a 32-bit\ndata type. Make sure we use a sector_t for the arithmetics leading to it.\n\nI\u0027m not sure this code can be readed at all as hfs itself never supported\nsuch large volumes.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "bf1a1b31fa3ea24e3a90821d69a5c3da066f7d6c",
      "tree": "32a751e5c58854fbb5aff9797fe73f6122e0b3ed",
      "parents": [
        "2b4f9ca8a575ce6d7ddb59d668e2be250bf86a8f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Wed Feb 16 09:34:17 2011 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:40:58 2011 +0200"
      },
      "message": "hfsplus: fix overflow in hfsplus_get_block\n\nFor filesystems larger than 2TB the final sector number passed to\nmap_bh might overflow the range representable in a 32-bit data type.\nMake sure we use a sector_t for it and the arithmetics calculating it.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "2b4f9ca8a575ce6d7ddb59d668e2be250bf86a8f",
      "tree": "ca461cd657ea671d83ad6ef23f22ad8b99a57ad5",
      "parents": [
        "032016a56a1e9c83646435b32e4416d499e1f1ce"
      ],
      "author": {
        "name": "Anton Salikhmetov",
        "email": "alexo@tuxera.com",
        "time": "Thu Dec 16 18:08:42 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:40:58 2011 +0200"
      },
      "message": "hfsplus: assignments inside `if\u0027 condition clean-up\n\nMake assignments outside `if\u0027 conditions for unicode.c module\nwhere the checkpatch.pl script reported this coding style error.\n\nSigned-off-by: Anton Salikhmetov \u003calexo@tuxera.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "032016a56a1e9c83646435b32e4416d499e1f1ce",
      "tree": "2918b2e31c5cf65b5ea1a8acd087bfe6dd7a94b7",
      "parents": [
        "50176ddefa4a942419cb693dd2d8345bfdcde67c"
      ],
      "author": {
        "name": "Alexey Khoroshilov",
        "email": "khoroshilov@ispras.ru",
        "time": "Fri Jun 24 01:15:02 2011 +0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:38:39 2011 +0200"
      },
      "message": "hfsplus: Fix double iput of the same inode in hfsplus_fill_super()\n\nThere is a misprint in resource deallocation code on error path in\nhfsplus_fill_super(): the sbi-\u003ealloc_file inode is iput twice,\nwhile the root inode in not iput at all.\n\nFound by Linux Driver Verification project (linuxtesting.org).\n\nSigned-off-by: Alexey Khoroshilov \u003ckhoroshilov@ispras.ru\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "50176ddefa4a942419cb693dd2d8345bfdcde67c",
      "tree": "922781d0151cf2e2939056b7dd44932f0b7e559f",
      "parents": [
        "ca56a95eedcc95f8fea7b49c87565cd961d74fe2"
      ],
      "author": {
        "name": "Seth Forshee",
        "email": "seth.forshee@canonical.com",
        "time": "Tue May 31 16:35:50 2011 -0500"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:28:32 2011 +0200"
      },
      "message": "hfsplus: add missing call to bio_put()\n\nhfsplus leaks bio objects by failing to call bio_put() on the bios\nit allocates. Add the missing call to fix the leak.\n\nSigned-off-by: Seth Forshee \u003cseth.forshee@canonical.com\u003e\nCc: \u003cstable@kernel.org\u003e # .38.x, .39.x\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "e3911785b8ae6897b3dae2af4fa296aa5a0f2c56",
      "tree": "f63630445029c6a555a42d3640617f1fa173b960",
      "parents": [
        "4e82d61b6ac4966b3b61c2d97ddf04928f037be1"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Fri May 27 13:42:06 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 28 01:02:52 2011 -0400"
      },
      "message": "hfsplus: remove unnecessary dentry_unhash on rmdir, dir rename\n\nhfsplus does not have problems with references to unlinked directories.\n\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e4eaac06bcccb2a70bca6a2de9871882dce2aa14",
      "tree": "ca6736d96294cd6e65a1c3055718bfd5adc7336e",
      "parents": [
        "79bf7c732b5ff75b96022ed9d29181afd3d2509c"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:07 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:48 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rename_dir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nrename method (except gfs2 and xfs) so that it can be dealt with on a\nper-fs basis.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79bf7c732b5ff75b96022ed9d29181afd3d2509c",
      "tree": "74b8cc690f9a37fff02d0685464e1c695a25ef94",
      "parents": [
        "64252c75a2196a0cf1e0d3777143ecfe0e3ae650"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Tue May 24 13:06:06 2011 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 26 07:26:47 2011 -0400"
      },
      "message": "vfs: push dentry_unhash on rmdir into file systems\n\nOnly a few file systems need this.  Start by pushing it down into each\nfs rmdir method (except gfs2 and xfs) so it can be dealt with on a per-fs\nbasis.\n\nThis does not change behavior for any in-tree file systems.\n\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "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": "2e1496707560ecf98e9b0604622c0990f94861d3",
      "tree": "d1473b70fad31a903fedc87221680678a6c6c5f6",
      "parents": [
        "e795b71799ff0b27365020c9ddaa25d0d83f99c8"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serge@hallyn.com",
        "time": "Wed Mar 23 16:43:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:13 2011 -0700"
      },
      "message": "userns: rename is_owner_or_cap to inode_owner_or_capable\n\nAnd give it a kernel-doc comment.\n\n[akpm@linux-foundation.org: btrfs changed in linux-next]\nSigned-off-by: Serge E. Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\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": "1065348d472f97b4b8eb53b60ec67e99148cbbca",
      "tree": "a8724027733f5991f90951d6491cf5946e853325",
      "parents": [
        "a1dbcef0172555464b5329f8ba47d43c98132dfa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Wed Feb 02 09:40:33 2011 -0700"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Feb 03 16:34:18 2011 -0700"
      },
      "message": "hfsplus: fix up a comparism in hfsplus_file_extend\n\nRevert an incorrect hunk from commit b2837fcf4994e699a4def002e26f274d95b387c1,\n\n\t\"hfsplus: %L-to-%ll, macro correction, and remove unneeded braces\"\n\nrevert a pointless change of comparism operation argument order, which turned\nout to not even be equivalent.\n\nReported-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "a1dbcef0172555464b5329f8ba47d43c98132dfa",
      "tree": "ca0753e098a42cb44b904fcff0e9f9143a57582e",
      "parents": [
        "14dd01f88319a37b06ca909738044e39ec5bfdee"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Wed Feb 02 10:55:06 2011 -0500"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Feb 03 16:34:11 2011 -0700"
      },
      "message": "hfsplus: fix two memory leaks in wrapper.c\n\nSigned-Off-By: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "14dd01f88319a37b06ca909738044e39ec5bfdee",
      "tree": "a628f10480a7f850131500ea6735f40e3c4b0cf1",
      "parents": [
        "c5b8d0bce052949e173b5b32f96bd59bceaa2ab0"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "cebbert@redhat.com",
        "time": "Tue Feb 01 16:41:55 2011 -0500"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Feb 03 16:34:05 2011 -0700"
      },
      "message": "hfsplus: do not leak buffer on error\n\nSigned-Off-By: Chuck Ebbert \u003ccebbert@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "c5b8d0bce052949e173b5b32f96bd59bceaa2ab0",
      "tree": "5b99f48ad948c351ae07650c44009d847460329a",
      "parents": [
        "ebf53826e105f488f4f628703a108e98940d1dc5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Wed Feb 02 09:32:39 2011 -0700"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Feb 03 16:33:51 2011 -0700"
      },
      "message": "hfsplus: fix failed mount handling\n\nCurrently the error handling in hfsplus_fill_super is a mess, and can\nlead to accessing fields in the superblock that haven\u0027t been even set\nup yet.  Fix this by making sure we do not set up sb-\u003es_root until we\nhave the mount fully set up, and before that do proper step by step\nunwinding instead of using hfsplus_put_super as a big hammer.\n\nReported-by: Dan Williams \u003cdcbw@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "eddf790bd41aa153922df223b4692cc606cadb7b",
      "tree": "b0d1e47588c0dd4797eece4078c3ced34e485f13",
      "parents": [
        "518c79d28e22f657fec399ef5bf0d50b13f7e9b0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 18 11:19:23 2010 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 12 20:02:45 2011 -0500"
      },
      "message": "switch hfsplus\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0c21e3aaf6ae85bee804a325aa29c325209180fd",
      "tree": "81c5d698e1c40cc8f473b21c5587a34598754a64",
      "parents": [
        "021db8e2bde53024a163fb4417a185de46fe77aa",
        "b2837fcf4994e699a4def002e26f274d95b387c1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:16:27 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:16:27 2011 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus:\n  hfsplus: %L-to-%ll, macro correction, and remove unneeded braces\n  hfsplus: spaces/indentation clean-up\n  hfsplus: C99 comments clean-up\n  hfsplus: over 80 character lines clean-up\n  hfsplus: fix an artifact in ioctl flag checking\n  hfsplus: flush disk caches in sync and fsync\n  hfsplus: optimize fsync\n  hfsplus: split up inode flags\n  hfsplus: write up fsync for directories\n  hfsplus: simplify fsync\n  hfsplus: avoid useless work in hfsplus_sync_fs\n  hfsplus: make sure sync writes out all metadata\n  hfsplus: use raw bio access for partition tables\n  hfsplus: use raw bio access for the volume headers\n  hfsplus: always use hfsplus_sync_fs to write the volume header\n  hfsplus: silence a few debug printks\n  hfsplus: fix option parsing during remount\n\nFix up conflicts due to VFS changes in fs/hfsplus/{hfsplus_fs.h,unicode.c}\n"
    },
    {
      "commit": "fb045adb99d9b7c562dc7fef834857f78249daa1",
      "tree": "1fd6a4024fffeec568abe100d730589bfdb81c38",
      "parents": [
        "5f57cbcc02cf18f6b22ef4066bb10afeb8f930ff"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:55 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:28 2011 +1100"
      },
      "message": "fs: dcache reduce branches in lookup path\n\nReduce some branches and memory accesses in dcache lookup by adding dentry\nflags to indicate common d_ops are set, rather than having to check them.\nThis saves a pointer memory access (dentry-\u003ed_op) in common path lookup\nsituations, and saves another pointer load and branch in cases where we\nhave d_op but not the particular operation.\n\nPatched with:\n\ngit grep -E \u0027[.\u003e]([[:space:]])*d_op([[:space:]])*\u003d\u0027 | xargs sed -e \u0027s/\\([^\\t ]*\\)-\u003ed_op \u003d \\(.*\\);/d_set_d_op(\\1, \\2);/\u0027 -e \u0027s/\\([^\\t ]*\\)\\.d_op \u003d \\(.*\\);/d_set_d_op(\\\u0026\\1, \\2);/\u0027 -i\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "fa0d7e3de6d6fc5004ad9dea0dd6b286af8f03e9",
      "tree": "203e0f73883e4c26b5597e36042386a1237dab35",
      "parents": [
        "77812a1ef139d84270d27faacc0630c887411013"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:49 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:26 2011 +1100"
      },
      "message": "fs: icache RCU free inodes\n\nRCU free the struct inode. This will allow:\n\n- Subsequent store-free path walking patch. The inode must be consulted for\n  permissions when walking, so an RCU inode reference is a must.\n- sb_inode_list_lock to be moved inside i_lock because sb list walkers who want\n  to take i_lock no longer need to take sb_inode_list_lock to walk the list in\n  the first place. This will simplify and optimize locking.\n- Could remove some nested trylock loops in dcache code\n- Could potentially simplify things a bit in VM land. Do not need to take the\n  page lock to follow page-\u003emapping.\n\nThe downsides of this is the performance cost of using RCU. In a simple\ncreat/unlink microbenchmark, performance drops by about 10% due to inability to\nreuse cache-hot slab objects. As iterations increase and RCU freeing starts\nkicking over, this increases to about 20%.\n\nIn cases where inode lifetimes are longer (ie. many inodes may be allocated\nduring the average life span of a single inode), a lot of this cache reuse is\nnot applicable, so the regression caused by this patch is smaller.\n\nThe cache-hot regression could largely be avoided by using SLAB_DESTROY_BY_RCU,\nhowever this adds some complexity to list walking and store-free path walking,\nso I prefer to implement this at a later date, if it is shown to be a win in\nreal situations. I haven\u0027t found a regression in any non-micro benchmark so I\ndoubt it will be a problem.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b1e6a015a580ad145689ad1d6b4aa0e03e6c868b",
      "tree": "57a10ef164e4d2f798d9b832dbeaf973aca2ab83",
      "parents": [
        "621e155a3591962420eacdd39f6f0aa29ceb221e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:28 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:20 2011 +1100"
      },
      "message": "fs: change d_hash for rcu-walk\n\nChange d_hash so it may be called from lock-free RCU lookups. See similar\npatch for d_compare for details.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "621e155a3591962420eacdd39f6f0aa29ceb221e",
      "tree": "387a9fb396f1bf24514b712c294182e36ba51076",
      "parents": [
        "fb2d5b86aff355a27ebfc132d3c99f4a940cc3fe"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:49:27 2011 +1100"
      },
      "committer": {
        "name": "Nick Piggin",
        "email": "npiggin@kernel.dk",
        "time": "Fri Jan 07 17:50:19 2011 +1100"
      },
      "message": "fs: change d_compare for rcu-walk\n\nChange d_compare so it may be called from lock-free RCU lookups. This\ndoes put significant restrictions on what may be done from the callback,\nhowever there don\u0027t seem to have been any problems with in-tree fses.\nIf some strange use case pops up that _really_ cannot cope with the\nrcu-walk rules, we can just add new rcu-unaware callbacks, which would\ncause name lookup to drop out of rcu-walk mode.\n\nFor in-tree filesystems, this is just a mechanical change.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\n"
    },
    {
      "commit": "b2837fcf4994e699a4def002e26f274d95b387c1",
      "tree": "fcb2f4e91b11746972e9f1abd9e4b70e7573286c",
      "parents": [
        "20b7643d8ee44254fc972d42655bace81e7ab50a"
      ],
      "author": {
        "name": "Anton Salikhmetov",
        "email": "alexo@tuxera.com",
        "time": "Thu Dec 16 18:08:41 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Dec 16 18:08:46 2010 +0100"
      },
      "message": "hfsplus: %L-to-%ll, macro correction, and remove unneeded braces\n\nClean-up based on checkpatch.pl report against unnecessary braces\n(`{\u0027 and `}\u0027), non-standard format option %Lu (%llu recommended)\nas well as one trailing statement in a macro definition which\nshould have been on the next line.\n\nSigned-off-by: Anton Salikhmetov \u003calexo@tuxera.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "20b7643d8ee44254fc972d42655bace81e7ab50a",
      "tree": "a6642fdd127abc31a173d032249cbd319d7ecae9",
      "parents": [
        "21f2296a598c4089e0a9bdf54634269ac913a693"
      ],
      "author": {
        "name": "Anton Salikhmetov",
        "email": "alexo@tuxera.com",
        "time": "Thu Dec 16 18:08:40 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Dec 16 18:08:46 2010 +0100"
      },
      "message": "hfsplus: spaces/indentation clean-up\n\nFix incorrect spaces and indentation reported by checkpatch.pl.\n\nSigned-off-by: Anton Salikhmetov \u003calexo@tuxera.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "21f2296a598c4089e0a9bdf54634269ac913a693",
      "tree": "f55214d1b9b0627f1a9f7951a57183e76458d079",
      "parents": [
        "2753cc281c9a0e8a0a45ee2b8110866a9fe63bdd"
      ],
      "author": {
        "name": "Anton Salikhmetov",
        "email": "alexo@tuxera.com",
        "time": "Thu Dec 16 18:08:39 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Dec 16 18:08:46 2010 +0100"
      },
      "message": "hfsplus: C99 comments clean-up\n\nMatch coding style restriction against C99 comments where\ncheckpatch.pl reported errors about their usage.\n\nSigned-off-by: Anton Salikhmetov \u003calexo@tuxera.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "2753cc281c9a0e8a0a45ee2b8110866a9fe63bdd",
      "tree": "d28794ef990637cfcd734a8b467f119e6d69dac1",
      "parents": [
        "596276c3571e2108f4b336be545ece2eacf3da59"
      ],
      "author": {
        "name": "Anton Salikhmetov",
        "email": "alexo@tuxera.com",
        "time": "Thu Dec 16 18:08:38 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Dec 16 18:08:45 2010 +0100"
      },
      "message": "hfsplus: over 80 character lines clean-up\n\nMatch coding style line length limitation where checkpatch.pl\nreported over-80-character-line warnings.\n\nSigned-off-by: Anton Salikhmetov \u003calexo@tuxera.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "596276c3571e2108f4b336be545ece2eacf3da59",
      "tree": "c00fcd0e01cf12a5edfe8e87ba2f39fcd07c90a5",
      "parents": [
        "34a2d313c51f47cae50ccb89f4196462665f2c48"
      ],
      "author": {
        "name": "Anton Salikhmetov",
        "email": "alexo@tuxera.com",
        "time": "Thu Dec 16 14:44:51 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Dec 16 18:08:43 2010 +0100"
      },
      "message": "hfsplus: fix an artifact in ioctl flag checking\n\nFix a flag checking artifact in hfsplus_ioctl_getflags() routine\nfound while doing clean-up against assignments inside `if\u0027s.\n\nSigned-off-by: Anton Salikhmetov \u003calexo@tuxera.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "34a2d313c51f47cae50ccb89f4196462665f2c48",
      "tree": "c641c7bd24b9e343139a3e1c4d81e51822114cd9",
      "parents": [
        "e34947056076ca5467ee8256d2d9cbc594a79b37"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:38:21 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:38:21 2010 +0100"
      },
      "message": "hfsplus: flush disk caches in sync and fsync\n\nFlush the disk cache in fsync and sync to make sure data actually is\non disk on completion of these system calls.  There is a nobarrier\nmount option to disable this behaviour.  It\u0027s slightly misnamed now\nthat barrier actually are gone, but it matches the name used by all\nmajor filesystems.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "e34947056076ca5467ee8256d2d9cbc594a79b37",
      "tree": "c1b70f51c1e4bc38e0b0389224862afe26c5720f",
      "parents": [
        "b33b7921db14abcd10c30d0ccfc68e364f5ef7fe"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:38:15 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:38:15 2010 +0100"
      },
      "message": "hfsplus: optimize fsync\n\nAvoid doing unessecary work in fsync.  Do nothing unless the inode\nwas marked dirty, and only write the various metadata inodes out if\nthey contain any dirty state from this inode.  This is archived by\nadding three new dirty bits to the hfsplus-specific inode which are\nset in the correct places.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "b33b7921db14abcd10c30d0ccfc68e364f5ef7fe",
      "tree": "208810679b25995ba47f00bb1915a19f644931f5",
      "parents": [
        "eb29d66d4f2dc98a81ae590bbdddc8cfa8964d73"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:38:13 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:38:13 2010 +0100"
      },
      "message": "hfsplus: split up inode flags\n\nSplit the flags field in the hfsplus inode into an extent_state\nflag that is locked by the extent_lock, and a new flags field\nthat uses atomic bitops.  The second will grow more flags in the\nnext patch.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "eb29d66d4f2dc98a81ae590bbdddc8cfa8964d73",
      "tree": "f1e2f9bc9bd92bf978d2bcf54b536a9a6b188667",
      "parents": [
        "281469766bdde2d14bc73e1fec347e6dd7f63319"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:38:10 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:38:10 2010 +0100"
      },
      "message": "hfsplus: write up fsync for directories\n\nfsync is supposed to not just work on regular files, but also on\ndirectories.  Fortunately enough hfsplus_file_fsync works just fine\nfor directories, so we can just wire it up.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "281469766bdde2d14bc73e1fec347e6dd7f63319",
      "tree": "32b00c29067aa60fc7ad3277816bd86900a1c81d",
      "parents": [
        "f02e26f8d90f8cde98314c72c2e890bc281a8346"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:38:06 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:38:06 2010 +0100"
      },
      "message": "hfsplus: simplify fsync\n\nRemove lots of code we don\u0027t need from fsync, we just need to call\n-\u003ewrite_inode on the inode if it\u0027s dirty, for which sync_inode_metadata\nis a lot more efficient than write_inode_now, and we need to write\nout the various metadata inodes, which we now do explicitly instead\nof by calling -\u003esync_fs.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "f02e26f8d90f8cde98314c72c2e890bc281a8346",
      "tree": "c24bdb07fe551b7fb77f4ff4aaa0eadc8e7622b6",
      "parents": [
        "7dc4f001123f9ebe3b010a6c26acd18698ad205f"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:38:02 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:38:02 2010 +0100"
      },
      "message": "hfsplus: avoid useless work in hfsplus_sync_fs\n\nThere is no reason to write out the metadata inodes or volume headers\nduring a non-blocking sync, as we are almost guaranteed to dirty them\nagain during the inode writeouts.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "7dc4f001123f9ebe3b010a6c26acd18698ad205f",
      "tree": "395164b35e03ba04c3ba2f9fd00b285bd52a8810",
      "parents": [
        "358f26d52680cb150907302d4334359de7dd2d59"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:37:57 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:37:57 2010 +0100"
      },
      "message": "hfsplus: make sure sync writes out all metadata\n\nhfsplus stores all metadata except for the volume headers in special\ninodes.  While these are marked hashed and periodically written out\nby the flusher threads, we can\u0027t rely on that for sync.  For the case\nof a data integrity sync the VM has life-lock avoidance code that\navoids writing inodes again that are redirtied during the sync,\nwhich is something that can happen easily for hfsplus.  So make sure\nwe explicitly write out the metadata inodes at the beginning of\nhfsplus_sync_fs.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "358f26d52680cb150907302d4334359de7dd2d59",
      "tree": "9348f861b49d5dd51049e31971cc09ab151388bc",
      "parents": [
        "52399b171dfaea02b6944cd6feba49b624147126"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:37:51 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:37:51 2010 +0100"
      },
      "message": "hfsplus: use raw bio access for partition tables\n\nSwitch the hfsplus partition table reding for cdroms to use our bio\nhelpers.  Again we don\u0027t rely on any caching in the buffer_heads, and\nthis gets rid of the last buffer_head use in hfsplus.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "52399b171dfaea02b6944cd6feba49b624147126",
      "tree": "199eda8c91a51fa1d4e3c792abd97d9c0a50ae26",
      "parents": [
        "3b5ce8ae31e3c66655207907527476bbd3e5063b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:37:47 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:37:47 2010 +0100"
      },
      "message": "hfsplus: use raw bio access for the volume headers\n\nThe hfsplus backup volume header is located two blocks from the end of\nthe device.  In case of device sizes that are not 4k aligned this means\nwe can\u0027t access it using buffer_heads when using the default 4k block\nsize.\n\nSwitch to using raw bios to read/write all buffer headers.  We were not\nrelying on any caching behaviour of the buffer heads anyway.  Additionally\nalways read in the backup volume header during mount to verify that we\ncan actually read it.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "3b5ce8ae31e3c66655207907527476bbd3e5063b",
      "tree": "5e4cb140be6865e3b67b45a705ab405f1cd94f30",
      "parents": [
        "6d1bbfc4c0458c514126ccf7d6ce9232d9dbc872"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:37:43 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:37:43 2010 +0100"
      },
      "message": "hfsplus: always use hfsplus_sync_fs to write the volume header\n\nRemove opencoded writing of the volume header in hfsplus_fill_super\nand hfsplus_put_super and offload it to hfsplus_sync_fs.  In the\nput_super case this means we only write the superblock once instead\nof twice.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "6d1bbfc4c0458c514126ccf7d6ce9232d9dbc872",
      "tree": "abcea1a2ec38c51a43161860109b16d34777f2fb",
      "parents": [
        "6f80dfe55fcbde1e588bc2cfa1273403b710872d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Tue Nov 23 14:37:40 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 23 14:37:40 2010 +0100"
      },
      "message": "hfsplus: silence a few debug printks\n\nTurn a few noisy debug printks that show up during xfstests into\ncomplied out debug print statements.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "6f80dfe55fcbde1e588bc2cfa1273403b710872d",
      "tree": "3851aa0862c6e928de0efa38c39c3ca5905fa5a5",
      "parents": [
        "ff8b16d7e15a8ba2a6086645614a483e048e3fbf"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Sun Nov 07 23:01:17 2010 +0100"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sun Nov 07 23:01:17 2010 +0100"
      },
      "message": "hfsplus: fix option parsing during remount\n\nhfsplus only actually uses the force option during remount, but it uses\nthe full option parser with a fake superblock to do so.  This means remount\nwill fail if any nls option is set (which happens frequently with older\nmount tools), even if it is the same.\n\nFix this by adding a simpler version of the parser that only parses the force\noption for remount.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "152a08366671080f27b32e0c411ad620c5f88b57",
      "tree": "d13d16028f74839c678bce355ba8aac75d939fa8",
      "parents": [
        "c96e41e92b4aaf11e1f9775ecf0d1c8cbff829ed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 25 00:46:55 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 29 04:16:13 2010 -0400"
      },
      "message": "new helper: mount_bdev()\n\n... and switch of the obvious get_sb_bdev() users to -\u003emount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "11cc21f5f5575b9abd14d53a6055ccbf72b67573",
      "tree": "d9a93174b25021748f11e4e797267f381bf4485b",
      "parents": [
        "19ef20143ff86c8012270c619ac7b6c3b389a8fa",
        "85b8fe8cc47b0dc1068475ba95f29ddff10a8efc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 09:32:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 28 09:32:05 2010 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus:\n  hfsplus: free space correcly for files unlinked while open\n  hfsplus: fix double lock typo in ioctl\n"
    },
    {
      "commit": "85b8fe8cc47b0dc1068475ba95f29ddff10a8efc",
      "tree": "ffda33b6caa6f32ac226ff49cfd8a18c186b68c1",
      "parents": [
        "e50fb58b5b3548e578d3b74ff15aeb7d9a496839"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Wed Oct 27 13:45:50 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Oct 27 13:45:50 2010 +0200"
      },
      "message": "hfsplus: free space correcly for files unlinked while open\n\nhfsplus_delete_inode only truncates away all block allocations if\ni_nlink is zero.  Make sure we properly drop the unlink count even\nwhen doing the rename hack for open but unlinked files.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "7de9c6ee3ecffd99e1628e81a5ea5468f7581a1f",
      "tree": "88787e77ba8a253d0a26aeda4bd5e58532d592e0",
      "parents": [
        "646ec4615cd05972581c9c5342ed7a1e77df17bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 11:11:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:26:11 2010 -0400"
      },
      "message": "new helper: ihold()\n\nClones an existing reference to inode; caller must already hold one.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "756acc2d61712a8cafe2aa6ad626c60a185d3645",
      "tree": "72473307f7789b2dafa4b7ca2facc6427f83a283",
      "parents": [
        "1d3382cbf02986e4833849f528d451367ea0b4cb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 23 15:23:40 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 25 21:24:15 2010 -0400"
      },
      "message": "list.h: new helper - hlist_add_fake()\n\nMake node look as if it was on hlist, with hlist_del()\nworking correctly.  Usable without any locking...\n\nConvert a couple of places where we want to do that to\ninode-\u003ei_hash.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e50fb58b5b3548e578d3b74ff15aeb7d9a496839",
      "tree": "d5d94211f7d988420c854cf7d5193d57ecf277dd",
      "parents": [
        "35da7a307c535f9c2929cae277f3df425c9f9b1e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Oct 25 20:39:07 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Oct 25 20:39:07 2010 +0200"
      },
      "message": "hfsplus: fix double lock typo in ioctl\n\nThis was supposed to be a mutex_unlock() instead of a mutex_lock().\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "46bf36ecec79bbe5373ef68f0ed36cbf62e03482",
      "tree": "318bcc4d716bcf933a8ffbc87abc457b2084b40e",
      "parents": [
        "32e39e19ccb0f25c9c1b7ff246e17e795366bbbd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 15 05:45:00 2010 -0700"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 15 05:45:00 2010 -0700"
      },
      "message": "hfsplus: fix getxattr return value\n\nWe need to support -EOPNOTSUPP for attributes that are not supported to\nmatch other filesystems and allow userspace to detect if Posix ACLs\nare supported or not.  setxattr already gets this right.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "32e39e19ccb0f25c9c1b7ff246e17e795366bbbd",
      "tree": "6463d73effe08ab112976c3986d5d9d8067b4579",
      "parents": [
        "90e616905a423126805186cb5754e10a704b30c8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Oct 14 09:54:43 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:54:43 2010 -0400"
      },
      "message": "hfsplus: remove the unused hfsplus_kmap/hfsplus_kunmap helpers\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "90e616905a423126805186cb5754e10a704b30c8",
      "tree": "f3b142b0414462ae9f267689c965d91c784760d4",
      "parents": [
        "722c55d13e7296cc62ed8a38f926a915ff32e4ea"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Oct 14 09:54:39 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:54:39 2010 -0400"
      },
      "message": "hfsplus: create correct initial catalog entries for device files\n\nMake sure the initial insertation of the catalog entry already contains\nthe device number by calling init_special_inode early and setting writing\nout the dev field of the on-disk permission structure.  The latter is\nfacilitated by sharing the almost identical hfsplus_set_perms helpers\nbetween initial catalog entry creating and -\u003ewrite_inode.\n\nUnless we crashed just after mknod this bug was harmless as the inode\nis marked dirty at the end of hfsplus_mknod, and hfsplus_write_inode\nwill update the catalog entry to contain the correct value.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "722c55d13e7296cc62ed8a38f926a915ff32e4ea",
      "tree": "445dc4c1a26f9a4203facb9e5f82508588c1abd8",
      "parents": [
        "f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Oct 14 09:54:33 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:54:33 2010 -0400"
      },
      "message": "hfsplus: remove superflous rootflags field in hfsplus_inode_info\n\nThe rootflags field in hfsplus_inode_info only caches the immutable and\nappend-only flags in the VFS inode, so we can easily get rid of it.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b",
      "tree": "9b2c6b43885899e055e7b64b88e12bf3759e3794",
      "parents": [
        "13571a6977f821fab7d9c3cc5f75da52b7732e40"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Oct 14 09:54:28 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:54:28 2010 -0400"
      },
      "message": "hfsplus: fix link corruption\n\nHFS implements hardlink by using indirect catalog entries that refer to a hidden\ndirectly.  The link target is cached in the dev field in the HFS+ specific\ninode, which is also used for the device number for device files, and inside\nfor passing the nlink value of the indirect node from hfsplus_cat_write_inode\nto a helper function.  Now if we happen to write out the indirect node while\nhfsplus_link is creating the catalog entry we\u0027ll get a link pointing to the\nlinkid of the current nlink value.  This can easily be reproduced by a large\nenough loop of local git-clone operations.\n\nStop abusing the dev field in the HFS+ inode for short term storage by\nrefactoring the way the permission structure in the catalog entry is\nset up, and rename the dev field to linkid to avoid any confusion.\n\nWhile we\u0027re at it also prevent creating hard links to special files, as\nthe HFS+ dev and linkid share the same space in the on-disk structure.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "13571a6977f821fab7d9c3cc5f75da52b7732e40",
      "tree": "32b50f122fc37256d3ff8ad40ec905d0c3e540ea",
      "parents": [
        "9250f925972d03ccc0c0a4dd4e9b794d2ef6d52b"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Thu Oct 14 09:54:23 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:54:23 2010 -0400"
      },
      "message": "hfsplus: validate btree flags\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "9250f925972d03ccc0c0a4dd4e9b794d2ef6d52b",
      "tree": "f8a93ca47166f79cfa90e3dbc3c4f403686e2fbb",
      "parents": [
        "b6b41424f0ec28e9a167fa29b003327860b4b71b"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Oct 14 09:53:48 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:53:48 2010 -0400"
      },
      "message": "hfsplus: handle more on-disk corruptions without oopsing\n\nhfs seems prone to bad things when it encounters on disk corruption.  Many\nvalues are read from disk, and used as lengths to memcpy, as an example.\nThis patch fixes up several of these problematic cases.\n\no sanity check the on-disk maximum key lengths on mount\n  (these are set to a defined value at mkfs time and shouldn\u0027t differ)\no check on-disk node keylens against the maximum key length for each tree\no fix hfs_btree_open so that going out via free_tree: doesn\u0027t wind\n  up in hfs_releasepage, which wants to follow the very pointer\n  we were trying to set up:\n\tHFS_SB(sb)-\u003ecat_tree \u003d hfs_btree_open()\n    .\n  failure gets to hfs_releasepage and tries to follow HFS_SB(sb)-\u003ecat_tree\n\nTested with the fsfuzzer; it survives more than it used to.\n\n[hch: ported of commit cf0594625083111ae522496dc1c256f7476939c2 from hfs]\n[hch: added the fixes from 5581d018ed3493d226e7a4d645d9c8a5af6c36b]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "b6b41424f0ec28e9a167fa29b003327860b4b71b",
      "tree": "9e17a235542259f82a3a1e2c3d2a1906f2ac4749",
      "parents": [
        "ee52716245877b821f5ddbb3ace85b73084fb450"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Oct 14 09:53:42 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:53:42 2010 -0400"
      },
      "message": "hfsplus: hfs_bnode_find() can fail, resulting in hfs_bnode_split() breakage\n\noops and fs corruption; the latter can happen even on valid fs in case of oom.\n\n[hch: port of commit 3d10a15d6919488204bdb264050d156ced20d9aa from hfs]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "ee52716245877b821f5ddbb3ace85b73084fb450",
      "tree": "3d85d8fce3bde7b1601878074cdec622705d1af2",
      "parents": [
        "40de9a7cebc4e0b23cd6863c84c2279f0ccadebb"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Oct 14 09:53:37 2010 -0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Oct 14 09:53:37 2010 -0400"
      },
      "message": "hfsplus: fix oops on mount with corrupted btree extent records\n\nA particular fsfuzzer run caused an hfs file system to crash on mount. This\nis due to a corrupted MDB extent record causing a miscalculation of\nHFSPLUS_I(inode)-\u003efirst_blocks for the extent tree. If the extent records\nare zereod out, then it won\u0027t trigger the first_blocks special case and\ninstead falls through to the extent code, which we\u0027re in the middle\nof initializing.\n\nThis patch catches the 0 size extent records, reports the corruption,\nand fails the mount.\n\n[hch: ported of commit 47f365eb575735c6b2edf5d08e0d16d26a9c23bd from hfs]\n\nReported-by: Ramon de Carvalho Valle \u003crcvalle@linux.vnet.ibm.com\u003e\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "40de9a7cebc4e0b23cd6863c84c2279f0ccadebb",
      "tree": "ed927fe25b269fbe3f5afebd3136d6ac0770fee6",
      "parents": [
        "467c3d9cd541eef284ff8118069b088e015b8d6a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 09:12:08 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 09:12:08 2010 +0200"
      },
      "message": "hfsplus: fix rename over directories\n\nWhen renaming over a directory we need to use hfsplus_rmdir instead of\nhfsplus_unlink to evict the victim.  This makes sure we properly error out\non non-empty directory as required by Posix (BZ #16571), and it also makes\nsure we do the right thing in case i_nlink will every be set correctly for\ndirectories on hfsplus.\n\nReported-by: Vlado Plaga \u003crechner@vlado-do.de\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "467c3d9cd541eef284ff8118069b088e015b8d6a",
      "tree": "3d3126209f6c5a0c4660e8405ac2680d6388f359",
      "parents": [
        "7fcc99f4f2ddb1c39abc05fbb9b32f05b03c7f8f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 01 05:46:52 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:46:52 2010 +0200"
      },
      "message": "hfsplus: convert tree_lock to mutex\n\ntree_lock is used as mutex so make it a mutex.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "7fcc99f4f2ddb1c39abc05fbb9b32f05b03c7f8f",
      "tree": "b07045981f17d855f89f1ef59579e330d8ffce20",
      "parents": [
        "89755dcace09b44b3aa024bf302d9b19b4c24cad"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:46:31 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:46:31 2010 +0200"
      },
      "message": "hfsplus: add missing extent locking in hfsplus_write_inode\n\nMost of the extent handling code already does proper SMP locking, but\nhfsplus_write_inode was calling into hfsplus_ext_write_extent without\ntaking the extents_lock.  Fix this by splitting hfsplus_ext_write_extent\ninto an internal helper that expects the lock, and a public interface\nthat first acquires it.\n\nAlso add a few locking asserts and document the locking rules in\nhfsplus_fs.h.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "89755dcace09b44b3aa024bf302d9b19b4c24cad",
      "tree": "8626891db36b01a3ff3ac80967ce08aef988d1f7",
      "parents": [
        "84adede31267af37141da2b2b04293c5ea8af7ae"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:45:25 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:45:25 2010 +0200"
      },
      "message": "hfsplus: protect readdir against removals from open_dir_list\n\nWe already have i_mutex for readdir and the namespace operations that add\nentries to open_dir_list, the only thing that was missing was the removal\nin hfsplus_dir_release.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "84adede31267af37141da2b2b04293c5ea8af7ae",
      "tree": "41c1a3e28fab11baca330232bacbff3085afde82",
      "parents": [
        "7ac9fb9c2a50963b699b3548e6f00698c1554dc6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:45:20 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:45:20 2010 +0200"
      },
      "message": "hfsplus: use atomic bitops for the superblock flags\n\nThe flags in the HFS+-specific superlock do get modified during runtime,\nuse atomic bitops to make the modifications SMP safe.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "7ac9fb9c2a50963b699b3548e6f00698c1554dc6",
      "tree": "3660bfb2985c65838b5969694e54043ae6639b3a",
      "parents": [
        "58a818f532e83f337689358c102ba2048d1b37f5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:45:08 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:45:08 2010 +0200"
      },
      "message": "hfsplus: add per-superblock lock for volume header updates\n\nLock updates to the mutal fields in the volume header, and document the\nlocing in the hfsplus_sb_info structure.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "58a818f532e83f337689358c102ba2048d1b37f5",
      "tree": "8cd9f322a93423affb9acec6fac3547c7232de5c",
      "parents": [
        "66e5db05bb6670f314d90aba5998e6a033e4d563"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:44:02 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:44:02 2010 +0200"
      },
      "message": "hfsplus: remove the rsrc_inodes list\n\nWe never walk the list - the only reason for it is to make the resource fork\ninodes appear hashed to the writeback code.  Borrow a trick from JFS to do\nthat without needing a list head.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "66e5db05bb6670f314d90aba5998e6a033e4d563",
      "tree": "66bae4889f95b20521d890e4dda944672663aa50",
      "parents": [
        "f17c89bfcc9cccd405098eac3ec1ebfddf03279e"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:43:58 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:43:58 2010 +0200"
      },
      "message": "hfsplus: do not cache and write next_alloc\n\nWe never look at it, nor change the next_alloc field in the superblock.  So\ndon\u0027t bother caching it or writing it out in hfsplus_sync_fs.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "f17c89bfcc9cccd405098eac3ec1ebfddf03279e",
      "tree": "f8c33976eb35e7ee62f59fbe200a92f447d42fbd",
      "parents": [
        "30d3abbec730a5a9c954a6342271f7a7db155b08"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:43:54 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:43:54 2010 +0200"
      },
      "message": "hfsplus: fix error handling in hfsplus_symlink\n\nWe need to free the inode again on a hfsplus_create_cat failure.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "30d3abbec730a5a9c954a6342271f7a7db155b08",
      "tree": "6a4ef55c864bec34ddb6e446b46882ab0539bf3b",
      "parents": [
        "b5080f77ed2de3c8ac67a63044f8a781c75207d9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:43:50 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:43:50 2010 +0200"
      },
      "message": "hfsplus: merge mknod/mkdir/creat\n\nMake hfsplus_mkdir and hfsplus_create call hfsplus_mknod instead of\nduplicating the code.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "b5080f77ed2de3c8ac67a63044f8a781c75207d9",
      "tree": "48897d88cf2ce0025be0ddb2b53d296c874cd379",
      "parents": [
        "fc4fff82104fa096eada73943fe5249500acd5fa"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:43:43 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:43:43 2010 +0200"
      },
      "message": "hfsplus: clean up hfsplus_write_inode\n\nAdd a new hfsplus_system_write_inode for writing the special system inodes\nand streamline the fastpath write_inode code.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "fc4fff82104fa096eada73943fe5249500acd5fa",
      "tree": "5fefc3512525a08d9a77723706cde96d001c167f",
      "parents": [
        "6af502de224c3742936d54eee7e3690c09822934"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:43:41 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:43:41 2010 +0200"
      },
      "message": "hfsplus: clean up hfsplus_iget\n\nAdd a new hfsplus_system_read_inode for reading the special system inodes\nand streamline the fastpath iget code.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "6af502de224c3742936d54eee7e3690c09822934",
      "tree": "9988331693952348503d64764ff81dc3b5d801ab",
      "parents": [
        "dd73a01a30d729e8fa6f829c4582650e258e36f9"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:43:31 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:43:31 2010 +0200"
      },
      "message": "hfsplus: fix HFSPLUS_I calling convention\n\nHFSPLUS_I doesn\u0027t return a pointer to the hfsplus-specific inode\ninformation like all other FOO_I macros, but dereference the pointer in a way\nthat made it look like a direct struct derefence.  This only works as long\nas the HFSPLUS_I macro is used directly and prevents us from keepig a local\nhfsplus_inode_info pointer.  Fix the calling convention and introduce a local\nhip variable in all functions that use it constantly.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "dd73a01a30d729e8fa6f829c4582650e258e36f9",
      "tree": "befe5a0bf762211d1a907ad11c15c4a21d7c4f74",
      "parents": [
        "e753a62156e952fd5a3c64f98454d9aeee3a2546"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@tuxera.com",
        "time": "Fri Oct 01 05:42:59 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:42:59 2010 +0200"
      },
      "message": "hfsplus: fix HFSPLUS_SB calling convention\n\nHFSPLUS_SB doesn\u0027t return a pointer to the hfsplus-specific superblock\ninformation like all other FOO_SB macros, but dereference the pointer in a way\nthat made it look like a direct struct derefence.  This only works as long\nas the HFSPLUS_SB macro is used directly and prevents us from keepig a local\nhfsplus_sb_info pointer.  Fix the calling convention and introduce a local\nsbi variable in all functions that use it constantly.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "e753a62156e952fd5a3c64f98454d9aeee3a2546",
      "tree": "1f474a1212a0690cf30b817822a31094b52e8b5d",
      "parents": [
        "a9fdbf8c6070d49c482e209df7ee93d9ec41ea27"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:53 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:53 2010 +0200"
      },
      "message": "hfsplus: remove BKL from hfsplus_put_super\n\nExcept for -\u003eput_super the BKL is now gone from HFS, which means it\u0027s\nsuperflous there too as -\u003eput_super is serialized by the VFS.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "a9fdbf8c6070d49c482e209df7ee93d9ec41ea27",
      "tree": "d8e2547819bc1e75f3ac29804e6c5b8b23f65c75",
      "parents": [
        "40bf48afe92fcea61e7e164f0b2599fba8b88124"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:50 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:50 2010 +0200"
      },
      "message": "hfsplus: use alloc_mutex in hfsplus_sync_fs\n\nUse alloc_mutex to protect hfsplus_sync_fs against itself and concurrent\nallocations, which allows to get rid of lock_super in hfsplus.\n\nNote that most fields in the superblock still aren\u0027t protected against\nconcurrent allocations, that will follow later.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "40bf48afe92fcea61e7e164f0b2599fba8b88124",
      "tree": "233a48a5e2de1c469804f6745d8fd48e62c78abc",
      "parents": [
        "6333816ade7e04a96ec0a34a8378c455e4f7c4dd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:39 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:39 2010 +0200"
      },
      "message": "hfsplus: introduce alloc_mutex\n\nUse a new per-sb alloc_mutex instead of abusing i_mutex of the alloc_file\nto protect block allocations.  This gets rid of lockdep nesting warnings\nand prepares for extending the scope of alloc_mutex.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "6333816ade7e04a96ec0a34a8378c455e4f7c4dd",
      "tree": "bd6f3fc3d929b44cffea4319f6bda828b6704269",
      "parents": [
        "94744567fef9602c3d8218a1d8f58c04cce354f6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:35 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:35 2010 +0200"
      },
      "message": "hfsplus: protect setflags using i_mutex\n\nUse i_mutex for protecting against concurrent setflags ioctls like in\nother filesystems and get rid of the BKL in hfsplus_ioctl.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "94744567fef9602c3d8218a1d8f58c04cce354f6",
      "tree": "9bbe93c54ea8e1201fa0d59a10e17bba03d09b53",
      "parents": [
        "249e6353001e407edf5c9a74482ecfca90c8ff33"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:31 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:31 2010 +0200"
      },
      "message": "hfsplus: split hfsplus_ioctl\n\nGive each ioctl command a function of it\u0027s own.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "249e6353001e407edf5c9a74482ecfca90c8ff33",
      "tree": "c9f30ff5f686e06cd97fbc891dd90346fc8bc9a7",
      "parents": [
        "0f44fbd297e1cda5d9ecc9f5321a86fe647c7d4a"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:27 2010 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Oct 01 05:41:27 2010 +0200"
      },
      "message": "hfsplus: fix BKL leak in hfsplus_ioctl\n\nCurrenly the HFSPLUS_IOC_EXT2_GETFLAGS case never unlocks the BKL, which\ncan lead to easily reproduced lockups when doing multiple GETFLAGS ioctls.\n\nFix this by only taking the BKL for the HFSPLUS_IOC_EXT2_SETFLAGS case\nas neither HFSPLUS_IOC_EXT2_GETFLAGS not the default error case needs it.\n\nSigned-off-by: Christoph Hellwig \u003chch@tuxera.com\u003e\n"
    },
    {
      "commit": "b57922d97fd6f79b6dbe6db0c4fd30d219fa08c1",
      "tree": "1d39e9cd8e1c1f502fb7e985a08286859c69aa36",
      "parents": [
        "45321ac54316eaeeebde0b5f728a1791e500974c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 07 14:34:48 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:48:37 2010 -0400"
      },
      "message": "convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b5fc510c48f631882ccec3c0f02a25d5b67de09f",
      "tree": "1749954353b972502f05cdfae75b9d5e77cc1f5a",
      "parents": [
        "fa9b227e9019ebaeeb06224ba531a490f91144b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 04 12:24:09 2010 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:43 2010 -0400"
      },
      "message": "get rid of file_fsync()\n\nCopy and simplify in the only two users remaining.\n\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": "d39aae9ec447dda84d9a2850743a78a535a71c90",
      "tree": "e362c3367f093b79482f3034e82b18cd2dc8931a",
      "parents": [
        "155130a4f7848b1aac439cab6bda1a175507c71c"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:59 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:34 2010 -0400"
      },
      "message": "add missing setattr methods\n\nFor the new truncate sequence every filesystem that wants to truncate on-disk\nstate needs a seattr method.  Convert the remaining filesystems that implement\nthe truncate inode operation to have its own setattr method.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "282dc178849882289d30e58b54be6b2799b351aa",
      "tree": "4c6697cdf2d914889e002f32af6bf51bb2750063",
      "parents": [
        "ea0f04e59543bafb3d2cbe37a0d375acb0bb2c34"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:29:55 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:31 2010 -0400"
      },
      "message": "get rid of cont_write_begin_newtrunc\n\nMove the call to vmtruncate to get rid of accessive blocks to the callers\nin preparation of the new truncate sequence and rename the non-truncating\nversion to cont_write_begin.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "eafdc7d190a944c755a9fe68573c193e6e0217e7"
}
