)]}'
{
  "log": [
    {
      "commit": "66c6af2e8ba55d4d6691c136b42f2423ab9598ec",
      "tree": "6c63cbeadad88136e2b4315720f4a14c021743d3",
      "parents": [
        "fe36adf47eb1f7f4972559efa30ce3d2d3f977f2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 16 14:15:00 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 17 00:36:36 2009 -0400"
      },
      "message": "fuse doesn\u0027t need BKL in -\u003eumount_begin()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c34752bc8b3196aee3115d1aa41972604ab0aea8",
      "tree": "db93341ab4043e1c21d83f0b7dfdbc1798b88845",
      "parents": [
        "65d52cc9d47975f4fbd0a50e62f4a49be2c0514a",
        "151060ac13144208bd7601d17e4c92c59b98072f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:31:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 12 09:31:20 2009 -0700"
      },
      "message": "Merge branch \u0027cuse\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027cuse\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  CUSE: implement CUSE - Character device in Userspace\n  fuse: export symbols to be used by CUSE\n  fuse: update fuse_conn_init() and separate out fuse_conn_kill()\n  fuse: don\u0027t use inode in fuse_file_poll\n  fuse: don\u0027t use inode in fuse_do_ioctl() helper\n  fuse: don\u0027t use inode in fuse_sync_release()\n  fuse: create fuse_do_open() helper for CUSE\n  fuse: clean up args in fuse_finish_open() and fuse_release_fill()\n  fuse: don\u0027t use inode in helpers called by fuse_direct_io()\n  fuse: add members to struct fuse_file\n  fuse: prepare fuse_direct_io() for CUSE\n  fuse: clean up fuse_write_fill()\n  fuse: use struct path in release structure\n  fuse: misc cleanups\n"
    },
    {
      "commit": "151060ac13144208bd7601d17e4c92c59b98072f",
      "tree": "c93ba28042bcb7917c9098b449756cbe84fb0a51",
      "parents": [
        "08cbf542bf24fb0481a54526b177347ae4046f5e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 14 10:54:54 2009 +0900"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 09 11:24:11 2009 +0200"
      },
      "message": "CUSE: implement CUSE - Character device in Userspace\n\nCUSE enables implementing character devices in userspace.  With recent\nadditions of ioctl and poll support, FUSE already has most of what\u0027s\nnecessary to implement character devices.  All CUSE has to do is\nbonding all those components - FUSE, chardev and the driver model -\nnicely.\n\nWhen client opens /dev/cuse, kernel starts conversation with\nCUSE_INIT.  The client tells CUSE which device it wants to create.  As\nthe previous patch made fuse_file usable without associated\nfuse_inode, CUSE doesn\u0027t create super block or inodes.  It attaches\nfuse_file to cdev file-\u003eprivate_data during open and set ff-\u003efi to\nNULL.  The rest of the operation is almost identical to FUSE direct IO\ncase.\n\nEach CUSE device has a corresponding directory /sys/class/cuse/DEVNAME\n(which is symlink to /sys/devices/virtual/class/DEVNAME if\nSYSFS_DEPRECATED is turned off) which hosts \"waiting\" and \"abort\"\namong other things.  Those two files have the same meaning as the FUSE\ncontrol files.\n\nThe only notable lacking feature compared to in-kernel implementation\nis mmap support.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "a6aeeebf5179ea6346249d727bdb9124ce9e2d4c",
      "tree": "7a6d53c980f2682ef0ddaa434cba468ba65aa15a",
      "parents": [
        "f6cab83d77ed7f1fd9e354a166fa94fd57c5cee4",
        "fd9db7297749c05fcf5721ce5393a5a8b8772f2a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 13 16:32:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 13 16:32:57 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: destroy bdi on error\n"
    },
    {
      "commit": "67e55205ec55cc7899f1d783f217961596798419",
      "tree": "45dd7351f9721a46ecb448f0571fb10db3259147",
      "parents": [
        "091bf7624d1c90cec9e578a18529f615213ff847"
      ],
      "author": {
        "name": "Alessio Igor Bogani",
        "email": "abogani@texware.it",
        "time": "Fri Apr 24 09:06:53 2009 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 09 10:49:38 2009 -0400"
      },
      "message": "vfs: umount_begin BKL pushdown\n\nPush BKL down into -\u003eumount_begin()\n\nSigned-off-by: Alessio Igor Bogani \u003cabogani@texware.it\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "08cbf542bf24fb0481a54526b177347ae4046f5e",
      "tree": "75ac556b4fb464172f9e1f4deca7e2d3b7649802",
      "parents": [
        "a325f9b92273d6c64ec56167905b951b9827ec33"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 14 10:54:53 2009 +0900"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:42 2009 +0200"
      },
      "message": "fuse: export symbols to be used by CUSE\n\nExport the following symbols for CUSE.\n\nfuse_conn_put()\nfuse_conn_get()\nfuse_conn_kill()\nfuse_send_init()\nfuse_do_open()\nfuse_sync_release()\nfuse_direct_io()\nfuse_do_ioctl()\nfuse_file_poll()\nfuse_request_alloc()\nfuse_get_req()\nfuse_put_request()\nfuse_request_send()\nfuse_abort_conn()\nfuse_dev_release()\nfuse_dev_operations\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "a325f9b92273d6c64ec56167905b951b9827ec33",
      "tree": "05c80627acf609f12c8117c254c3e1feb2ec5689",
      "parents": [
        "797759aaf31351a1ab1b9130c4f180ce496f46c5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 14 10:54:52 2009 +0900"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:41 2009 +0200"
      },
      "message": "fuse: update fuse_conn_init() and separate out fuse_conn_kill()\n\nUpdate fuse_conn_init() such that it doesn\u0027t take @sb and move bdi\nregistration into a separate function.  Also separate out\nfuse_conn_kill() from fuse_put_super().\n\nThese will be used to implement cuse.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "797759aaf31351a1ab1b9130c4f180ce496f46c5",
      "tree": "2bea6512575202090db75c5e8ab8d27e569df4a2",
      "parents": [
        "d36f248710c05714f37d921258b630bd1456b99f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:41 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:41 2009 +0200"
      },
      "message": "fuse: don\u0027t use inode in fuse_file_poll\n\nUse ff-\u003efc and ff-\u003enodeid instead of file-\u003ef_dentry-\u003ed_inode in the\nfuse_file_poll() implementation.\n\nThis prepares this function for use by CUSE, where the inode is not\nowned by a fuse filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "d36f248710c05714f37d921258b630bd1456b99f",
      "tree": "025c84f7db1e139a08564611a1534f5bc2b8fd7a",
      "parents": [
        "8b0797a4984de4406de25808e1a424344de543e4"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:39 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:39 2009 +0200"
      },
      "message": "fuse: don\u0027t use inode in fuse_do_ioctl() helper\n\nCreate a helper for sending an IOCTL request that doesn\u0027t use a struct\ninode.\n\nThis prepares this function for use by CUSE, where the inode is not\nowned by a fuse filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "8b0797a4984de4406de25808e1a424344de543e4",
      "tree": "9d473ecf26171ccfdcee4e0a617e9bc994813397",
      "parents": [
        "91fe96b403f8a0a4a8a045a39b1bd549b0da7941"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:39 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:39 2009 +0200"
      },
      "message": "fuse: don\u0027t use inode in fuse_sync_release()\n\nMake fuse_sync_release() a generic helper function that doesn\u0027t need a\nstruct inode pointer.  This makes it suitable for use by CUSE.\n\nChange return value of fuse_release_common() from int to void.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "91fe96b403f8a0a4a8a045a39b1bd549b0da7941",
      "tree": "38188f1dff969c050b26093d806ae0092f8c30b9",
      "parents": [
        "c7b7143c6342b8751d47b03a025ac5c0ac1ae809"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:37 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:37 2009 +0200"
      },
      "message": "fuse: create fuse_do_open() helper for CUSE\n\nCreate a helper for sending an OPEN request that doesn\u0027t need a struct\ninode pointer.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c7b7143c6342b8751d47b03a025ac5c0ac1ae809",
      "tree": "9bb528e90ba682b96f5a34ff5ee777ab3c260aef",
      "parents": [
        "2106cb18930312af9325d3418e138569c5b903cc"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:37 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:37 2009 +0200"
      },
      "message": "fuse: clean up args in fuse_finish_open() and fuse_release_fill()\n\nMove setting ff-\u003efh, ff-\u003enodeid and file-\u003eprivate_data outside\nfuse_finish_open().  Add -\u003eopen_flags member to struct fuse_file.\n\nThis simplifies the argument passing to fuse_finish_open() and\nfuse_release_fill(), and paves the way for creating an open helper\nthat doesn\u0027t need an inode pointer.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "2106cb18930312af9325d3418e138569c5b903cc",
      "tree": "445ab0ce12d2fbb87513d1b4ef076cf844428ce3",
      "parents": [
        "da5e4714578ff323f7a61af490fc3539e68f188b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:37 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:37 2009 +0200"
      },
      "message": "fuse: don\u0027t use inode in helpers called by fuse_direct_io()\n\nUse ff-\u003efc and ff-\u003enodeid instead of passing down the inode.\n\nThis prepares this function for use by CUSE, where the inode is not\nowned by a fuse filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "da5e4714578ff323f7a61af490fc3539e68f188b",
      "tree": "d884149d9945f000ed526463058ea0228637c671",
      "parents": [
        "d09cb9d7f6e4cb1dd0cf12ee0d352440291c74cf"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "message": "fuse: add members to struct fuse_file\n\nAdd new members -\u003efc and -\u003enodeid to struct fuse_file.  This will aid\nin converting functions for use by CUSE, where the inode is not owned\nby a fuse filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "d09cb9d7f6e4cb1dd0cf12ee0d352440291c74cf",
      "tree": "34955b4d20f9a9cc3b238a9d8117f9a15074afda",
      "parents": [
        "2d698b070382442f817813b9dd0103034e5bca81"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "message": "fuse: prepare fuse_direct_io() for CUSE\n\nMove code operating on the inode out from fuse_direct_io().\n\nThis prepares this function for use by CUSE, where the inode is not\nowned by a fuse filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "2d698b070382442f817813b9dd0103034e5bca81",
      "tree": "c3ae1688eacce081bcd815f8991cba5d03d2292e",
      "parents": [
        "b0be46ebf72ca7478c1c4bd0153c42f90e768a03"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "message": "fuse: clean up fuse_write_fill()\n\nMove out code from fuse_write_fill() which is not common to all\ncallers.  Remove two function arguments which become unnecessary.\n\nAlso remove unnecessary memset(), the request is already initialized\nto zero.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b0be46ebf72ca7478c1c4bd0153c42f90e768a03",
      "tree": "1c86e5bf8a4d98b1ae00cedc70f51c78702ede3c",
      "parents": [
        "6b2db28a7a2da1064df9e179d9b6d07b0bfe156a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:36 2009 +0200"
      },
      "message": "fuse: use struct path in release structure\n\nUse struct path instead of separate dentry and vfsmount in\nreq-\u003emisc.release.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "fd9db7297749c05fcf5721ce5393a5a8b8772f2a",
      "tree": "aeb596b24d68a9a12b29f7ac4fa4ba5222942158",
      "parents": [
        "091069740304c979f957ceacec39c461d0192158"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:35 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:35 2009 +0200"
      },
      "message": "fuse: destroy bdi on error\n\nDestroy bdi on error in fuse_fill_super().\n\nThis was an omission from commit 26c3679101dbccc054dcf370143941844ba70531\n\"fuse: destroy bdi on umount\", which moved the bdi_destroy() call from\nfuse_conn_put() to fuse_put_super().\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "6b2db28a7a2da1064df9e179d9b6d07b0bfe156a",
      "tree": "9e24b6876a7b91de466e8a87523a41de694d2148",
      "parents": [
        "fd9db7297749c05fcf5721ce5393a5a8b8772f2a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 14 10:54:49 2009 +0900"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Apr 28 16:56:35 2009 +0200"
      },
      "message": "fuse: misc cleanups\n\n* fuse_file_alloc() was structured in weird way.  The success path was\n  split between else block and code following the block.  Restructure\n  the code such that it\u0027s easier to read and modify.\n\n* Unindent success path of fuse_release_common() to ease future\n  changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "3121bfe7631126d1b13064855ac2cfa164381bb0",
      "tree": "18cb4b7eba9783682df5d8c2799f87cbe55ca610",
      "parents": [
        "ce60a2f15764f296b0467960759351702c7d2986"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 09 17:37:53 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 09 17:37:53 2009 +0200"
      },
      "message": "fuse: fix \"direct_io\" private mmap\n\nMAP_PRIVATE mmap could return stale data from the cache for\n\"direct_io\" files.  Fix this by flushing the cache on mmap. \n\nFound with a slightly modified fsx-linux.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "ce60a2f15764f296b0467960759351702c7d2986",
      "tree": "ba5a61daee91b252face877b02b707be3636e488",
      "parents": [
        "f4efdd65b754ebbf41484d3a2255c59282720650"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 09 17:37:52 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 09 17:37:52 2009 +0200"
      },
      "message": "fuse: fix argument type in fuse_get_user_pages()\n\nFix the following warning:\n\nfs/fuse/file.c: In function \u0027fuse_direct_io\u0027:\nfs/fuse/file.c:1002: warning: passing argument 3 of \u0027fuse_get_user_pages\u0027 from incompatible pointer type\n\nThis was introduced by commit f4975c67 \"fuse: allow kernel to access\n\"direct_io\" files\".\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "fc280c9692031ee41545d6bea00bbb7c7dec97a9",
      "tree": "bff08b2710b2086698736d66cef403c6e2975ca9",
      "parents": [
        "f4975c67dd9ad8eb47a4c77af0521a2b16ee0197"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 02 14:25:35 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 02 14:25:35 2009 +0200"
      },
      "message": "fuse: allow private mappings of \"direct_io\" files\n\nAllow MAP_PRIVATE mmaps of \"direct_io\" files.  This is necessary for\nexecute support.\n\nMAP_SHARED mappings require some sort of coherency between the\nunderlying file and the mapping.  With \"direct_io\" it is difficult to\nprovide this, so for the moment just disallow shared (read-write and\nread-only) mappings altogether.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "f4975c67dd9ad8eb47a4c77af0521a2b16ee0197",
      "tree": "4d4642e04e40f4835df9a18192da53b98b206bf8",
      "parents": [
        "833bb3046b6cb320e775ea2160ddca87d53260d5"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 02 14:25:34 2009 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 02 14:25:34 2009 +0200"
      },
      "message": "fuse: allow kernel to access \"direct_io\" files\n\nAllow the kernel read and write on \"direct_io\" files.  This is\nnecessary for nfs export and execute support.\n\nThe implementation is simple: if an access from the kernel is\ndetected, don\u0027t perform get_user_pages(), just use the kernel address\nprovided by the requester to copy from/to the userspace filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5291658d87ac1ae60418e79e7b6bad7d5f595e0c",
      "tree": "e91cba2f5e73a5a93fcff6e866ebae737fee1e5c",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Fri Mar 27 13:36:10 2009 +0300"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 30 17:26:24 2009 +0200"
      },
      "message": "fuse: fix fuse_file_lseek returning with lock held\n\nThis bug was found with smatch (http://repo.or.cz/w/smatch.git/).  If\nwe return directly the inode-\u003ei_mutex lock doesn\u0027t get released.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "4269590a72934bb901b33b686e20605bf66653c4",
      "tree": "6e70362f5f29c0a0da151291ade3d3db9123fd4b",
      "parents": [
        "d72f71eb0edd629c95715aa7305b0259d3581e34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 05:59:13 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:01 2009 -0400"
      },
      "message": "constify dentry_operations: FUSE\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a1c70a756f8d756668acdbfd61dfc14de12fbaea",
      "tree": "5e52ff5fae536b8096f73b792112bcfd812d3edd",
      "parents": [
        "3632dee2f8b8a9720329f29eeaa4ec4669a3aff8",
        "0fcb44088970b18eaf2df4579d64840be6e3bf39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:08:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 26 10:08:50 2009 -0800"
      },
      "message": "Merge branch \u0027Kconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/misc\n\n* \u0027Kconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/misc: (36 commits)\n  fs/Kconfig: move 9p out\n  fs/Kconfig: move afs out\n  fs/Kconfig: move coda out\n  fs/Kconfig: move the rest of ncpfs out\n  fs/Kconfig: move smbfs out\n  fs/Kconfig: move sunrpc out\n  fs/Kconfig: move nfsd out\n  fs/Kconfig: move nfs out\n  fs/Kconfig: move ufs out\n  fs/Kconfig: move sysv out\n  fs/Kconfig: move romfs out\n  fs/Kconfig: move qnx4 out\n  fs/Kconfig: move hpfs out\n  fs/Kconfig: move omfs out\n  fs/Kconfig: move minix out\n  fs/Kconfig: move vxfs out\n  fs/Kconfig: move squashfs out\n  fs/Kconfig: move cramfs out\n  fs/Kconfig: move efs out\n  fs/Kconfig: move bfs out\n  ...\n"
    },
    {
      "commit": "f6d47a1761896dcd89e3184399a8962dff17267d",
      "tree": "60a7f1eee203f07db6f2a9d890b8ec78f190ea57",
      "parents": [
        "26c3679101dbccc054dcf370143941844ba70531"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "message": "fuse: fix poll notify\n\nMove fuse_copy_finish() to before calling fuse_notify_poll_wakeup().\nThis is not a big issue because fuse_notify_poll_wakeup() should be\natomic, but it\u0027s cleaner this way, and later uses of notification will\nneed to be able to finish the copying before performing some actions.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "26c3679101dbccc054dcf370143941844ba70531",
      "tree": "983066c18cacdd2d96534040d076dd66310acfe5",
      "parents": [
        "c2b8f006909b9bf9e165dfdf3c378527938c4497"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:59 2009 +0100"
      },
      "message": "fuse: destroy bdi on umount\n\nIf a fuse filesystem is unmounted but the device file descriptor\nremains open and a new mount reuses the old device number, then the\nmount fails with EEXIST and the following warning is printed in the\nkernel log:\n\n  WARNING: at fs/sysfs/dir.c:462 sysfs_add_one+0x35/0x3d()\n  sysfs: duplicate filename \u00270:15\u0027 can not be created\n\nThe cause is that the bdi belonging to the fuse filesystem was\ndestoryed only after the device file was released.  Fix this by\ncalling bdi_destroy() from fuse_put_super() instead.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "c2b8f006909b9bf9e165dfdf3c378527938c4497",
      "tree": "6e9549ba41936078a5d9e46fbc150bf3aa6f57be",
      "parents": [
        "3ddf1e7f57237ac7c5d5bfb7058f1ea4f970b661"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "message": "fuse: fuse_fill_super error handling cleanup\n\nClean up error handling for the whole of fuse_fill_super() function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "3ddf1e7f57237ac7c5d5bfb7058f1ea4f970b661",
      "tree": "2a1761f7bcd44a2474f34ff6590f7fe95f396732",
      "parents": [
        "bb875b38dc5e343bdb696b2eab8233e4d195e208"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "message": "fuse: fix missing fput on error\n\nFix the leaking file reference if allocation or initialization of\nfuse_conn failed.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "bb875b38dc5e343bdb696b2eab8233e4d195e208",
      "tree": "45ee0918e29eeb39e72ca0cdc9321ef8960370b6",
      "parents": [
        "f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "error27@gmail.com",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Mon Jan 26 15:00:58 2009 +0100"
      },
      "message": "fuse: fix NULL deref in fuse_file_alloc()\n\nff is set to NULL and then dereferenced on line 65.  Compile tested only.\n\nSigned-off-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "3ef7784e47975e31148c25b6fa795949fdc16d9c",
      "tree": "452d3f8e2e04fa74fc9f7d477fff05b4e1d8c858",
      "parents": [
        "90ffd467933eaf581e11fec51e7ba16fc9bd542d"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 10:33:25 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 13:15:55 2009 +0300"
      },
      "message": "fs/Kconfig: move fuse out\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "5fec8bdbf9a1c4df4ad3f20e52aa2d8caed490c8",
      "tree": "e8c1b1a9f3ea6b6a0edb972f082d0d7338c98af4",
      "parents": [
        "59e3af21e94bd56f6a31ba774786a2bfc753581b",
        "5d9ec854bfb6f1e122b1d96b344164a71eac5be8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:01:20 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 17:01:20 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: clean up annotations of fc-\u003elock\n  fuse: fix sparse warning in ioctl\n  fuse: update interface version\n  fuse: add fuse_conn-\u003erelease()\n  fuse: separate out fuse_conn_init() from new_conn()\n  fuse: add fuse_ prefix to several functions\n  fuse: implement poll support\n  fuse: implement unsolicited notification\n  fuse: add file kernel handle\n  fuse: implement ioctl support\n  fuse: don\u0027t let fuse_req-\u003eend() put the base reference\n  fuse: move FUSE_MINOR to miscdevice.h\n  fuse: style fixes\n"
    },
    {
      "commit": "54566b2c1594c2326a645a3551f9d989f7ba3c5e",
      "tree": "b373f3283fe5e197d0df29cd6b645c35adf1076c",
      "parents": [
        "e687d691cb3790d25e31c74f5941fd7c565e9df5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sun Jan 04 12:00:53 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 04 13:33:20 2009 -0800"
      },
      "message": "fs: symlink write_begin allocation context fix\n\nWith the write_begin/write_end aops, page_symlink was broken because it\ncould no longer pass a GFP_NOFS type mask into the point where the\nallocations happened.  They are done in write_begin, which would always\nassume that the filesystem can be entered from reclaim.  This bug could\ncause filesystem deadlocks.\n\nThe funny thing with having a gfp_t mask there is that it doesn\u0027t really\nallow the caller to arbitrarily tinker with the context in which it can be\ncalled.  It couldn\u0027t ever be GFP_ATOMIC, for example, because it needs to\ntake the page lock.  The only thing any callers care about is __GFP_FS\nanyway, so turn that into a single flag.\n\nAdd a new flag for write_begin, AOP_FLAG_NOFS.  Filesystems can now act on\nthis flag in their write_begin function.  Change __grab_cache_page to\naccept a nofs argument as well, to honour that flag (while we\u0027re there,\nchange the name to grab_cache_page_write_begin which is more instructive\nand does away with random leading underscores).\n\nThis is really a more flexible way to go in the end anyway -- if a\nfilesystem happens to want any extra allocations aside from the pagecache\nones in ints write_begin function, it may now use GFP_KERNEL (rather than\nGFP_NOFS) for common case allocations (eg.  ocfs2_alloc_write_ctxt, for a\nrandom example).\n\n[kosaki.motohiro@jp.fujitsu.com: fix ubifs]\n[kosaki.motohiro@jp.fujitsu.com: fix fuse]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n[ Cleaned up the calling convention: just pass in the AOP flags\n  untouched to the grab_cache_page_write_begin() function.  That\n  just simplifies everybody, and may even allow future expansion of the\n  logic.   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d9ec854bfb6f1e122b1d96b344164a71eac5be8",
      "tree": "ed74270562b414a35919da5b0fa372e10ebaf254",
      "parents": [
        "c9f0523d88fd208ce094995a0ac63f7c04e56bab"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Tue Dec 02 14:49:42 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Tue Dec 02 14:49:42 2008 +0100"
      },
      "message": "fuse: clean up annotations of fc-\u003elock\n\nMakes the existing annotations match the more common one per line style\nand adds a few missing annotations.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c9f0523d88fd208ce094995a0ac63f7c04e56bab",
      "tree": "38c8d80f60a9e738261f25d35c62ee747403414a",
      "parents": [
        "1f55ed06cf0c361b293b32e5947d35d173eff2aa"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 02 14:49:42 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.de",
        "time": "Tue Dec 02 14:49:42 2008 +0100"
      },
      "message": "fuse: fix sparse warning in ioctl\n\nFix sparse warning:\n\n  CHECK   fs/fuse/file.c\nfs/fuse/file.c:1615:17: warning: incorrect type in assignment (different address spaces)\nfs/fuse/file.c:1615:17:    expected void [noderef] \u003casn:1\u003e*iov_base\nfs/fuse/file.c:1615:17:    got void *\u003cnoident\u003e\n\nThis was introduced by \"fuse: implement ioctl support\".\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "43901aabd7a043e62e24e9459dc4949b4cd69f07",
      "tree": "a3c111b3110852bd46a62b31bd510f08d6b20e88",
      "parents": [
        "0d179aa59285ceef529c125e181cbb79ff5245c2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:56 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:56 2008 +0100"
      },
      "message": "fuse: add fuse_conn-\u003erelease()\n\nAdd fuse_conn-\u003erelease() so that fuse_conn can be embedded in other\nstructures.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "0d179aa59285ceef529c125e181cbb79ff5245c2",
      "tree": "c044a2df496b362eee7dec5b176a14b0937b0725",
      "parents": [
        "b93f858ab2a4bee779c360002f313ad6c3504cdc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "message": "fuse: separate out fuse_conn_init() from new_conn()\n\nSeparate out fuse_conn_init() from new_conn() and while at it\ninitialize fuse_conn-\u003eentry during conn initialization.\n\nThis will be used by CUSE.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b93f858ab2a4bee779c360002f313ad6c3504cdc",
      "tree": "0523108e8c76035f35a3712ced5bf8e329731c78",
      "parents": [
        "95668a69a4bb862063c4d28a746e55107dee7b98"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "message": "fuse: add fuse_ prefix to several functions\n\nAdd fuse_ prefix to request_send*() and get_root_inode() as some of\nthose functions will be exported for CUSE.  With or without CUSE\nexport, having the function names scoped is a good idea for\ndebuggability.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "95668a69a4bb862063c4d28a746e55107dee7b98",
      "tree": "0679e0f43274648bad70e694a9efb8bcfed55adc",
      "parents": [
        "8599396b5062bf6bd2a0b433503849e2322df1c2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "message": "fuse: implement poll support\n\nImplement poll support.  Polled files are indexed using kh in a RB\ntree rooted at fuse_conn-\u003epolled_files.\n\nClient should send FUSE_NOTIFY_POLL notification once after processing\nFUSE_POLL which has FUSE_POLL_SCHEDULE_NOTIFY set.  Sending\nnotification unconditionally after the latest poll or everytime file\ncontent might have changed is inefficient but won\u0027t cause malfunction.\n\nfuse_file_poll() can sleep and requires patches from the following\nthread which allows f_op-\u003epoll() to sleep.\n\n  http://thread.gmane.org/gmane.linux.kernel/726176\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "8599396b5062bf6bd2a0b433503849e2322df1c2",
      "tree": "8ce5f253eaf5fe28324c497db780d824ea60bb5c",
      "parents": [
        "acf99433d98c2570a619d8fb8b51abce4e532059"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "message": "fuse: implement unsolicited notification\n\nClients always used to write only in response to read requests.  To\nimplement poll efficiently, clients should be able to issue\nunsolicited notifications.  This patch implements basic notification\nsupport.\n\nZero fuse_out_header.unique is now accepted and considered unsolicited\nnotification and the error field contains notification code.  This\npatch doesn\u0027t implement any actual notification.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "acf99433d98c2570a619d8fb8b51abce4e532059",
      "tree": "3d8c6933448ad67c4343808113c7ee8f41050349",
      "parents": [
        "59efec7b903987dcb60b9ebc85c7acd4443a11a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "message": "fuse: add file kernel handle\n\nThe file handle, fuse_file-\u003efh, is opaque value supplied by userland\nFUSE server and uniqueness is not guaranteed.  Add file kernel handle,\nfuse_file-\u003ekh, which is allocated by the kernel on file allocation and\nguaranteed to be unique.\n\nThis will be used by poll to match notification to the respective file\nbut can be used for other purposes where unique file handle is\nnecessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "59efec7b903987dcb60b9ebc85c7acd4443a11a1",
      "tree": "1287e817201fcb4008917b2bffd378c36540622b",
      "parents": [
        "e9bb09dd6c5b8ec6a971ed6251df5eba3a4c8d3c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:55 2008 +0100"
      },
      "message": "fuse: implement ioctl support\n\nGeneric ioctl support is tricky to implement because only the ioctl\nimplementation itself knows which memory regions need to be read\nand/or written.  To support this, fuse client can request retry of\nioctl specifying memory regions to read and write.  Deep copying\n(nested pointers) can be implemented by retrying multiple times\nresolving one depth of dereference at a time.\n\nFor security and cleanliness considerations, ioctl implementation has\nrestricted mode where the kernel determines data transfer directions\nand sizes using the _IOC_*() macros on the ioctl command.  In this\nmode, retry is not allowed.\n\nFor all FUSE servers, restricted mode is enforced.  Unrestricted ioctl\nwill be used by CUSE.\n\nPlese read the comment on top of fs/fuse/file.c::fuse_file_do_ioctl()\nfor more information.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e9bb09dd6c5b8ec6a971ed6251df5eba3a4c8d3c",
      "tree": "5012a2046330c00f41fd65dc20867b01b80eee5d",
      "parents": [
        "193da6092764ab693da7170c5badbf60d7758c1d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Nov 26 12:03:54 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:54 2008 +0100"
      },
      "message": "fuse: don\u0027t let fuse_req-\u003eend() put the base reference\n\nfuse_req-\u003eend() was supposed to be put the base reference but there\u0027s\nno reason why it should.  It only makes things more complex.  Move it\nout of -\u003eend() and make it the responsibility of request_end().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "1729a16c2c92bbd9e54ac7cad3101fea2e073aa5",
      "tree": "6814c8f122d6e7e6993d3af6ea427b3958b9a4f2",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 26 12:03:54 2008 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 26 12:03:54 2008 +0100"
      },
      "message": "fuse: style fixes\n\nFix coding style errors reported by checkpatch and others.  Uptdate\ncopyright date to 2008.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c69e8d9c01db2adc503464993c358901c9af9de4",
      "tree": "bed94aaa9aeb7a7834d1c880f72b62a11a752c78",
      "parents": [
        "86a264abe542cfececb4df129bc45a0338d8cdb9"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:19 2008 +1100"
      },
      "message": "CRED: Use RCU to access another task\u0027s creds and to release a task\u0027s own creds\n\nUse RCU to access another task\u0027s creds and to release a task\u0027s own creds.\nThis means that it will be possible for the credentials of a task to be\nreplaced without another task (a) requiring a full lock to read them, and (b)\nseeing deallocated memory.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "b6dff3ec5e116e3af6f537d4caedcad6b9e5082a",
      "tree": "9e76f972eb7ce9b84e0146c8e4126a3f86acb428",
      "parents": [
        "15a2460ed0af7538ca8e6c610fe607a2cd9da142"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:16 2008 +1100"
      },
      "message": "CRED: Separate task security context from task_struct\n\nSeparate the task security context from task_struct.  At this point, the\nsecurity data is temporarily embedded in the task_struct with two pointers\npointing to it.\n\nNote that the Alpha arch is altered as it refers to (E)UID and (E)GID in\nentry.S via asm-offsets.\n\nWith comment fixes Signed-off-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "2186a71cbcddda946dd3cfccd5285e210ec3af10",
      "tree": "8e996f7d8c227184508a2ca09502a53e9e015764",
      "parents": [
        "f0ce7ee3a8ec1e80b6f460983ef1f26e603026f5"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:38:53 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:38:53 2008 +1100"
      },
      "message": "CRED: Wrap task credential accesses in the FUSE filesystem\n\nWrap access to task credentials so that they can be separated more easily from\nthe task_struct during the introduction of COW creds.\n\nChange most current-\u003e(|e|s|fs)[ug]id to current_(|e|s|fs)[ug]id().\n\nChange some task-\u003ee?[ug]id to task_e?[ug]id().  In some places it makes more\nsense to use RCU directly rather than a convenient wrapper; these will be\naddressed by later patches.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: fuse-devel@lists.sourceforge.net\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "233e70f4228e78eb2f80dc6650f65d3ae3dbf17c",
      "tree": "4e18fbe1851e6d2161b7f18265cb21f8a61e3ce7",
      "parents": [
        "3318a386e4ca68c76e0294363d29bdc46fcad670"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Oct 31 23:28:30 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 01 09:49:46 2008 -0700"
      },
      "message": "saner FASYNC handling on file close\n\nAs it is, all instances of -\u003erelease() for files that have -\u003efasync()\nneed to remember to evict file from fasync lists; forgetting that\ncreates a hole and we actually have a bunch that *does* forget.\n\nSo let\u0027s keep our lives simple - let __fput() check FASYNC in\nfile-\u003ef_flags and call -\u003efasync() there if it\u0027s been set.  And lose that\ncrap in -\u003erelease() instances - leaving it there is still valid, but we\ndon\u0027t have to bother anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "440037287c5ebb07033ab927ca16bb68c291d309",
      "tree": "c4be3843ea87a777c2647f471895917005d8068f",
      "parents": [
        "4ea3ada2955e4519befa98ff55dd62d6dfbd1705"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 11 15:49:04 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:01 2008 -0400"
      },
      "message": "[PATCH] switch all filesystems over to d_obtain_alias\n\nSwitch all users of d_alloc_anon to d_obtain_alias.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a7c1b990f71574e077b94ce4582e2cf11cb891fe",
      "tree": "9192239167f6047c4f5fbc64d530904ac4f8de86",
      "parents": [
        "29d434b39c807320fbe4bcdce0ab98a0b9fcb285"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 16 16:08:57 2008 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Oct 16 16:08:57 2008 +0200"
      },
      "message": "fuse: implement nonseekable open\n\nLet the client request nonseekable open using FOPEN_NONSEEKABLE and\ncall nonseekable_open() on the file if requested.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "29d434b39c807320fbe4bcdce0ab98a0b9fcb285",
      "tree": "abb2db88d67449332dbc209a6e3724a3412f6a9c",
      "parents": [
        "37194d0723b9b68b4b299b2564ca99e3d0a094c3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Oct 16 16:08:57 2008 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Oct 16 16:08:57 2008 +0200"
      },
      "message": "fuse: add include protectors\n\nAdd include protectors to include/linux/fuse.h and fs/fuse/fuse_i.h.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "17e18ab6ff6ec44e95514c7346d2cbd0363ef640",
      "tree": "db4eeaa3b77c86d70feed64f1955cf545b0ff53a",
      "parents": [
        "769415c61191bc860f60c6edc3cb7cba24fb3218"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Thu Oct 16 16:08:56 2008 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Oct 16 16:08:56 2008 +0200"
      },
      "message": "fuse: add missing fuse_request_free\n\nThe error handling code for the second call to fuse_request_alloc should\ninclude freeing the result of the first one.\n\nThis bug was found by the Coccinelle project:\n\n  http://www.emn.fr/x-info/coccinelle/\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "769415c61191bc860f60c6edc3cb7cba24fb3218",
      "tree": "c9ca5eb8afd1e4848967c3ec5a0a97dcda395e3f",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 16 16:08:56 2008 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Oct 16 16:08:56 2008 +0200"
      },
      "message": "fuse: fix SEEK_END incorrectness\n\nUpdate file size before using it in lseek(..., SEEK_END).\n\nReported-by: Amnon Shiloh \u003cu3557@miso.sublimeip.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a110343f0d6d41f68b7cf8c00b57a3172c67f816",
      "tree": "04f57e3454e796765a7395d2ece4739cf536ae9f",
      "parents": [
        "7f2da1e7d0330395e5e9e350b879b98a1ea495df"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 17 09:19:08 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:21 2008 -0400"
      },
      "message": "[PATCH] fix MAY_CHDIR/MAY_ACCESS/LOOKUP_ACCESS mess\n\n* MAY_CHDIR is redundant - it\u0027s an equivalent of MAY_ACCESS\n* MAY_ACCESS on fuse should affect only the last step of pathname resolution\n* fchdir() and chroot() should pass MAY_ACCESS, for the same reason why\n  chdir() needs that.\n* now that we pass MAY_ACCESS explicitly in all cases, LOOKUP_ACCESS can be\n  removed; it has no business being in nameidata.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2f1936b87783a3a56c9441b27b9ba7a747f11e8e",
      "tree": "024a0f3da74ba6365f209d03685133760146149b",
      "parents": [
        "c82e42da8a6b2f3a85dc4d4278cb8238702f8f64"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 24 16:50:14 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:16 2008 -0400"
      },
      "message": "[patch 3/5] vfs: change remove_suid() to file_remove_suid()\n\nAll calls to remove_suid() are made with a file pointer, because\n(similarly to file_update_time) it is called when the file is written.\n\nClean up callers by passing in a file instead of a dentry.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48e90761b570ff57f58b726229d229729949c5bb",
      "tree": "be2ab7ed5710223c46f39afd276c964506a7db40",
      "parents": [
        "33670fa296860283f04a7975b8c790f101e43a6e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:49:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "fuse: lockd support\n\nIf fuse filesystem doesn\u0027t define it\u0027s own lock operations, then allow the\nlock manager to work with fuse.\n\nAdding lockd support for remote locking is also possible, but more rarely\nused, so leave it till later.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33670fa296860283f04a7975b8c790f101e43a6e",
      "tree": "61162737edbffe696f4f9b13998d192cd3be3f75",
      "parents": [
        "c180eebe1390c2076ead6a9bc95a02efb994edb7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:49:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "fuse: nfs export special lookups\n\nImplement the get_parent export operation by sending a LOOKUP request with\n\"..\" as the name.\n\nImplement looking up an inode by node ID after it has been evicted from\nthe cache.  This is done by seding a LOOKUP request with \".\" as the name\n(for all file types, not just directories).\n\nThe filesystem can set the FUSE_EXPORT_SUPPORT flag in the INIT reply, to\nindicate that it supports these special lookups.\n\nThanks to John Muir for the original implementation of this feature.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: David Teigland \u003cteigland@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c180eebe1390c2076ead6a9bc95a02efb994edb7",
      "tree": "5cbd2872d0ba66d20e5f03fd97aa0357576d77ad",
      "parents": [
        "dbd561d236ff16f8143bc727d91758ddd190e8cb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:49:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "fuse: add fuse_lookup_name() helper\n\nAdd a new helper function which sends a LOOKUP request with the supplied\nname.  This will be used by the next patch to send special LOOKUP requests\nwith \".\" and \"..\" as the name.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbd561d236ff16f8143bc727d91758ddd190e8cb",
      "tree": "aac8fb4d98c3f425b2f5bf404af7d82182f19bc0",
      "parents": [
        "0de6256daafa3a97a269995e9b29f956bd419bbf"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:49:00 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "fuse: add export operations\n\nImplement export_operations, to allow fuse filesystems to be exported to\nNFS.  This feature has been in the out-of-tree fuse module, and is widely\nused and tested.\n\nIt has not been originally merged into mainline, because doing the NFS\nexport in userspace was thought to be a cleaner and more efficient way of\ndoing it, than through the kernel.\n\nWhile that is true, it would also have involved a lot of duplicated effort\nat reimplementing NFS exporting (all the different versions of the\nprotocol).  This effort was unfortunately not undertaken by anyone, so we\nare left with doing it the easy but less efficient way.\n\nIf this feature goes in, the out-of-tree fuse module can go away,\nwhich would have several advantages:\n\n  - not having to maintain two versions\n  - less confusion for users\n  - no bugs due to kernel API changes\n\nComment from hch:\n - Use the same fh_type values as XFS, since we use the same fh encoding.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0de6256daafa3a97a269995e9b29f956bd419bbf",
      "tree": "f71f080b3a895d25e6b956de72220e1e03464751",
      "parents": [
        "764c76b371722e0cba5c24d91225f0f954b69d44"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Jul 25 01:48:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:48 2008 -0700"
      },
      "message": "fuse: prepare lookup for nfs export\n\nUse d_splice_alias() instead of d_add() in fuse lookup code, to allow NFS\nexporting.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f948d56435fc1f7506f08866302ecd6e60b533dd",
      "tree": "eb729171e36e53888ed9dd7033e3dee1b2a682e0",
      "parents": [
        "cd50e89244087432a70598e432ff199a009b0e73"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 17 18:05:40 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 17 18:08:10 2008 -0700"
      },
      "message": "fuse: fix thinko in max I/O size calucation\n\nUse max not min to enforce a lower limit on the max I/O size.\n\nThis bug was introduced by \"fuse: fix max i/o size calculation\" (commit\ne5d9a0df07484d6d191756878c974e4307fb24ce).\n\nThanks to Brian Wang for noticing.\n\nReported-by: Brian Wang \u003cywang221@hotmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nAcked-by: Szabolcs Szakacsits \u003cszaka@ntfs-3g.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03fb0bce01490c9bdedad861962c76f987531014",
      "tree": "882f233f910b40042c9ce7f026e373e797647e04",
      "parents": [
        "42172d751b4596b8ca4346a1c251b5f1c661ab0c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri May 23 13:04:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 24 09:56:07 2008 -0700"
      },
      "message": "fuse: fix bdi naming conflict\n\nFuse allocates a separate bdi for each filesystem, and registers them\nin sysfs with \"MAJOR:MINOR\" of sb-\u003es_dev (st_dev).  This works fine for\nanon devices normally used by fuse, but can conflict with an already\nregistered BDI for \"fuseblk\" filesystems, where sb-\u003es_dev represents a\nreal block device.  In particularl this happens if a non-partitioned\ndevice is being mounted.\n\nFix by registering with a different name for \"fuseblk\" filesystems.\n\nThanks to Ioan Ionita for the bug report.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nReported-by: Ioan Ionita \u003copslynx@gmail.com\u003e\nTested-by: Ioan Ionita \u003copslynx@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78bb6cb9a890d3d50ca3b02fce9223d3e734ab9b",
      "tree": "330cc4fd17af9176ae9e2ee833e1097638fd1b30",
      "parents": [
        "0f146a764ff08c4c210c04239c5e6784b4b77485"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 12 14:02:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:26 2008 -0700"
      },
      "message": "fuse: add flag to turn on big writes\n\nPrior to 2.6.26 fuse only supported single page write requests.  In theory all\nfuse filesystem should be able support bigger than 4k writes, as there\u0027s\nnothing in the API to prevent it.  Unfortunately there\u0027s a known case in\nNTFS-3G where big writes cause filesystem corruption.  There could also be\nother filesystems, where the lack of testing with big write requests would\nresult in bugs.\n\nTo prevent such problems on a kernel upgrade, disable big writes by default,\nbut let filesystems set a flag to turn it on.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Szabolcs Szakacsits \u003cszaka@ntfs-3g.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd7309677c937bf23296f6c81027123c84c5cc5c",
      "tree": "b5dfaf691425424c5f4a1ed23c1e019a111808fa",
      "parents": [
        "3dfcf9c4bf1fda4aa75861bcf6c50607dd322fe5"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Thu May 01 04:35:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:02 2008 -0700"
      },
      "message": "fuse: use clamp() rather than nested min/max\n\nclamp() exists for this use.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4dbf930ed6c1f8aa992937d0461f8f70d4004aad",
      "tree": "978e8da5bbc97a3cfc9b44b810b0f9521154886e",
      "parents": [
        "5559b8f4d1f630b8614b6c8e13b8bf6c9c45d7d7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:51 2008 -0700"
      },
      "message": "fuse: fix sparse warnings\n\nfs/fuse/dev.c:306:2: warning: context imbalance in \u0027wait_answer_interruptible\u0027 - unexpected unlock\nfs/fuse/dev.c:361:2: warning: context imbalance in \u0027request_wait_answer\u0027 - unexpected unlock\nfs/fuse/dev.c:1002:4: warning: context imbalance in \u0027end_io_requests\u0027 - unexpected unlock\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5559b8f4d1f630b8614b6c8e13b8bf6c9c45d7d7",
      "tree": "69db92193c0b27a493334ec1ecad456e75c8e257",
      "parents": [
        "b48badf013018ef2aa4a46416454bdb18f77fb01"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:51 2008 -0700"
      },
      "message": "fuse: fix race in llseek\n\nFuse doesn\u0027t use i_mutex to protect setting i_size, and so\ngeneric_file_llseek() can be racy: it doesn\u0027t use i_size_read().\n\nSo do a fuse specific llseek method, which does use i_size_read().\n\n[akpm@linux-foundation.org: make `retval\u0027 loff_t]\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b48badf013018ef2aa4a46416454bdb18f77fb01",
      "tree": "62ac36c4699c47174fbfbb4d87c6d98988378346",
      "parents": [
        "e5d9a0df07484d6d191756878c974e4307fb24ce"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:51 2008 -0700"
      },
      "message": "fuse: fix node ID type\n\nNode ID is 64bit but it is passed as unsigned long to some functions.  This\nbreakage wasn\u0027t noticed, because libfuse uses unsigned long too.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5d9a0df07484d6d191756878c974e4307fb24ce",
      "tree": "b3117ed75242e523dd7c2ff9fc0878b78c7fcb0c",
      "parents": [
        "5c5c5e51b26413d50a9efae2ca7d6c5c6cd453ac"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:51 2008 -0700"
      },
      "message": "fuse: fix max i/o size calculation\n\nFix a bug that Werner Baumann reported: fuse can send a bigger write request\nthan the maximum specified.  This only affected direct_io operation.\n\nIn addition set a sane minimum for the max_read and max_write tunables, so I/O\nalways makes some progress.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c5c5e51b26413d50a9efae2ca7d6c5c6cd453ac",
      "tree": "4f78209ad05e429a0b89658e495fca9b9262d81d",
      "parents": [
        "ea9b9907b82a09bd1a708004454f7065de77c5b0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:43 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "fuse: update file size on short read\n\nIf the READ request returned a short count, then either\n\n  - cached size is incorrect\n  - filesystem is buggy, as short reads are only allowed on EOF\n\nSo assume that the size is wrong and refresh it, so that cached read() doesn\u0027t\nzero fill the missing chunk.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ea9b9907b82a09bd1a708004454f7065de77c5b0",
      "tree": "5a8a4f1e41efac6a2c1292adc3aa4a01f2ffd62f",
      "parents": [
        "854512ec358f291bcadd7daea10d6bf3704933de"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Apr 30 00:54:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "fuse: implement perform_write\n\nIntroduce fuse_perform_write.  With fusexmp (a passthrough filesystem), large\n(1MB) writes into a backing tmpfs filesystem are sped up by almost 4 times\n(256MB/s vs 71MB/s).\n\n[mszeredi@suse.cz]:\n\n - split into smaller functions\n - testing\n - duplicate generic_file_aio_write(), so that there\u0027s no need to add a\n   new -\u003eperform_write() a_op.  Comment from hch.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "854512ec358f291bcadd7daea10d6bf3704933de",
      "tree": "eb587b95df2200c9765e1feb8cdf16ef3fbb9983",
      "parents": [
        "3be5a52b30aa5cf9d795b7634f728f612197b1c4"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "fuse: clean up setting i_size in write\n\nExtract common code for setting i_size in write functions into a common\nhelper.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3be5a52b30aa5cf9d795b7634f728f612197b1c4",
      "tree": "5a78251a351e273cf2061a527a381c7ba256fc15",
      "parents": [
        "b88473f73e6d7b6af9cfc4ecc349d82c75d9a6af"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:50 2008 -0700"
      },
      "message": "fuse: support writable mmap\n\nQuoting Linus (3 years ago, FUSE inclusion discussions):\n\n  \"User-space filesystems are hard to get right. I\u0027d claim that they\n   are almost impossible, unless you limit them somehow (shared\n   writable mappings are the nastiest part - if you don\u0027t have those,\n   you can reasonably limit your problems by limiting the number of\n   dirty pages you accept through normal \"write()\" calls).\"\n\nInstead of attempting the impossible, I\u0027ve just waited for the dirty page\naccounting infrastructure to materialize (thanks to Peter Zijlstra and\nothers).  This nicely solved the biggest problem: limiting the number of pages\nused for write caching.\n\nSome small details remained, however, which this largish patch attempts to\naddress.  It provides a page writeback implementation for fuse, which is\ncompletely safe against VM related deadlocks.  Performance may not be very\ngood for certain usage patterns, but generally it should be acceptable.\n\nIt has been tested extensively with fsx-linux and bash-shared-mapping.\n\nFuse page writeback design\n--------------------------\n\nfuse_writepage() allocates a new temporary page with GFP_NOFS|__GFP_HIGHMEM.\nIt copies the contents of the original page, and queues a WRITE request to the\nuserspace filesystem using this temp page.\n\nThe writeback is finished instantly from the MM\u0027s point of view: the page is\nremoved from the radix trees, and the PageDirty and PageWriteback flags are\ncleared.\n\nFor the duration of the actual write, the NR_WRITEBACK_TEMP counter is\nincremented.  The per-bdi writeback count is not decremented until the actual\nwrite completes.\n\nOn dirtying the page, fuse waits for a previous write to finish before\nproceeding.  This makes sure, there can only be one temporary page used at a\ntime for one cached page.\n\nThis approach is wasteful in both memory and CPU bandwidth, so why is this\ncomplication needed?\n\nThe basic problem is that there can be no guarantee about the time in which\nthe userspace filesystem will complete a write.  It may be buggy or even\nmalicious, and fail to complete WRITE requests.  We don\u0027t want unrelated parts\nof the system to grind to a halt in such cases.\n\nAlso a filesystem may need additional resources (particularly memory) to\ncomplete a WRITE request.  There\u0027s a great danger of a deadlock if that\nallocation may wait for the writepage to finish.\n\nCurrently there are several cases where the kernel can block on page\nwriteback:\n\n  - allocation order is larger than PAGE_ALLOC_COSTLY_ORDER\n  - page migration\n  - throttle_vm_writeout (through NR_WRITEBACK)\n  - sync(2)\n\nOf course in some cases (fsync, msync) we explicitly want to allow blocking.\nSo for these cases new code has to be added to fuse, since the VM is not\ntracking writeback pages for us any more.\n\nAs an extra safetly measure, the maximum dirty ratio allocated to a single\nfuse filesystem is set to 1% by default.  This way one (or several) buggy or\nmalicious fuse filesystems cannot slow down the rest of the system by hogging\ndirty memory.\n\nWith appropriate privileges, this limit can be raised through\n\u0027/sys/class/bdi/\u003cbdi\u003e/max_ratio\u0027.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6f2fcbcfca9db2bd7aa24940224fcd3bbdbb8aa",
      "tree": "ab70a4e93c1a512f791c3a0f77810c84e2b81ef1",
      "parents": [
        "fa799759f9801137f665dbedda2c0815f1bf6f1b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 30 00:54:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:49 2008 -0700"
      },
      "message": "mm: bdi: expose the BDI object in sysfs for FUSE\n\nRegister FUSE\u0027s backing_dev_info under sysfs with the name \"fuse-MAJOR:MINOR\"\n\nMake the fuse control filesystem use s_dev instead of a fuse specific ID.\nThis makes it easier to match directories under /sys/fs/fuse/connections/ with\ndirectories under /sys/class/bdi, and with actual mounts.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42faad99658eed7ca8bd328ffa4bcb7d78c9bcca",
      "tree": "8b57fb69d1922939c6ba13f512a0ae54a3a171ef",
      "parents": [
        "78d31a3a87f84cf56004b7bc154831f2ee1186e8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Apr 24 07:21:56 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 25 09:23:25 2008 -0400"
      },
      "message": "[PATCH] restore sane -\u003eumount_begin() API\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a823ac9ff09cbdf39201df37b7ede1f9395de83",
      "tree": "8b61341ef969a3107cb5d3c8fb9317ec250507a6",
      "parents": [
        "fddd9cf82c9f9617d134ae878a8f6b116ebbd43d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Sat Feb 23 15:23:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:12:13 2008 -0800"
      },
      "message": "fuse: fix permission checking\n\nI added a nasty local variable shadowing bug to fuse in 2.6.24, with the\nresult, that the \u0027default_permissions\u0027 mount option is basically ignored.\n\nHow did this happen?\n\n - old err declaration in inner scope\n - new err getting declared in outer scope\n - \u0027return err\u0027 from inner scope getting removed\n - old declaration not being noticed\n\n-Wshadow would have saved us, but it doesn\u0027t seem practical for\nthe kernel :(\n\nMore testing would have also saved us :((\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1875dbaa58e4894f7d9321d1c280fb23ca9f9e5",
      "tree": "dffcd7b60e50a1bcd112795e2a438c254b12f870",
      "parents": [
        "c1fca3b6090f45018b3754eff0276521edb8ac3e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Feb 08 04:21:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:40 2008 -0800"
      },
      "message": "mount options: fix fuse\n\nAdd blksize\u003d option to /proc/mounts for fuseblk filesystems.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa300b1914f892196acb385677047bc978466de7",
      "tree": "58729e181e2a7aca020d3079eadbf1b718e40c1f",
      "parents": [
        "d0b079483dd4cf6373f0ff234d5fdaef80c9588f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:28 2008 -0800"
      },
      "message": "iget: stop FUSE from using iget() and read_inode()\n\nStop the FUSE filesystem from using read_inode(), which it doesn\u0027t use anyway.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e231c2ee64eb1c5cd3c63c31da9dac7d888dcf7f",
      "tree": "d4b17ef65960594681397a3acac02c2d248200b5",
      "parents": [
        "d1bc8e95445224276d7896b8b08cbb0b28a0ca80"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Feb 07 00:15:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:26 2008 -0800"
      },
      "message": "Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p)\n\nConvert instances of ERR_PTR(PTR_ERR(p)) to ERR_CAST(p) using:\n\nperl -spi -e \u0027s/ERR_PTR[(]PTR_ERR[(](.*)[)][)]/ERR_CAST(\\1)/\u0027 `grep -rl \u0027ERR_PTR[(]*PTR_ERR\u0027 fs crypto net security`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d12def1bcb809b6172ee207a24e00a0a4398df1d",
      "tree": "96e151de1e80cacd9202a00b77654533a9754207",
      "parents": [
        "b57d426445c98789265de6a9338cdb06462d15fb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 06 01:38:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:13 2008 -0800"
      },
      "message": "fuse: limit queued background requests\n\nLibfuse basically creates a new thread for each new request.  This is fine for\nsynchronous requests, which are naturally limited.  However background\nrequests (especially writepage) can cause a thread creation storm.\n\nTo avoid this, limit the number of background requests available to userspace.\n\nThis is done by introducing another queue for background requests, and a\ncounter for the number of \"active\" requests, which are currently available for\nuserspace.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b57d426445c98789265de6a9338cdb06462d15fb",
      "tree": "66ff8e708c15275af806b0a9847e01d9e3a2f8e5",
      "parents": [
        "0952b2a4a82b2deb76463dbcf1355b806dc81134"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 06 01:38:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:13 2008 -0800"
      },
      "message": "fuse: save space in struct fuse_req\n\nMove the fields \u0027dentry\u0027 and \u0027vfsmount\u0027 into the request specific union, since\nthese are only used for the RELEASE request.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0952b2a4a82b2deb76463dbcf1355b806dc81134",
      "tree": "3daa0df6383263a80ef7ebbd96f721250c40a7ed",
      "parents": [
        "af440f52927e4b6941aa94e3cfc698adb0f22663"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Feb 06 01:38:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:13 2008 -0800"
      },
      "message": "fuse: fix attribute caching after create\n\nInvalidate attributes on create, since st_ctime is updated.  Reported by\nSzabolcs Szakacsits.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "197b12d6796a3bca187f22a8978a33d51e2bcd79",
      "tree": "706ff3454f03d4aa8ca4d76010479d7f9d2b36f4",
      "parents": [
        "c10997f6575f476ff38442fa18fd4a0d80345f9d"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Dec 20 08:13:05 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:40 2008 -0800"
      },
      "message": "Kobject: convert fs/* from kobject_unregister() to kobject_put()\n\nThere is no need for kobject_unregister() anymore, thanks to Kay\u0027s\nkobject cleanup changes, so replace all instances of it with\nkobject_put().\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "00d2666623368ffd39afc875ff8a2eead2a0436c",
      "tree": "9b16b85167f1bd86c02c0ebeb74510d8029783a3",
      "parents": [
        "917e865df7eb020f20ffc2b4204f282a587df94f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 29 14:17:23 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:13 2008 -0800"
      },
      "message": "kobject: convert main fs kobject to use kobject_create\n\nThis also renames fs_subsys to fs_kobj to catch all current users with a\nbuild error instead of a build warning which can easily be missed.\n\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "5c89e17e9c2bc03ed16320967832b33b174e6234",
      "tree": "85d55af251e2d3f32448781d31317508f92aca4d",
      "parents": [
        "43968d2f1648f4dc92437dc0363a3e88377445b3"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Oct 29 20:13:17 2007 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:11 2008 -0800"
      },
      "message": "kobject: convert fuse to use kobject_create\n\nWe don\u0027t need a kset here, a simple kobject will do just fine, so\ndynamically create the kobject and use it.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3514faca19a6fdc209734431c509631ea92b094e",
      "tree": "f6d102e6dec276f8e8d1044b47c74a02b901554f",
      "parents": [
        "c11c4154e7ff4cebfadad849b1e22689d759c3f4"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Oct 16 10:11:44 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:10 2008 -0800"
      },
      "message": "kobject: remove struct kobj_type from struct kset\n\nWe don\u0027t need a \"default\" ktype for a kset.  We should set this\nexplicitly every time for each kset.  This change is needed so that we\ncan make ksets dynamic, and cleans up one of the odd, undocumented\nassumption that the kset/kobject/ktype model has.\n\nThis patch is based on a lot of help from Kay Sievers.\n\nNasty bug in the block code was found by Dave Young\n\u003chidave.darkstar@gmail.com\u003e\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "08b633070ad5fa17a837428a601c32cf3db6aafd",
      "tree": "3aa400a5f3f70bfa99f871f9aa3b80610ebb0053",
      "parents": [
        "fbee36b92abc965d3fc2862aa60fd0dfcf779d0b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Nov 28 16:22:03 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "fuse: fix attribute caching after rename\n\nInvalidate attributes on rename, since some filesystems may update\nst_ctime.  Reported by Szabolcs Szakacsits\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fbee36b92abc965d3fc2862aa60fd0dfcf779d0b",
      "tree": "5d59ccb2236110aeb8fddb75c94fc52beaf79e3b",
      "parents": [
        "d0186b25e65d4d786727a03044b8aafe2ba118ee"
      ],
      "author": {
        "name": "John Muir",
        "email": "muirj@nortel.com",
        "time": "Wed Nov 28 16:22:02 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "fuse: fix uninitialized field in fuse_inode\n\nI found problems accessing (executing) previously existing files, until\nI did chmod on them (or setattr).\n\nIf the fi-\u003eattr_version is not initialized, then it could be\nlarger than fc-\u003eattr_version until a setattr is executed, and as a\nresult the inode attributes would never be set.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0186b25e65d4d786727a03044b8aafe2ba118ee",
      "tree": "cf02b766c799d3827782102d385935d2275af14b",
      "parents": [
        "a6643094e73247c1ebd36816f494f631fa7be348"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 28 16:22:01 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "fuse: fix FUSE_FILE_OPS sending\n\nFUSE_FILE_OPS is meant to signal that the kernel will send the open file to to\nthe userspace filesystem for operations on open files, so that sillyrenaming\nunlinked files becomes unnecessary.\n\nHowever this needs VFS changes, which won\u0027t make it into 2.6.24.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6643094e73247c1ebd36816f494f631fa7be348",
      "tree": "11ba2e666b6fea1cdf579616d6a04b0afd24f61c",
      "parents": [
        "7dca9fd39f7d4605ac178a67bb1772381056917d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 28 16:22:00 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "fuse: pass open flags to read and write\n\nSome open flags (O_APPEND, O_DIRECT) can be changed with fcntl(F_SETFL, ...)\nafter open, but fuse currently only sends the flags to userspace in open.\n\nTo make it possible to correcly handle changing flags, send the\ncurrent value to userspace in each read and write.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7dca9fd39f7d4605ac178a67bb1772381056917d",
      "tree": "8a2f49e872a900819c7067bbe8ed118f88241f07",
      "parents": [
        "bcb4be809d2a804ff040d95db4a664113833e702"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 28 16:21:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "fuse: cleanup: add fuse_get_attr_version()\n\nExtract repeated code into helper function, as suggested by Akpm.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcb4be809d2a804ff040d95db4a664113833e702",
      "tree": "11a3aad0dc7df29906e2b379d13f14ccf26c9b56",
      "parents": [
        "b6fd6ecb830444636bc4e9d626f214082c91fffe"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Nov 28 16:21:59 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Nov 29 09:24:54 2007 -0800"
      },
      "message": "fuse: fix reading past EOF\n\nCurrently reading a fuse file will stop at cached i_size and return\nEOF, even though the file might have grown since the attributes were\nlast updated.\n\nSo detect if trying to read past EOF, and refresh the attributes\nbefore continuing with the read.\n\nThanks to mpb for the report.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8744969a819de4ee5158f4cdb30104601cc015d4",
      "tree": "3320c7eac5c3e15d3b17849f5afa1c0cbf1dc863",
      "parents": [
        "be21f0ab0d8f10c90265066603a8d95b6037a6fa"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Nov 14 17:00:02 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:42 2007 -0800"
      },
      "message": "fuse_file_alloc(): fix NULL dereferences\n\nFix obvious NULL dereferences spotted by the Coverity checker.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e9663ee452ffce0d429656ebbcfe69417a30e92",
      "tree": "a72825f122c9e38d4adc42ebcfd127f366da4a0f",
      "parents": [
        "f33321141b273d60cbb3a8f56a5489baad82ba5e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:07:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "fuse: add blksize field to fuse_attr\n\nThere are cases when the filesystem will be passed the buffer from a single\nread or write call, namely:\n\n 1) in \u0027direct-io\u0027 mode (not O_DIRECT), read/write requests don\u0027t go\n    through the page cache, but go directly to the userspace fs\n\n 2) currently buffered writes are done with single page requests, but\n    if Nick\u0027s -\u003eperform_write() patch goes it, it will be possible to\n    do larger write requests.  But only if the original write() was\n    also bigger than a page.\n\nIn these cases the filesystem might want to give a hint to the app\nabout the optimal I/O size.\n\nAllow the userspace filesystem to supply a blksize value to be returned by\nstat() and friends.  If the field is zero, it defaults to the old\nPAGE_CACHE_SIZE value.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f33321141b273d60cbb3a8f56a5489baad82ba5e",
      "tree": "b6443b674600dcdb8c33aa6d44b7a673edc255b4",
      "parents": [
        "b25e82e5673c750116e8b01a4fc7d09be7809f8c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:07:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "fuse: add support for mandatory locking\n\nFor mandatory locking the userspace filesystem needs to know the lock\nownership for read, write and truncate operations.\n\nThis patch adds the necessary fields to the protocol.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b25e82e5673c750116e8b01a4fc7d09be7809f8c",
      "tree": "03d23ccbca6e87ba98efeba445ff714455dba0bb",
      "parents": [
        "93a8c3cd9e9834dc5f5c373336f3a0065521152d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:07:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "fuse: add helper for asynchronous writes\n\nThis patch adds a new helper function fuse_write_fill() which makes it\npossible to send WRITE requests asynchronously.\n\nA new flag for WRITE requests is also added which indicates that this a write\nfrom the page cache, and not a \"normal\" file write.\n\nThis patch is in preparation for writable mmap support.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "93a8c3cd9e9834dc5f5c373336f3a0065521152d"
}
