)]}'
{
  "log": [
    {
      "commit": "b25b550bb153626df6a48eb8583e923e3dfcf64a",
      "tree": "baca9843877b8b3a254cde92ac2a9072014b5621",
      "parents": [
        "eda054770e5cd0e9ee1568dfcbcf39f9ade4f545",
        "6f902af400b2499c80865c62a06fbbd15cf804fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 11 14:18:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 11 14:18:47 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: The file argument for fsync() is never null\n  Btrfs: handle ERR_PTR from posix_acl_from_xattr()\n  Btrfs: avoid BUG when dropping root and reference in same transaction\n  Btrfs: prohibit a operation of changing acl\u0027s mask when noacl mount option used\n  Btrfs: should add a permission check for setfacl\n  Btrfs: btrfs_lookup_dir_item() can return ERR_PTR\n  Btrfs: btrfs_read_fs_root_no_name() returns ERR_PTRs\n  Btrfs: unwind after btrfs_start_transaction() errors\n  Btrfs: btrfs_iget() returns ERR_PTR\n  Btrfs: handle kzalloc() failure in open_ctree()\n  Btrfs: handle error returns from btrfs_lookup_dir_item()\n  Btrfs: Fix BUG_ON for fs converted from extN\n  Btrfs: Fix null dereference in relocation.c\n  Btrfs: fix remap_file_pages error\n  Btrfs: uninitialized data is check_path_shared()\n  Btrfs: fix fallocate regression\n  Btrfs: fix loop device on top of btrfs\n"
    },
    {
      "commit": "834e74759a473f8101a273e843d1edec2778801d",
      "tree": "f7009149bb1ca362737b2e6b7dc855326d90f079",
      "parents": [
        "15e7000095e6fc9ad07e476a100c900c72c14225"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sat May 29 09:48:35 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:39 2010 -0400"
      },
      "message": "Btrfs: handle ERR_PTR from posix_acl_from_xattr()\n\nposix_acl_from_xattr() returns both ERR_PTRs and null, but it\u0027s OK to\npass null values to set_cached_acl()\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "731e3d1b4348a96d53de6c084774424dedc64a3b",
      "tree": "1f0a95894fa9a8e226ee2d74c64805c373b1b927",
      "parents": [
        "2f26afba46f0ebf155cf9be746496a0304a5b7cf"
      ],
      "author": {
        "name": "Shi Weihua",
        "email": "shiwh@cn.fujitsu.com",
        "time": "Tue May 18 00:51:54 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:38 2010 -0400"
      },
      "message": "Btrfs: prohibit a operation of changing acl\u0027s mask when noacl mount option used\n\nwhen used Posix File System Test Suite(pjd-fstest) to test btrfs,\nsome cases about setfacl failed when noacl mount option used.\nI simplified used commands in pjd-fstest, and the following steps\ncan reproduce it.\n------------------------\n# cd btrfs-part/\n# mkdir aaa\n# setfacl -m m::rw aaa    \u003c- successed, but not expected by pjd-fstest.\n------------------------\nI checked ext3, a warning message occured, like as:\n  setfacl: aaa/: Operation not supported\nCertainly, it\u0027s expected by pjd-fstest.\n\nSo, i compared acl.c of btrfs and ext3. Based on that, a patch created.\nFortunately, it works.\n\nSigned-off-by: Shi Weihua \u003cshiwh@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "2f26afba46f0ebf155cf9be746496a0304a5b7cf",
      "tree": "8127a4a101734efce3c0d0190754f180de05a599",
      "parents": [
        "cf1e99a4e0daa4a5623cd71108509823b9ff2d30"
      ],
      "author": {
        "name": "Shi Weihua",
        "email": "shiwh@cn.fujitsu.com",
        "time": "Tue May 18 00:50:32 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Fri Jun 11 15:57:37 2010 -0400"
      },
      "message": "Btrfs: should add a permission check for setfacl\n\nOn btrfs, do the following\n------------------\n# su user1\n# cd btrfs-part/\n# touch aaa\n# getfacl aaa\n  # file: aaa\n  # owner: user1\n  # group: user1\n  user::rw-\n  group::rw-\n  other::r--\n# su user2\n# cd btrfs-part/\n# setfacl -m u::rwx aaa\n# getfacl aaa\n  # file: aaa\n  # owner: user1\n  # group: user1\n  user::rwx           \u003c- successed to setfacl\n  group::rw-\n  other::r--\n------------------\nbut we should prohibit it that user2 changing user1\u0027s acl.\nIn fact, on ext3 and other fs, a message occurs:\n  setfacl: aaa: Operation not permitted\n\nThis patch fixed it.\nSigned-off-by: Shi Weihua \u003cshiwh@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "f01cbd3f8148f2056567f829e07c157b28b2dd1e",
      "tree": "18d4a35bf25c9e17e11ce7a42015fae8ca5d009e",
      "parents": [
        "bb4354538eb7b92f32cfedbad68c7be266c0b467"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@vyatta.com",
        "time": "Thu May 13 17:53:15 2010 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri May 21 18:31:18 2010 -0400"
      },
      "message": "btrfs: constify xattr_handler\n\nSigned-off-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "67f15b06c1a7e5417b7042b515ca2695de30beda",
      "tree": "ba93b80b40ba2a6d89adc74ed4be54b4626c56a3",
      "parents": [
        "94673e968cbcce07fa78dac4b0ae05d24b5816e1",
        "035fe03a7ad56982b30ab3a522b7b08d58feccd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 10:27:37 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 29 10:27:37 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: check total number of devices when removing missing\n  Btrfs: check return value of open_bdev_exclusive properly\n  Btrfs: do not mark the chunk as readonly if in degraded mode\n  Btrfs: run orphan cleanup on default fs root\n  Btrfs: fix a memory leak in btrfs_init_acl\n  Btrfs: Use correct values when updating inode i_size on fallocate\n  Btrfs: remove tree_search() in extent_map.c\n  Btrfs: Add mount -o compress-force\n"
    },
    {
      "commit": "f858153c367a397235d3e81136741e40e44faf1d",
      "tree": "bb346105a3e4c9d1cfc4211fe7c3c578e6668d94",
      "parents": [
        "d1ea6a61454e7d7ff0873d0ad1ae27d5807da0d3"
      ],
      "author": {
        "name": "Yang Hongyang",
        "email": "yanghy@cn.fujitsu.com",
        "time": "Tue Jan 26 00:48:23 2010 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Jan 28 16:20:39 2010 -0500"
      },
      "message": "Btrfs: fix a memory leak in btrfs_init_acl\n\nIn btrfs_init_acl() cloned acl is not released\n\nSigned-off-by: Yang Hongyang \u003cyanghy@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "30a0f5e1fb510f17c25ff159a9fffbe01ae0f34e",
      "tree": "3392e115d4d5767c8bdaeac8696a2465d65a1e91",
      "parents": [
        "88f5004430babb836cfce886d5d54c82166f8ba4",
        "11dfe35a0108097f2df1f042c485fa7f758c2cdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 21 07:28:05 2010 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  Btrfs: fix possible panic on unmount\n  Btrfs: deal with NULL acl sent to btrfs_set_acl\n  Btrfs: fix regression in orphan cleanup\n  Btrfs: Fix race in btrfs_mark_extent_written\n  Btrfs, fix memory leaks in error paths\n  Btrfs: align offsets for btrfs_ordered_update_i_size\n  btrfs: fix missing last-entry in readdir(3)\n"
    },
    {
      "commit": "a9cc71a60c29a09174bee2fcef8f924c529fd4b7",
      "tree": "d8ae909f351fda769f21ad58ce9fbe211657ecf2",
      "parents": [
        "6c090a11e1c403b727a6a8eff0b97d5fb9e95cb5"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:36:18 2010 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sun Jan 17 20:40:22 2010 -0500"
      },
      "message": "Btrfs: deal with NULL acl sent to btrfs_set_acl\n\nIt is legal for btrfs_set_acl to be sent a NULL acl.  This\nmakes sure we don\u0027t dereference it.  A similar patch was sent by\nJohannes Hirte \u003cjohannes.hirte@fem.tu-ilmenau.de\u003e\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ebfee3d71d5a29102aac1fb2e756b8258f753592",
      "tree": "fa18938a56d452eb02c24f106dd06cc78f475e4b",
      "parents": [
        "b8a7f3cd7e8212e5c572178ff3b5a514861036a5",
        "83d3c9696fed237a3d96fce18299e2fcf112109f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 15:02:22 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 15:02:22 2009 -0500"
      },
      "message": "Merge branch btrfs-master into for-linus\n\nConflicts:\n\tfs/btrfs/acl.c\n"
    },
    {
      "commit": "f34f57a3ab4e73304d78c125682f1a53cd3975f2",
      "tree": "359aff6491d3e92b3901ea78dc164d41209d3eea",
      "parents": [
        "8082510e7124cc50d728f1b875639cb4e22312cc"
      ],
      "author": {
        "name": "Yan, Zheng",
        "email": "zheng.yan@oracle.com",
        "time": "Thu Nov 12 09:35:27 2009 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Dec 17 12:33:34 2009 -0500"
      },
      "message": "Btrfs: Pass transaction handle to security and ACL initialization functions\n\nPass transaction handle down to security and ACL initialization\nfunctions, so we can avoid starting nested transactions\n\nSigned-off-by: Yan Zheng \u003czheng.yan@oracle.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "431547b3c4533b8c7fd150ab36980b9a3147797b",
      "tree": "807ff2790f3c13c7c91ed2afd6d833032899482d",
      "parents": [
        "ef26ca97e83052790940cbc444b01b0d17a813c1"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Nov 13 09:52:56 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 16 12:16:49 2009 -0500"
      },
      "message": "sanitize xattr handler prototypes\n\nAdd a flags argument to struct xattr_handler and pass it to all xattr\nhandler methods.  This allows using the same methods for multiple\nhandlers, e.g. for the ACL methods which perform exactly the same action\nfor the access and default ACLs, just using a different underlying\nattribute.  With a little more groundwork it\u0027ll also allow sharing the\nmethods for the regular user/trusted/secure handlers in extN, ocfs2 and\njffs2 like it\u0027s already done for xfs in this patch.\n\nAlso change the inode argument to the handlers to a dentry to allow\nusing the handlers mechnism for filesystems that require it later,\ne.g. cifs.\n\n[with GFS2 bits updated by Steven Whitehouse \u003cswhiteho@redhat.com\u003e]\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0eda294dfc980c1cbe4f8a0564bf543f86a01ddb",
      "tree": "478b0abfda753196fcb8842d002e5bb600051618",
      "parents": [
        "690587d109ffe19d6743e4cc80c18b0906b7f9ff"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 13 13:50:18 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Oct 13 13:51:39 2009 -0400"
      },
      "message": "Btrfs: fix btrfs acl #ifdef checks\n\nThe btrfs acl code was #ifdefing for a define\nthat didn\u0027t exist.  This correctly matches it\nto the values used by the Kconfig file.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "3baf0bed0a5adab95c7599d2f27124c74692ef28",
      "tree": "fff0aae377d71743ab4d95449bf57419280555b3",
      "parents": [
        "fd2696f399e45347c07f1f7f340e8515cace5657"
      ],
      "author": {
        "name": "Chris Ball",
        "email": "cjb@laptop.org",
        "time": "Tue Sep 29 13:51:05 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Sep 29 13:51:05 2009 -0400"
      },
      "message": "Btrfs: Use CONFIG_BTRFS_POSIX_ACL to enable ACL code\n\nWe\u0027ve already defined CONFIG_BTRFS_POSIX_ACL in Kconfig, but we\u0027re\ncurrently not using it and are testing CONFIG_FS_POSIX_ACL instead.\nCONFIG_FS_POSIX_ACL states \"Never use this symbol for ifdefs\".\n\nSigned-off-by: Chris Ball \u003ccjb@laptop.org\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "073aaa1b142461d91f83da66db1184d7c1b1edea",
      "tree": "2b54d185d78f1229418fca521a93e6b55c57248b",
      "parents": [
        "06b16e9f68edaa1e71aee943d3c030bcf7380af1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 09 12:11:54 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:07 2009 -0400"
      },
      "message": "helpers for acl caching + switch to those\n\nhelpers: get_cached_acl(inode, type), set_cached_acl(inode, type, acl),\nforget_cached_acl(inode, type).\n\nubifs/xattr.c needed includes reordered, the rest is a plain switchover.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5affd88a104af43f0063a12ad1ee4c7a587945dc",
      "tree": "95c727eac8669bd346f937b8be2d58ef716a2fe5",
      "parents": [
        "290c263bf83cd78e53b1aa3b42165f588163f2be"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 08 19:55:32 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 24 08:17:05 2009 -0400"
      },
      "message": "switch btrfs to inode-\u003ei_acl\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7df336ec1266dccbb253bac52c529d3dcc7c22d0",
      "tree": "f52acd46f2db0886669d18494a5e7e0f885b2fb5",
      "parents": [
        "524724ed1f224875a117be593540591ed050c73d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Jun 10 11:36:43 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jun 10 11:36:43 2009 -0400"
      },
      "message": "Fix btrfs when ACLs are configured out\n\n... otherwise generic_permission() will allow *anything* for all\nfiles you don\u0027t own and that have some group permissions.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "7b1a14bbb0e547aaa4d30cc376e6c8c12539ab0f",
      "tree": "80b75191277afe05201fab3e3d1bc50884444626",
      "parents": [
        "21380931eb4da4e29ac663d0221581282cbba208"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 27 10:49:53 2009 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Apr 27 13:18:26 2009 -0400"
      },
      "message": "Btrfs: fix acl caching\n\nLinus noticed the btrfs code to cache acls wasn\u0027t properly caching\na NULL acl when the inode didn\u0027t have any acls.  This meant the common\ncase of no acls resulted in expensive btree searches every time the\nkernel checked permissions (which is quite often).\n\nThis is a modified version of Linus\u0027 original patch:\n\nProperly set initial acl fields to BTRFS_ACL_NOT_CACHED in the inode.\nThis forces an acl lookup when permission checks are done.\n\nFix btrfs_get_acl to avoid lookups and locking when the inode acls fields\nare set to null.\n\nFix btrfs_get_acl to use the right return value from __btrfs_getxattr\nwhen deciding to cache a NULL acl.  It was storing a NULL acl when\n__btrfs_getxattr return -ENOENT, but __btrfs_getxattr was actually returning\n-ENODATA for this case.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "ce3b0f8d5c2203301fc87f3aaaed73e5819e2a48",
      "tree": "ab952affafe18e604f6aaf6b13315b9435588e60",
      "parents": [
        "f1191b50ec11c8e2ca766d6d99eb5bb9d2c084a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Mar 29 19:08:22 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 31 23:00:26 2009 -0400"
      },
      "message": "New helper - current_umask()\n\ncurrent-\u003efs-\u003eumask is what most of fs_struct users are doing.\nPut that into a helper function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d397712bcc6a759a560fd247e6053ecae091f958",
      "tree": "9da8daebb870d8b8b1843507c4621715e23dd31a",
      "parents": [
        "1f3c79a28c8837e8572b98f6d14142d9a6133c56"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 21:25:51 2009 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jan 05 21:25:51 2009 -0500"
      },
      "message": "Btrfs: Fix checkpatch.pl warnings\n\nThere were many, most are fixed now.  struct-funcs.c generates some warnings\nbut these are bogus.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "95819c05732c511338b43c115ffbcee978c02888",
      "tree": "4622f326207c53e42e7c9e8e8d14960e17190a30",
      "parents": [
        "eaa47d8612783807ef9703ebc9bf0d0f0455bf62"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Aug 28 06:21:17 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:07 2008 -0400"
      },
      "message": "Btrfs: optimize btrget/set/removexattr\n\nbtrfs actually stores the whole xattr name, including the prefix ondisk,\nso using the generic resolver that strips off the prefix is not very\nhelpful.  Instead do the real ondisk xattrs manually and only use the\ngeneric resolver for synthetic xattrs like ACLs.\n\n(Sorry Josef for guiding you towards the wrong direction here intially)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "eaa47d8612783807ef9703ebc9bf0d0f0455bf62",
      "tree": "aae589fac6573e2974935b357bfa687dbab2e718",
      "parents": [
        "eab922ec8907b8c506e799785e7e2d16eabe50e4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Aug 28 06:21:16 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:07 2008 -0400"
      },
      "message": "btrfs: optmize listxattr\n\nThe -\u003elist handler is really not useful at all, because we always call\nbtrfs_xattr_generic_list anyway.  After this is done\nfind_btrfs_xattr_handler becomes unused, and it becomes obvious that the\ntemporary name buffer allocation isn\u0027t needed but we can directly copy\ninto the supplied buffer.\n\nTested with various getfattr -d calls on varying xattr lists.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "eab922ec8907b8c506e799785e7e2d16eabe50e4",
      "tree": "d983401313631d24240524d40c9ef1d19ed4e5ac",
      "parents": [
        "639cb58675ce9b507eed9c3d6b3335488079b21a"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Aug 28 06:21:15 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:07 2008 -0400"
      },
      "message": "Btrfs: compile when posix acl\u0027s are disabled\n\nThis patch makes btrfs so it will compile properly when acls are disabled.  I\ntested this and it worked with CONFIG_FS_POSIX_ACL off and on.\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "33268eaf0b3db5e2bd12c0ada81a8e8f87a46d68",
      "tree": "93b6d00a73402b59c2ea7ae7434138feecefc085",
      "parents": [
        "6099afe88fe64b2f47c43a8a71c13be3a416bbf7"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Thu Jul 24 12:16:36 2008 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:04:05 2008 -0400"
      },
      "message": "Btrfs: Add ACL support\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "c1e32da616a17813f11b701a7a87775d35c12e3a",
      "tree": "3808b0e9572f2a25ab116f230a7832a8fe2365db",
      "parents": [
        "ed0dab6b86cee64e9072107f65fa40629f162b38"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Jan 22 12:46:56 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Include sched.h in the acl code for current (fixes compile on 2.6.23)\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "fb4bc1e0565a842d704846005ac0ec739e608ede",
      "tree": "d4670954777c4e74ae2385521eeda3965acf4d5b",
      "parents": [
        "caaca38b8fdcf63a17647fddae2195b189e19e37"
      ],
      "author": {
        "name": "Yan",
        "email": "yanzheng@21cn.com",
        "time": "Thu Jan 17 11:59:51 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Fix compile on 2.6.22 kernel\n\nThis patch fixes compile error on kernel-2.6.22\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "744f52f997b21de2a01931f79cf6c198bf688120",
      "tree": "903f0d91560b139bc7167f424e34664ddb7c0b72",
      "parents": [
        "b3a0d8d28c607cb2531a68742afc2b967b1f6083"
      ],
      "author": {
        "name": "Yan",
        "email": "yanzheng@21cn.com",
        "time": "Mon Jan 14 13:26:08 2008 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:59 2008 -0400"
      },
      "message": "Btrfs: Implement ACLs setting and getting\n\nACLs are stored but not used for permission checks (yet)\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1caf9342fc71d020e788a59598a44d4ea0136b36",
      "tree": "e54d756bd124515b262f56b22cd9c169b8b00027",
      "parents": [
        "5cf664263b05beb080bf95037e4c3bd50c80b096"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Mon Nov 19 10:18:17 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:57 2008 -0400"
      },
      "message": "Btrfs: Make ACLs return EOPNOTSUPP for now\n\nThere was a slight problem with ACL\u0027s returning EINVAL when you tried to set an\nACL.  This isn\u0027t correct, we should be returning EOPNOTSUPP, so I did a very\nugly thing and just commented everybody out and made them return EOPNOTSUPP.\nThis is only temporary, I\u0027m going back to implement ACL\u0027s, but Chris wants to\npush out a release so this will suffice for now.\n\nAlso Yan suggested setting reada to -1 in the delete case to enable backwards\nreadahead, and in the listxattr case I moved path-\u003ereada \u003d 2; to after the if\n(!path) check so we can avoid a possible null dereference.  Thank you,\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "5103e947b9b7ac18ddb21a04ee3486e94c6504d7",
      "tree": "5d7c0c9ce1d57b988165f87c7bae304cb339589c",
      "parents": [
        "0591fb56fb732c7bf500d1446d0bf927046d7002"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "jbacik@redhat.com",
        "time": "Fri Nov 16 11:45:54 2007 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Sep 25 11:03:57 2008 -0400"
      },
      "message": "xattr support for btrfs\n\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    }
  ]
}
