)]}'
{
  "log": [
    {
      "commit": "f6a5690324d5ab9c33bbc0a6b4cc59c7fa34eeec",
      "tree": "8ae239168609f06a9bba78058e7f7e3fa18c20d9",
      "parents": [
        "8515841086d14594b24cdc8febdcc7fd1bbc313e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 12 19:52:19 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 29 23:28:35 2012 -0400"
      },
      "message": "ocfs2: deal with __user misannotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f99c36986ff27a86f06f27212c5f5fa8c7164a3",
      "tree": "a90fd7fe865bb1c5a00b0946754b505bcf070b60",
      "parents": [
        "4a165d25f63a989d0aabe9d8eed5b3a5d5da1862"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 23 16:04:05 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Mar 31 16:03:15 2012 -0400"
      },
      "message": "get rid of pointless includes of ext2_fs.h\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": "b8a0ae579fb8d9b21008ac386be08b9428902455",
      "tree": "cab8d712ee687c26bd2e1ce8ba7b069be4a7e92a",
      "parents": [
        "8298524803339a9a8df053ebdfebc2975ec55be9"
      ],
      "author": {
        "name": "Wengang Wang",
        "email": "wen.gang.wang@oracle.com",
        "time": "Wed Oct 12 15:22:15 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Thu Nov 17 01:46:47 2011 -0800"
      },
      "message": "ocfs2: Commit transactions in error cases -v2\n\nThere are three cases found that in error cases, journal transactions are not\ncommitted nor aborted. We should take care of these case by committing the\ntransactions. Otherwise, there would left a journal handle which will lead to\n, in same process context, the comming ocfs2_start_trans() gets wrong credits.\n\nSigned-off-by: Wengang Wang \u003cwen.gang.wang@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "87f0d5c8db7aad85b9120c26723fdc63cd84a460",
      "tree": "7233a07d4a4ac888db738c1ddd25b868ec13c8f3",
      "parents": [
        "3d75be7c4771c7e4d5b5fa586a599af8473de32c"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Sun May 29 22:57:16 2011 +0300"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Tue May 31 19:03:45 2011 -0700"
      },
      "message": "ocfs2: null deref on allocation error\n\nThe original code had a null derefence in the error handling.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "ece928df16494becd43f999aff9bd530182e7e81",
      "tree": "905042764ea5d8ab6eda63666406e19f607bcf4c",
      "parents": [
        "3d1c1829ebe7e8bb48a997b39b4865abc9197e5e",
        "dda54e76d7dba0532ebdd72e0b4f492a03f83225"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:51:55 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Wed May 25 21:51:55 2011 -0700"
      },
      "message": "Merge branch \u0027move_extents\u0027 of git://oss.oracle.com/git/tye/linux-2.6 into ocfs2-merge-window\n\nConflicts:\n\tfs/ocfs2/ioctl.c\n"
    },
    {
      "commit": "53069d4e76954e2e63c1b3c501051c6fbcf7298c",
      "tree": "6b906eb22fef78636c7d4db7120370d7715f5aef",
      "parents": [
        "ee16cc037e255801892481a2d0b7c1fff2adf1aa"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 14:23:43 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 15:17:12 2011 +0800"
      },
      "message": "Ocfs2/move_extents: move/defrag extents within a certain range.\n\nthe basic logic of moving extents for a file is pretty like punching-hole\nsequence, walk the extents within the range as user specified, calculating\nan appropriate len to defrag/move, then let ocfs2_defrag/move_extent() to\ndo the actual moving.\n\nThis func ends up setting \u0027OCFS2_MOVE_EXT_FL_COMPLETE\u0027 to userpace if operation\ngets done successfully.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "d24a10b9f8ed548981696cd36e2b4f16e6f360b1",
      "tree": "4189d2be951b63a6ff480fdabd031605ce342e92",
      "parents": [
        "3e5db17d4da7f45c454940096d9e429cca12ef9f"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 15:27:17 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 12:18:07 2011 +0800"
      },
      "message": "Ocfs2: Add a new code \u0027OCFS2_INFO_FREEFRAG\u0027 for o2info ioctl.\n\nThis new code is a bit more complicated than former ones, the goal is to\nshow user all statistics required to take a deep insight into filesystem\non how the disk is being fragmentaed.\n\nThe goal is achieved by scaning global bitmap from (cluster)group to group\nto figure out following factors in the filesystem:\n\n        - How many free chunks in a fixed size as user requested.\n        - How many real free chunks in all size.\n        - Min/Max/Avg size(in) clusters of free chunks.\n        - How do free chunks distribute(in size) in terms of a histogram,\n          just like following:\n          ---------------------------------------------------------\n          Extent Size Range :  Free extents  Free Clusters  Percent\n             32K...   64K-  :             1             1    0.00%\n              1M...    2M-  :             9           288    0.03%\n              8M...   16M-  :             2           831    0.09%\n             32M...   64M-  :             1          2047    0.23%\n            128M...  256M-  :             1          8191    0.92%\n            256M...  512M-  :             2         21706    2.43%\n            512M... 1024M-  :            27        858623   96.29%\n          ---------------------------------------------------------\n\nUserspace ioctl() call eventually gets the above info returned by passing\na \u0027struct ocfs2_info_freefrag\u0027 with the chunk_size being specified first.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "3e5db17d4da7f45c454940096d9e429cca12ef9f",
      "tree": "e808424de357b1140817341675b8624292c6c7b2",
      "parents": [
        "8aa1fa360d0e2b31891f180d8b8e0f8d38f9243c"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 15:25:54 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 12:18:02 2011 +0800"
      },
      "message": "Ocfs2: Add a new code \u0027OCFS2_INFO_FREEINODE\u0027 for o2info ioctl.\n\nThe new code is dedicated to calculate free inodes number of all inode_allocs,\nthen return the info to userpace in terms of an array.\n\nSpecially, flag \u0027OCFS2_INFO_FL_NON_COHERENT\u0027, manipulated by \u0027--cluster-coherent\u0027\nfrom userspace, is now going to be involved. setting the flag on means no cluster\ncoherency considered, usually, userspace tools choose none-coherency strategy by\ndefault for the sake of performace.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "8aa1fa360d0e2b31891f180d8b8e0f8d38f9243c",
      "tree": "26d543b8b88a32db75a286895a12c69c2280b081",
      "parents": [
        "4a7df24ddc7097cd789a7527187826552ea0765e"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Tue May 24 15:22:59 2011 +0800"
      },
      "committer": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Wed May 25 12:17:18 2011 +0800"
      },
      "message": "Ocfs2: Using inline funcs to set/clear *FILLED* flags in info handler.\n\nIt just removes some macros for the sake of typechecking gains.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\n"
    },
    {
      "commit": "55e67872b67ebd30d1326067cdba53a622ab497d",
      "tree": "6269c3ab8aebc81ee32997c3e23ca53c68db3482",
      "parents": [
        "e80de36d8dbff216a384e9204e54d59deeadf344"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon May 23 10:36:44 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon May 23 23:37:19 2011 -0700"
      },
      "message": "ocfs2: Add FITRIM ioctl.\n\nAdd the corresponding ioctl function for FITRIM.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "03e4970c10151c5fb25ddd7e9a142d63c6a8d058",
      "tree": "393447b9d0a6ebc64689d6e793e80ad549b97e35",
      "parents": [
        "1788c208aab15f9d9d1d24cff0d0c64b5c73bbee",
        "272b62c1f0f6f742046e45b50b6fec98860208a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 13:03:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 28 13:03:31 2011 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (39 commits)\n  Treat writes as new when holes span across page boundaries\n  fs,ocfs2: Move o2net_get_func_run_time under CONFIG_OCFS2_FS_STATS.\n  ocfs2/dlm: Move kmalloc() outside the spinlock\n  ocfs2: Make the left masklogs compat.\n  ocfs2: Remove masklog ML_AIO.\n  ocfs2: Remove masklog ML_UPTODATE.\n  ocfs2: Remove masklog ML_BH_IO.\n  ocfs2: Remove masklog ML_JOURNAL.\n  ocfs2: Remove masklog ML_EXPORT.\n  ocfs2: Remove masklog ML_DCACHE.\n  ocfs2: Remove masklog ML_NAMEI.\n  ocfs2: Remove mlog(0) from fs/ocfs2/dir.c\n  ocfs2: remove NAMEI from symlink.c\n  ocfs2: Remove masklog ML_QUOTA.\n  ocfs2: Remove mlog(0) from quota_local.c.\n  ocfs2: Remove masklog ML_RESERVATIONS.\n  ocfs2: Remove masklog ML_XATTR.\n  ocfs2: Remove masklog ML_SUPER.\n  ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.c\n  ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.c\n  ...\n\nFix up trivial conflict in fs/ocfs2/super.c\n"
    },
    {
      "commit": "99bdc3880c611c7f2061fbd5372ef81b40217e26",
      "tree": "ef68a53e28e9ee53ce9db3642bab5fa5b3d44866",
      "parents": [
        "ed59992e8d91b70053c53d846a76f7e1ac000454",
        "b4e1b7e88b2c87c358c2a88bec0c76d25accc604"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon Mar 28 09:44:26 2011 -0700"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Mon Mar 28 09:44:26 2011 -0700"
      },
      "message": "Merge branch \u0027mlog_replace_for_39\u0027 of git://repo.or.cz/taoma-kernel into ocfs2-merge-window-fix\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": "da561c9cfa3022f6134ef52686d52931d3d1df3d",
      "tree": "1383f7bc42614d97bcec1198830061930b95a283",
      "parents": [
        "614a9e849ca6ea24843795251cb30af525d5336b"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Feb 21 11:18:23 2011 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Feb 21 11:18:23 2011 +0800"
      },
      "message": "ocfs2: remove INODE from unused files.\n\nAs there are no such debug information in fs/ocfs2/ioctl.c,\nfs/ocfs2/locks.c and fs/ocfs2/sysfile.c, ML_INODE are also\nremoved.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "c1e8d35ef5ffb393b94a192034b5e3541e005d75",
      "tree": "b9a7f089acd3408c2835a3dfd6aa7bb0407587b3",
      "parents": [
        "ef6b689b63b9f5227ccee6f16dd9ee3faf58a464"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Mar 07 16:43:21 2011 +0800"
      },
      "committer": {
        "name": "Tao Ma",
        "email": "boyu.mt@taobao.com",
        "time": "Mon Mar 07 16:43:21 2011 +0800"
      },
      "message": "ocfs2: Remove EXIT from masklog.\n\nmlog_exit is used to record the exit status of a function.\nBut because it is added in so many functions, if we enable it,\nthe system logs get filled up quickly and cause too much I/O.\nSo actually no one can open it for a production system or even\nfor a test.\n\nThis patch just try to remove it or change it. So:\n1. if all the error paths already use mlog_errno, it is just removed.\n   Otherwise, it will be replaced by mlog_errno.\n2. if it is used to print some return value, it is replaced with\n   mlog(0,...).\nmlog_exit_ptr is changed to mlog(0.\nAll those mlog(0,...) will be replaced with trace events later.\n\nSigned-off-by: Tao Ma \u003cboyu.mt@taobao.com\u003e\n"
    },
    {
      "commit": "1936a267f1b5a32d4a846608fdcce82ca0f6ac8e",
      "tree": "df86547732db46dab5d1529ff310eebc117ded3b",
      "parents": [
        "1dd9ffc827b8591aabcf5fea6ea83b69e846deb9"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Sun Jan 30 14:25:59 2011 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "jlbec@evilplan.org",
        "time": "Sun Feb 20 03:56:16 2011 -0800"
      },
      "message": "Ocfs2: Using macro to set/clear *FILLED* flags in info handler.\n\nIt\u0027s a best-effort attempt to simplize duplicated codes here.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjlbec@evilplan.org\u003e\n"
    },
    {
      "commit": "ddee5cdb70e6f87de2fc696b87bd7bd184a51eb8",
      "tree": "27f182376ae5bc696648cc2696f5e5e7442a11fd",
      "parents": [
        "152831be91dfe864e06c3b3ff2bf994e04df4cdf"
      ],
      "author": {
        "name": "Tristan Ye",
        "email": "tristan.ye@oracle.com",
        "time": "Sat May 22 16:26:33 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Fri Sep 10 08:35:41 2010 -0700"
      },
      "message": "Ocfs2: Add new OCFS2_IOC_INFO ioctl for ocfs2 v8.\n\nThe reason why we need this ioctl is to offer the none-privileged\nend-user a possibility to get filesys info gathering.\n\nWe use OCFS2_IOC_INFO to manipulate the new ioctl, userspace passes a\nstructure to kernel containing an array of request pointers and request\ncount, such as,\n\n* From userspace:\n\nstruct ocfs2_info_blocksize oib \u003d {\n        .ib_req \u003d {\n                .ir_magic \u003d OCFS2_INFO_MAGIC,\n                .ir_code \u003d OCFS2_INFO_BLOCKSIZE,\n                ...\n        }\n        ...\n}\n\nstruct ocfs2_info_clustersize oic \u003d {\n        ...\n}\n\nuint64_t reqs[2] \u003d {(unsigned long)\u0026oib,\n                    (unsigned long)\u0026oic};\n\nstruct ocfs2_info info \u003d {\n        .oi_requests \u003d reqs,\n        .oi_count \u003d 2,\n}\n\nret \u003d ioctl(fd, OCFS2_IOC_INFO, \u0026info);\n\n* In kernel:\n\nGet the request pointers from *info*, then handle each request one bye one.\n\nIdea here is to make the spearated request small enough to guarantee\na better backward\u0026forward compatibility since a small piece of request\nwould be less likely to be broken if filesys on raw disk get changed.\n\nCurrently, the following 7 requests are supported per the requirement from\nuserspace tool o2info, and I believe it will grow over time:-)\n\n        OCFS2_INFO_CLUSTERSIZE\n        OCFS2_INFO_BLOCKSIZE\n        OCFS2_INFO_MAXSLOTS\n        OCFS2_INFO_LABEL\n        OCFS2_INFO_UUID\n        OCFS2_INFO_FS_FEATURES\n        OCFS2_INFO_JOURNAL_SIZE\n\nThis ioctl is only specific to OCFS2.\n\nSigned-off-by: Tristan Ye \u003ctristan.ye@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "34e6c59af06cbca07b1490ec0015ea2d303470d3",
      "tree": "1b1199825cf9f658d1abd433ff0d6b0d9f22c1de",
      "parents": [
        "cd34edd8cf80b507bb84b3f0c2988fe05099ffb5"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Wed Jan 27 10:21:52 2010 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Feb 02 18:56:37 2010 -0800"
      },
      "message": "ocfs2: Use compat_ptr in reflink_arguments.\n\nAlthough we use u64 to pass userspace pointers to the kernel\nto avoid compat_ioctl, it doesn\u0027t work in some ppc platform.\nSo wrap them with compat_ptr and add compat_ioctl.\n\nThe detailed discussion about compat_ptr can be found in thread\nhttp://lkml.org/lkml/2009/10/27/423.\n\nWe indeed met with a bug when testing on ppc(-EFAULT is returned\nwhen using old_path). This patch try to fix this.\nI have tested in ppc64(with 32 bit reflink) and x86_64(with i686\nreflink), both works.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\n"
    },
    {
      "commit": "b64ada6b23d4a305fb3ca59b79dd38707fc53b69",
      "tree": "61bc87dc3a2549f54231261aaa544acffcd12281",
      "parents": [
        "be90a49ca22a95f184d9f32d35b5247b44032849",
        "b80474b432913f73cce8db001e9fa3104f9b79ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:29:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 09:29:20 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (85 commits)\n  ocfs2: Use buffer IO if we are appending a file.\n  ocfs2: add spinlock protection when dealing with lockres-\u003epurge.\n  dlmglue.c: add missed mlog lines\n  ocfs2: __ocfs2_abort() should not enable panic for local mounts\n  ocfs2: Add ioctl for reflink.\n  ocfs2: Enable refcount tree support.\n  ocfs2: Implement ocfs2_reflink.\n  ocfs2: Add preserve to reflink.\n  ocfs2: Create reflinked file in orphan dir.\n  ocfs2: Use proper parameter for some inode operation.\n  ocfs2: Make transaction extend more efficient.\n  ocfs2: Don\u0027t merge in 1st refcount ops of reflink.\n  ocfs2: Modify removing xattr process for refcount.\n  ocfs2: Add reflink support for xattr.\n  ocfs2: Create an xattr indexed block if needed.\n  ocfs2: Call refcount tree remove process properly.\n  ocfs2: Attach xattr clusters to refcount tree.\n  ocfs2: Abstract ocfs2 xattr tree extend rec iteration process.\n  ocfs2: Abstract the creation of xattr block.\n  ocfs2: Remove inode from ocfs2_xattr_bucket_get_name_value.\n  ...\n"
    },
    {
      "commit": "bd50873dc725a9fa72592ecc986c58805e823051",
      "tree": "8d2d4d514f73b6425bf0bf5bd1806949b84a2489",
      "parents": [
        "64871b8d62570fabec3b0959d494f8e0b87f5c4b"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Mon Sep 21 11:25:14 2009 +0800"
      },
      "committer": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Sep 22 20:09:51 2009 -0700"
      },
      "message": "ocfs2: Add ioctl for reflink.\n\nThe ioctl will take 3 parameters: old_path, new_path and\npreserve and call vfs_reflink. It is useful when we backport\nreflink features to old kernels.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a81cb88b64a479b78c6dd5666678d50171865db8",
      "tree": "9fe0f67e30d7c70d43785827e57736ac01558c24",
      "parents": [
        "fd8351f83d413b41da956109cf429c15881886e2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Tue Oct 07 14:25:16 2008 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Mon Oct 13 17:02:44 2008 -0700"
      },
      "message": "ocfs2: Don\u0027t check for NULL before brelse()\n\nThis is pointless as brelse() already does the check.\n\nSigned-off-by: Mark Fasheh\n"
    },
    {
      "commit": "42a74f206b914db13ee1f5ae932dcd91a77c8579",
      "tree": "24e3dbe55edaacc750067ab9e01778255a6bff08",
      "parents": [
        "20ddee2c75339cc095f6191c3115f81da8955e96"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Feb 15 14:37:46 2008 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 19 00:29:24 2008 -0400"
      },
      "message": "[PATCH] r/o bind mounts: elevate write count for ioctls()\n\nSome ioctl()s can cause writes to the filesystem.  Take these, and make them\nuse mnt_want/drop_write() instead.\n\n[AV: updated]\n\nAcked-by: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c9ec14884d69a303eef4faae42bd3c4e25b19941",
      "tree": "50ed19faff3fbaaab8dfa872b506501a24826df3",
      "parents": [
        "5dabd69515765156605b09261abf969236a77803"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sun Jan 27 03:17:17 2008 +0100"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:11 2008 -0700"
      },
      "message": "ocfs2: Convert ocfs2 over to unlocked_ioctl\n\nAs far as I can see there is nothing in ocfs2_ioctl that requires the BKL,\nso use unlocked_ioctl\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "6953b4c008628b945bfe0cee97f6e78a98773859",
      "tree": "de00a19f59466d9e83b00112696afa5b02abbd9c",
      "parents": [
        "19fdb624dc8ccb663f6e48b3a3a3fa4e4e567fc1"
      ],
      "author": {
        "name": "Joel Becker",
        "email": "joel.becker@oracle.com",
        "time": "Tue Jan 29 16:59:56 2008 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mfasheh@suse.com",
        "time": "Fri Apr 18 08:56:04 2008 -0700"
      },
      "message": "ocfs2: Move o2hb functionality into the stack glue.\n\nThe last bit of classic stack used directly in ocfs2 code is o2hb.\nSpecifically, the check for heartbeat during mount and the call to\nocfs2_hb_ctl during unmount.\n\nWe create an extra API, ocfs2_cluster_hangup(), to encapsulate the call\nto ocfs2_hb_ctl.  Other stacks will just leave hangup() empty.\n\nThe check for heartbeat is moved into ocfs2_cluster_connect().  It will\nbe matched by a similar check for other stacks.\n\nWith this change, only stackglue.c includes cluster/ headers.\n\nSigned-off-by: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmfasheh@suse.com\u003e\n"
    },
    {
      "commit": "0957f00796157564281ea6ff2cea7ef4f897775a",
      "tree": "b7db05ed93642d3f5769816b57633673f9ec81f9",
      "parents": [
        "7909f2bf835376a20d6dbf853eb459a27566eba2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Dec 18 18:58:18 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:05:19 2008 -0800"
      },
      "message": "ocfs2: Add missing permission checks\n\nCheck that an online resize is being driven by a user with permission to\nchange system resource limits.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "7909f2bf835376a20d6dbf853eb459a27566eba2",
      "tree": "d256570ad048e27741970517929bc3c6d4c2b656",
      "parents": [
        "d659072f736837e56b6433d58e5315ad1d4d5ccf"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Dec 18 15:47:25 2007 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 15:04:24 2008 -0800"
      },
      "message": "[PATCH 2/2] ocfs2: Implement group add for online resize\n\nThis patch adds the ability for a userspace program to request that a\nproperly formatted cluster group be added to the main allocation bitmap for\nan Ocfs2 file system. The request is made via an ioctl, OCFS2_IOC_GROUP_ADD.\nOn a high level, this is similar to ext3, but we use a different ioctl as\nthe structure which has to be passed through is different.\n\nDuring an online resize, tunefs.ocfs2 will format any new cluster groups\nwhich must be added to complete the resize, and call OCFS2_IOC_GROUP_ADD on\neach one. Kernel verifies that the core cluster group information is valid\nand then does the work of linking it into the global allocation bitmap.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "d659072f736837e56b6433d58e5315ad1d4d5ccf",
      "tree": "56882b7b36c6b60a8208f6ed5bee9904adc7b649",
      "parents": [
        "7f68fc28219be3b44ef4132f95c6506ff3e806b5"
      ],
      "author": {
        "name": "Tao Ma",
        "email": "tao.ma@oracle.com",
        "time": "Tue Dec 18 15:47:03 2007 +0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:53:35 2008 -0800"
      },
      "message": "[PATCH 1/2] ocfs2: Add group extend for online resize\n\nThis patch adds the ability for a userspace program to request an extend of\nlast cluster group on an Ocfs2 file system. The request is made via ioctl,\nOCFS2_IOC_GROUP_EXTEND. This is derived from EXT3_IOC_GROUP_EXTEND, but is\nobviously Ocfs2 specific.\n\ntunefs.ocfs2 would call this for an online-resize operation if the last\ncluster group isn\u0027t full.\n\nSigned-off-by: Tao Ma \u003ctao.ma@oracle.com\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "e63aecb651ba73dffc62f9608ee1b7ae2a0ffd4b",
      "tree": "06a4b727230120fe73421dc3149c21aaed5fe91e",
      "parents": [
        "c934a92d05b549dd2f25db72c5fc3cb9dcf1b611"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Thu Oct 18 15:30:42 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Jan 25 14:46:01 2008 -0800"
      },
      "message": "ocfs2: Rename ocfs2_meta_[un]lock\n\nCall this the \"inode_lock\" now, since it covers both data and meta data.\nThis patch makes no functional changes.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "3bd858ab1c451725c07a805dcb315215dc85b86e",
      "tree": "5d49c4300e350d64fd81eb3230b81f754117e0c1",
      "parents": [
        "49c13b51a15f1ba9f6d47e26e4a3886c4f3931e2"
      ],
      "author": {
        "name": "Satyam Sharma",
        "email": "ssatyam@cse.iitk.ac.in",
        "time": "Tue Jul 17 15:00:08 2007 +0530"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 12:00:03 2007 -0700"
      },
      "message": "Introduce is_owner_or_cap() to wrap CAP_FOWNER use with fsuid check\n\nIntroduce is_owner_or_cap() macro in fs.h, and convert over relevant\nusers to it. This is done because we want to avoid bugs in the future\nwhere we check for only effective fsuid of the current task against a\nfile\u0027s owning uid, without simultaneously checking for CAP_FOWNER as\nwell, thus violating its semantics.\n[ XFS uses special macros and structures, and in general looked ...\nuntouchable, so we leave it alone -- but it has been looked over. ]\n\nThe (current-\u003efsuid !\u003d inode-\u003ei_uid) check in generic_permission() and\nexec_permission_lite() is left alone, because those operations are\ncovered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH. Similarly operations\nfalling under the purview of CAP_CHOWN and CAP_LEASE are also left alone.\n\nSigned-off-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nAcked-by: Serge E. Hallyn \u003cserge@hallyn.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b25801038da5823bba1b5440a57ca68afc51b6bd",
      "tree": "3a6f10f8ddb3a7552630d60aabbb790d1b5a7a77",
      "parents": [
        "063c4561f52a74de686fe0ff2f96f4f54c9fecd2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 09 16:53:21 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Tue Jul 10 17:32:09 2007 -0700"
      },
      "message": "ocfs2: Support xfs style space reservation ioctls\n\nWe re-use the RESVSP/UNRESVSP ioctls from xfs which allow the user to\nallocate and deallocate regions to a file without zeroing data or changing\ni_size.\n\nThough renamed, the structure passed in from user is identical to struct\nxfs_flock64. The three fields that are actually used right now are l_whence,\nl_start and l_len.\n\nThis should get ocfs2 immediate compatibility with userspace software using\nthe pre-existing xfs ioctls.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "6e4b0d5692cd27d3c9be893a9f5939a9cafbb09f",
      "tree": "8076c0c9705054596c435075a9e3bae9e8566898",
      "parents": [
        "5c2c9d383ef7f7cfc02d6355798b95988de359b4"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Apr 27 11:08:01 2007 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 02 15:07:58 2007 -0700"
      },
      "message": "[PATCH] Copy i_flags to ocfs2 inode flags on write\n\nPropagate flags such as S_APPEND, S_IMMUTABLE, etc. from i_flags into\nocfs2-specific ip_attr. Hence, when someone sets these flags via a different\ninterface than ioctl, they are stored correctly.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "586d232b191b776a1c6d51c10c662b8b3e238fdf",
      "tree": "8963261875e046d405d6e23b7ee67ff7c03f5c91",
      "parents": [
        "40caf5ea5a7d47f8a33e26b63ca81dea4b5109d2"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Mar 09 15:56:28 2007 -0800"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed May 02 15:07:16 2007 -0700"
      },
      "message": "ocfs2: Implement compat_ioctl()\n\nWe need this to support 32 bit system calls on 64 bit kernels.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "1fabe1481fac9e01bf8bffa60a2307ef379aa5de",
      "tree": "17092c1be837ed95c8f26646003e9e49cfdb9663",
      "parents": [
        "65eff9ccf86d63eb5c3e9071450a36e4e4fa9564"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 18:11:45 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:28 2006 -0800"
      },
      "message": "ocfs2: Remove struct ocfs2_journal_handle in favor of handle_t\n\nThis is mostly a search and replace as ocfs2_journal_handle is now no more\nthan a container for a handle_t pointer.\n\nocfs2_commit_trans() becomes very straight forward, and we remove some out\nof date comments / code.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "65eff9ccf86d63eb5c3e9071450a36e4e4fa9564",
      "tree": "3610e008294ce4e5cfbc9abff3c98153f35ed2d4",
      "parents": [
        "dae85832ffe2879b57b23aea319a0ec17667898d"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 17:26:22 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:23 2006 -0800"
      },
      "message": "ocfs2: remove handle argument to ocfs2_start_trans()\n\nAll callers either pass in NULL directly, or a local variable that is\nalready set to NULL.\n\nThe internals of ocfs2_start_trans() get a nice cleanup as a result.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "02dc1af44e9fa4b8801169891b3a1ba4047537ad",
      "tree": "db84e9ec9731dcfcf91bea226403881d0feccb49",
      "parents": [
        "4bcec1847ac4f75c2ee6d091b495f34d8d822e6a"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 16:48:10 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:08 2006 -0800"
      },
      "message": "ocfs2: pass ocfs2_super * into ocfs2_commit_trans()\n\nThis sets us up to remove handle-\u003ejournal.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "4bcec1847ac4f75c2ee6d091b495f34d8d822e6a",
      "tree": "faac00bd440eff91bd59a3cef88e74220082163a",
      "parents": [
        "a301a27d715276a71827004549bcbb2b64776c11"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Mon Oct 09 16:02:40 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Dec 01 18:28:05 2006 -0800"
      },
      "message": "ocfs2: remove unused handle argument from ocfs2_meta_lock_full()\n\nNow that this is unused and all callers pass NULL, we can safely remove it.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "2d5625181fac18f572cbbd18878d28f5eebf4733",
      "tree": "5125d63c551d6c7be1f9a5c99b16d05a85a3db7c",
      "parents": [
        "ca4d147e62df370c334898464023aa7f9126abe1"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Jul 10 01:32:51 2006 +0200"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:49:33 2006 -0700"
      },
      "message": "[PATCH] fs/ocfs2/ioctl.c should #include \"ioctl.h\"\n\nEvery file should #include the headers containing the prototypes for its\nglobal functions.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    },
    {
      "commit": "ca4d147e62df370c334898464023aa7f9126abe1",
      "tree": "aff39cd19c5b0a95a1fd85caf439c4aa69c5830e",
      "parents": [
        "b4c98f625fffee3a6f633082e9e4be3e952ca2ab"
      ],
      "author": {
        "name": "Herbert Poetzl",
        "email": "herbert@13thfloor.at",
        "time": "Mon Jul 03 17:27:12 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Wed Sep 20 15:48:39 2006 -0700"
      },
      "message": "ocfs2: add ext2 attributes\n\nSupport immutable, and other attributes.\n\nSome renaming and other minor fixes done by myself.\n\nSigned-off-by: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\n"
    }
  ]
}
