)]}'
{
  "log": [
    {
      "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": "bafa96541b250a7051e3fbc5de6e8369daf8ffec",
      "tree": "9b758c424fcda2d263c71f25358bb65a0abc15d4",
      "parents": [
        "51eb01e73599efb88c6c20b1c226d20309a75450"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jun 25 05:48:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:19 2006 -0700"
      },
      "message": "[PATCH] fuse: add control filesystem\n\nAdd a control filesystem to fuse, replacing the attributes currently exported\nthrough sysfs.  An empty directory \u0027/sys/fs/fuse/connections\u0027 is still created\nin sysfs, and mounting the control filesystem here provides backward\ncompatibility.\n\nAdvantages of the control filesystem over the previous solution:\n\n  - allows the object directory and the attributes to be owned by the\n    filesystem owner, hence letting unpriviled users abort the\n    filesystem connection\n\n  - does not suffer from module unload race\n\n[akpm@osdl.org: fix this fs for recent dhowells depredations]\n[akpm@osdl.org: fix 64-bit printk warnings]\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b6aeadeda22a9aa322fdfcd3f4c69ccf0da5cbdd",
      "tree": "794afec0eeb13722550a97783ec0cfb95e5e83cb",
      "parents": [
        "9e6268db496a2592e89457537ea54a496feabb77"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:45 2005 -0700"
      },
      "message": "[PATCH] FUSE - file operations\n\nThis patch adds the file operations of FUSE.\n\nThe following operations are added:\n\n o open\n o flush\n o release\n o fsync\n o readpage\n o commit_write\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5e5558e923f35839108a12718494ecb73fb782f",
      "tree": "c410d6826e9df13f7ea9e382a26589b66ec0989c",
      "parents": [
        "334f485df85ac7736ebe14940bf0a059c5f26d7d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:28 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:45 2005 -0700"
      },
      "message": "[PATCH] FUSE - read-only operations\n\nThis patch adds the read-only filesystem operations of FUSE.\n\nThis contains the following files:\n\n o dir.c\n    - directory, symlink and file-inode operations\n\nThe following operations are added:\n\n o lookup\n o getattr\n o readlink\n o follow_link\n o directory open\n o readdir\n o directory release\n o permission\n o dentry revalidate\n o statfs\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "334f485df85ac7736ebe14940bf0a059c5f26d7d",
      "tree": "754e5528289048a7104f4c1b431cebc1df16e2ce",
      "parents": [
        "d8a5ba45457e4a22aa39c939121efd7bb6c76672"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:44 2005 -0700"
      },
      "message": "[PATCH] FUSE - device functions\n\nThis adds the FUSE device handling functions.\n\nThis contains the following files:\n\n o dev.c\n    - fuse device operations (read, write, release, poll)\n    - registers misc device\n    - support for sending requests to userspace\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d8a5ba45457e4a22aa39c939121efd7bb6c76672",
      "tree": "686aa90d8c953326b8d2eeef9352e456cdb0ad52",
      "parents": [
        "04578f174f43d29b569500f01ba772afa4016330"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:44 2005 -0700"
      },
      "message": "[PATCH] FUSE - core\n\nThis patch adds FUSE core.\n\nThis contains the following files:\n\n o inode.c\n    - superblock operations (alloc_inode, destroy_inode, read_inode,\n      clear_inode, put_super, show_options)\n    - registers FUSE filesystem\n\n o fuse_i.h\n    - private header file\n\nRequirements\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n The most important difference between orinary filesystems and FUSE is\n the fact, that the filesystem data/metadata is provided by a userspace\n process run with the privileges of the mount \"owner\" instead of the\n kernel, or some remote entity usually running with elevated\n privileges.\n\n The security implication of this is that a non-privileged user must\n not be able to use this capability to compromise the system.  Obvious\n requirements arising from this are:\n\n  - mount owner should not be able to get elevated privileges with the\n    help of the mounted filesystem\n\n  - mount owner should not be able to induce undesired behavior in\n    other users\u0027 or the super user\u0027s processes\n\n  - mount owner should not get illegitimate access to information from\n    other users\u0027 and the super user\u0027s processes\n\n These are currently ensured with the following constraints:\n\n  1) mount is only allowed to directory or file which the mount owner\n    can modify without limitation (write access + no sticky bit for\n    directories)\n\n  2) nosuid,nodev mount options are forced\n\n  3) any process running with fsuid different from the owner is denied\n     all access to the filesystem\n\n 1) and 2) are ensured by the \"fusermount\" mount utility which is a\n    setuid root application doing the actual mount operation.\n\n 3) is ensured by a check in the permission() method in kernel\n\n I started thinking about doing 3) in a different way because Christoph\n H. made a big deal out of it, saying that FUSE is unacceptable into\n mainline in this form.\n\n The suggested use of private namespaces would be OK, but in their\n current form have many limitations that make their use impractical (as\n discussed in this thread).\n\n Suggested improvements that would address these limitations:\n\n   - implement shared subtrees\n\n   - allow a process to join an existing namespace (make namespaces\n     first-class objects)\n\n   - implement the namespace creation/joining in a PAM module\n\n With all that in place the check of owner against current-\u003efsuid may\n be removed from the FUSE kernel module, without compromising the\n security requirements.\n\n Suid programs still interesting questions, since they get access even\n to the private namespace causing some information leak (exact\n order/timing of filesystem operations performed), giving some\n ptrace-like capabilities to unprivileged users.  BTW this problem is\n not strictly limited to the namespace approach, since suid programs\n setting fsuid and accessing users\u0027 files will succeed with the current\n approach too.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
