)]}'
{
  "log": [
    {
      "commit": "8aa09a50b5d9dbdf627f79e19d72d82994348089",
      "tree": "5b50a1b62c8b95223023053595c452b0641f5767",
      "parents": [
        "6dbbcb120570d747b00783820ee02d1e1bcf63de"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Apr 26 10:49:16 2006 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Apr 26 10:49:16 2006 +0200"
      },
      "message": "[fuse] fix race between checking and setting file-\u003eprivate_data\n\nBKL does not protect against races if the task may sleep between\nchecking and setting a value.  So move checking of file-\u003eprivate_data\nnear to setting it in fuse_fill_super().\n\nFound by Al Viro.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\n"
    },
    {
      "commit": "5a5fb1ea74d8b82ca1461b885a1334fb21e037be",
      "tree": "f6e823d4a8e09ce0780d891f8f38f033ccbd7da2",
      "parents": [
        "4d5c34ec7b007cfb0771a36996b009f194acbb2f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Apr 26 10:48:55 2006 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Apr 26 10:48:55 2006 +0200"
      },
      "message": "Revert \"[fuse] fix deadlock between fuse_put_super() and request_end()\"\n\nThis reverts 73ce8355c243a434524a34c05cc417dd0467996e commit.\n\nIt was wrong, because it didn\u0027t take into account the requirement,\nthat iput() for background requests must be performed synchronously\nwith -\u003eput_super(), otherwise active inodes may remain after unmount.\n\nThe right solution is to keep the sbput_sem and perform iput() within\nthe locked region, but move fput() outside sbput_sem.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\n"
    },
    {
      "commit": "73ce8355c243a434524a34c05cc417dd0467996e",
      "tree": "a5bc5bfb31c41a5806caf763533943e7411e6543",
      "parents": [
        "2514395ef88b46e895726a8d40966cb83de7940c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Apr 11 21:14:26 2006 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Apr 11 21:14:26 2006 +0200"
      },
      "message": "[fuse] fix deadlock between fuse_put_super() and request_end()\n\nA deadlock was possible, when the last reference to the superblock was\nheld due to a background request containing a file reference.\n\nReleasing the file would release the vfsmount which in turn would\nrelease the superblock.  Since sbput_sem is held during the fput() and\nfuse_put_super() tries to acquire this same semaphore, a deadlock\nresults.\n\nThe chosen soltuion is to get rid of sbput_sem, and instead use the\nspinlock to ensure the referenced inodes/file are released only once.\nSince the actual release may sleep, defer these outside the locked\nregion, but using local variables instead of the structure members.\n\nThis is a much more rubust solution.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\n"
    },
    {
      "commit": "08a53cdce62d37d918530bbbf726cc01b21dc3d1",
      "tree": "2db5e37737da91f1b2b32136e4e10ad540d8dc09",
      "parents": [
        "ce1d5a491f0ee50560416a73faa5e4ddbab074bd"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Apr 10 22:54:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:49 2006 -0700"
      },
      "message": "[PATCH] fuse: account background requests\n\nThe previous patch removed limiting the number of outstanding requests.  This\npatch adds a much simpler limiting, that is also compatible with file locking\noperations.\n\nA task may have at most one synchronous request allocated.  So these requests\nneed not be otherwise limited.\n\nHowever the number of background requests (release, forget, asynchronous\nreads, interrupted requests) can grow indefinitely.  This can be used by a\nmalicous user to cause FUSE to allocate arbitrary amounts of unswappable\nkernel memory, denying service.\n\nFor this reason add a limit for the number of background requests, and block\nallocations of new requests until the number goes bellow the limit.\n\nAlso use this mechanism to block all requests until the INIT reply is\nreceived.\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": "ce1d5a491f0ee50560416a73faa5e4ddbab074bd",
      "tree": "21f91d983b467ad05df0213f54fe00aad84e5761",
      "parents": [
        "a87046d822f2d982d25b24c4a644d34f22d4888a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Apr 10 22:54:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:49 2006 -0700"
      },
      "message": "[PATCH] fuse: clean up request accounting\n\nFUSE allocated most requests from a fixed size pool filled at mount time.\nHowever in some cases (release/forget) non-pool requests were used.  File\nlocking operations aren\u0027t well served by the request pool, since they may\nblock indefinetly thus exhausting the pool.\n\nThis patch removes the request pool and always allocates requests on demand.\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": "d713311464bcca73c990d1a1b5c9467eae87f5b4",
      "tree": "d049e9655bebed5212cd3534961d354e51c2769f",
      "parents": [
        "0720b315976447cba3f0c3e211223b8cb82b0f93"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Apr 10 22:54:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:48 2006 -0700"
      },
      "message": "[PATCH] fuse: use a per-mount spinlock\n\nRemove the global spinlock in favor of a per-mount one.\n\nThis patch is basically find \u0026 replace.  The difficult part has already been\ndone by the previous patch.\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": "0720b315976447cba3f0c3e211223b8cb82b0f93",
      "tree": "b8013f53bca7a72670961ea6f439612d1c631283",
      "parents": [
        "e5ac1d1e70a8c19a65a959d73650203df7a2e168"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Apr 10 22:54:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:48 2006 -0700"
      },
      "message": "[PATCH] fuse: simplify locking\n\nThis is in preparation for removing the global spinlock in favor of a\nper-mount one.\n\nThe only critical part is the interaction between fuse_dev_release() and\nfuse_fill_super(): fuse_dev_release() must see the assignment to\nfile-\u003eprivate_data, otherwise it will leak the reference to fuse_conn.\n\nThis is ensured by the fput() operation, which will synchronize the assignment\nwith other CPU\u0027s that may do a final fput() soon after this.\n\nAlso redundant locking is removed from fuse_fill_super(), where exclusion is\nalready ensured by the BKL held for this function by the VFS.\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": "385a17bfc3cb035333c8a91eddc78a6e04c4625e",
      "tree": "7a9fde77c95f0e4cc86f31e8b1f5d23b6d815634",
      "parents": [
        "7025d9ad10a38dadef8b286e0092731c2d3cdc53"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Mon Apr 10 22:54:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:48 2006 -0700"
      },
      "message": "[PATCH] fuse: add O_ASYNC support to FUSE device\n\nThis adds asynchronous notification to FUSE - a FUSE server can request\nO_ASYNC on a /dev/fuse file descriptor and receive SIGIO when there is input\navailable.\n\nOne subtlety - fuse_dev_fasync, which is called when O_ASYNC is requested,\ndoes no locking, unlink the other methods.  I think it\u0027s unnecessary, as the\nfuse_conn.fasync list is manipulated only by fasync_helper and kill_fasync,\nwhich provide their own locking.  It would also be wrong to use the fuse_lock,\nas it\u0027s a spin lock and fasync_helper can sleep.  My one concern with this is\nthe fuse_conn going away underneath fuse_dev_fasync - sys_fcntl takes a\nreference on the file struct, so this seems not to be a problem.\n\nSigned-off-by: Jeff Dike \u003cjdike@addtoit.com\u003e\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": "9cd684551124e71630ab96d238747051463f5b56",
      "tree": "52de759d09d79ded7ff6746a3e2d5c002c75b2f8",
      "parents": [
        "caf736085f2f0d22a992a855d9caae14973f7ea4"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Feb 01 03:04:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Feb 01 08:53:09 2006 -0800"
      },
      "message": "[PATCH] fuse: fix async read for legacy filesystems\n\nWhile asynchronous reads mean a performance improvement in most cases, if\nthe filesystem assumed that reads are synchronous, then async reads may\ndegrade performance (filesystem may receive reads out of order, which can\nconfuse it\u0027s own readahead logic).\n\nWith sshfs a 1.5 to 4 times slowdown can be measured.\n\nThere\u0027s also a need for userspace filesystems to know whether asynchronous\nreads are supported by the kernel or not.\n\nTo achive these, negotiate in the INIT request whether async reads will be\nused and the maximum readahead value.  Update interface version to 7.6\n\nIf userspace uses a version earlier than 7.6, then disable async reads, and\nset maximum readahead value to the maximum read size, as done in previous\nversions.\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": "095da6cbb6a1c54c19b11190218eb0fbac666b6d",
      "tree": "29ba46cea17454fe1888182f6722aee64e1a7ef5",
      "parents": [
        "bacac382fbf53f717ca7f83558e45cce44e67df9"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:31 2006 -0800"
      },
      "message": "[PATCH] fuse: fix bitfield race\n\nFix race in setting bitfields of fuse_conn.  Spotted by Andrew Morton.\n\nThe two fields -\u003econnected and -\u003emounted were always changed with the\nfuse_lock held.  But other bitfields in the same structure were changed\nwithout the lock.  In theory this could lead to losing the assignment of\neven the ones under lock.  The chosen solution is to change these two\nfields to be a full unsigned type.  The other bitfields aren\u0027t \"important\"\nenough to warrant the extra complexity of full locking or changing them to\nbitops.\n\nFor all bitfields document why they are safe wrt. concurrent\nassignments.\n\nAlso make the initialization of the \u0027num_waiting\u0027 atomic counter explicit.\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": "9b9a04693fa2d9e60933154e4c4aca83c219ef0a",
      "tree": "c68562dfcf224e32c7bbbfdcad70caa758616881",
      "parents": [
        "64c6d8ed4c55f0a99b1b81558851da80c8d58244"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:31 2006 -0800"
      },
      "message": "[PATCH] fuse: move INIT handling to inode.c\n\nNow the INIT requests can be completely handled in inode.c and the\nfuse_send_init() function need not be global any more.\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": "69a53bf267fa58b89aa659d121dfe38436562a30",
      "tree": "36276fdbf7bfdc787708e8d5b2d4b79a0b5a4c56",
      "parents": [
        "0cd5b88553acf0611474dbaf8e43770eed268060"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:30 2006 -0800"
      },
      "message": "[PATCH] fuse: add connection aborting\n\nAdd ability to abort a filesystem connection.\n\nWith the introduction of asynchronous reads, the ability to interrupt any\nrequest is not enough to dissolve deadlocks, since now waiting for the request\ncompletion (page unlocked) is independent of the actual request, so in a\ndeadlock all threads will be uninterruptible.\n\nThe solution is to make it possible to abort all requests, even those\ncurrently undergoing I/O to/from userspace.  The natural interface for this is\n\u0027mount -f mountpoint\u0027, but that only works as long as the filesystem is\nattached.  So also add an \u0027abort\u0027 attribute to the sysfs view of the\nconnection.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0cd5b88553acf0611474dbaf8e43770eed268060",
      "tree": "f3b08ab3a4a1cb42d92e2997f60f30d945601600",
      "parents": [
        "f543f253f3aa721a24557d7df8259145bb01b734"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:30 2006 -0800"
      },
      "message": "[PATCH] fuse: add number of waiting requests attribute\n\nThis patch adds the \u0027waiting\u0027 attribute which indicates how many filesystem\nrequests are currently waiting to be completed.  A non-zero value without any\nfilesystem activity indicates a hung or deadlocked filesystem.\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": "f543f253f3aa721a24557d7df8259145bb01b734",
      "tree": "173fbfc0c90a2a615e1bd8a2bc49726c1824349c",
      "parents": [
        "9ba7cbba100bdaca7316d71d6c6298e61191f8b2"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:30 2006 -0800"
      },
      "message": "[PATCH] fuse: make fuse connection a kobject\n\nKobjectify fuse_conn, and make it visible under /sys/fs/fuse/connections.\n\nLacking any natural naming, connections are numbered.\n\nThis patch doesn\u0027t add any attributes, just the infrastructure.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ba7cbba100bdaca7316d71d6c6298e61191f8b2",
      "tree": "999e964132731388ff312df78623020600fe32e2",
      "parents": [
        "d77a1d5b611742c538364f041ff4610d27b14fe7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:30 2006 -0800"
      },
      "message": "[PATCH] fuse: extend semantics of connected flag\n\nThe -\u003econnected flag for a fuse_conn object previously only indicated whether\nthe device file for this connection is currently open or not.\n\nChange it\u0027s meaning so that it indicates whether the connection is active or\nnot: now either umount or device release will clear the flag.\n\nThe separate -\u003emounted flag is still needed for handling background requests.\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": "d77a1d5b611742c538364f041ff4610d27b14fe7",
      "tree": "c18cf2c112ad17e07a3e0d0459c55f04b257e3e3",
      "parents": [
        "83cfd4935124b165e942c317dc3e9ebb0a3e6a63"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:30 2006 -0800"
      },
      "message": "[PATCH] fuse: introduce list for requests under I/O\n\nCreate a new list for requests in the process of being transfered to/from\nuserspace.  This will be needed to be able to abort all requests even those\ncurrently under I/O\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": "6383bdaa2ed2d461d9f4d369dfaa9d610fc972e3",
      "tree": "2bdbc25280c0666c2f2f5869c5487541fa670579",
      "parents": [
        "8bfc016d2e2fff71c6843257f0fd0b60876331ed"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Mon Jan 16 22:14:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 16 23:15:30 2006 -0800"
      },
      "message": "[PATCH] fuse: miscellaneous cleanup\n\n - remove some unneeded assignments\n\n - use kzalloc instead of kmalloc + memset\n\n - simplify setting sb-\u003es_fs_info\n\n - in fuse_send_init() use fuse_get_request() instead of\n   do_get_request() helper\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": "39ee059affaf57a152c64cd3a0adc3f48f02ed71",
      "tree": "d656f8b3eb40cd1019a82d4381bbfa33e6caec8e",
      "parents": [
        "6ad84acab972f4dfc78e6fdb04c419f82c497d29"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jan 06 00:19:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:56 2006 -0800"
      },
      "message": "[PATCH] fuse: check file type in lookup\n\nPreviously invalid types were quietly changed to regular files, but at\nrevalidation the inode was changed to bad.  This was rather inconsistent\nbehavior.\n\nNow check if the type is valid on initial lookup, and return -EIO if not.\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": "3ec870d524c9150add120475c8ddcfa50574f98e",
      "tree": "62918ff93aac09bc13d4730208a8c8bc1fec4e40",
      "parents": [
        "1d3d752b471d2a3a1d5e4fe177e5e7d52abb4e4c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jan 06 00:19:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:56 2006 -0800"
      },
      "message": "[PATCH] fuse: make maximum write data configurable\n\nMake the maximum size of write data configurable by the filesystem.  The\nprevious fixed 4096 limit only worked on architectures where the page size is\nless or equal to this.  This change make writing work on other architectures\ntoo, and also lets the filesystem receive bigger write requests in direct_io\nmode.\n\nNormal writes which go through the page cache are still limited to a page\nsized chunk per request.\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": "1d3d752b471d2a3a1d5e4fe177e5e7d52abb4e4c",
      "tree": "05c6c99ca02118e2c80199c36f4f6263cdf7986b",
      "parents": [
        "248d86e87d12da19eee602075f05a49a5215288b"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jan 06 00:19:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:56 2006 -0800"
      },
      "message": "[PATCH] fuse: clean up request size limit checking\n\nChange the way a too large request is handled.  Until now in this case the\ndevice read returned -EINVAL and the operation returned -EIO.\n\nMake it more flexibible by not returning -EINVAL from the read, but restarting\nit instead.\n\nAlso remove the fixed limit on setxattr data and let the filesystem provide as\nlarge a read buffer as it needs to handle the extended attribute data.\n\nThe symbolic link length is already checked by VFS to be less than PATH_MAX,\nso the extra check against FUSE_SYMLINK_MAX is not needed.\n\nThe check in fuse_create_open() against FUSE_NAME_MAX is not needed, since the\ndentry has already been looked up, and hence the name already checked.\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": "de5f12025572ef8fcffa4be5453061725acfb754",
      "tree": "5d3f54fa7619fd7cc1ddddb037d31b280e3f3dba",
      "parents": [
        "45714d65618407bce1fd0271bc58303ce14b0785"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Jan 06 00:19:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:55 2006 -0800"
      },
      "message": "[PATCH] fuse: add frsize to statfs reply\n\nAdd \u0027frsize\u0027 member to the statfs reply.\n\nI\u0027m not sure if sending f_fsid will ever be needed, but just in case leave\nsome space at the end of the structure, so less compatibility mess would be\nrequired.\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": "7c352bdf048811b8128019ffc1e886161e09c11c",
      "tree": "74c48298b67d37295433d9b2bb08d590a5f97a78",
      "parents": [
        "8254798199332966e2ab647380c990193af7e854"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:48 2005 -0700"
      },
      "message": "[PATCH] FUSE: don\u0027t allow restarting of system calls\n\nThis patch removes ability to interrupt and restart operations while there\nhasn\u0027t been any side-effect.\n\nThe reason: applications.  There are some apps it seems that generate\nsignals at a fast rate.  This means, that if the operation cannot make\nenough progress between two signals, it will be restarted for ever.  This\nbug actually manifested itself with \u0027krusader\u0027 trying to open a file for\nwriting under sshfs.  Thanks to Eduard Czimbalmos for the report.\n\nThe problem can be solved just by making open() uninterruptible, because in\nthis case it was the truncate operation that slowed down the progress.  But\nit\u0027s better to solve this by simply not allowing interrupts at all (except\nSIGKILL), because applications don\u0027t expect file operations to be\ninterruptible anyway.  As an added bonus the code is simplified somewhat.\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": "b36c31ba95f0fe0a03c727300d9c4c54438a5636",
      "tree": "092a83bc7f351bdd66aafee0f59fddba982b4317",
      "parents": [
        "45323fb76465a9576220c7427dbac7b1e7ad3caf"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:38 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:47 2005 -0700"
      },
      "message": "[PATCH] fuse: don\u0027t update file times\n\nDon\u0027t change mtime/ctime/atime to local time on read/write.  Rather invalidate\nfile attributes, so next stat() will force a GETATTR call.  Bug reported by\nBen Grimm.\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": "45323fb76465a9576220c7427dbac7b1e7ad3caf",
      "tree": "5d3e5f9a01cdaf6aaabe38520d5bd5b2d744acd5",
      "parents": [
        "04730fef1f9c7277e5c730b193e681ac095b0507"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:47 2005 -0700"
      },
      "message": "[PATCH] fuse: more flexible caching\n\nMake data caching behavior selectable on a per-open basis instead of\nper-mount.  Compatibility for the old mount options \u0027kernel_cache\u0027 and\n\u0027direct_io\u0027 is retained in the userspace library (version 2.4.0-pre1 or\nlater).\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": "413ef8cb302511d8e995e2b0e5517ee1a65b9c77",
      "tree": "59acb15a73fa0dc4393a086fb83f016105d84b2a",
      "parents": [
        "5a53368277efa2d80dd2206dddc1f4b19ef0c32a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:46 2005 -0700"
      },
      "message": "[PATCH] FUSE - direct I/O\n\nThis patch adds support for the \"direct_io\" mount option of FUSE.\n\nWhen this mount option is specified, the page cache is bypassed for\nread and write operations.  This is useful for example, if the\nfilesystem doesn\u0027t know the size of files before reading them, or when\nany kind of caching is harmful.\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": "5a53368277efa2d80dd2206dddc1f4b19ef0c32a",
      "tree": "decdf01b0019bf3d0f04d3426b8d6e2d18641eb3",
      "parents": [
        "87729a5514e855ce2c71e3e33833a106b8caf2ae"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:46 2005 -0700"
      },
      "message": "[PATCH] fuse: stricter mount option checking\n\nCheck for the presence of all mandatory mount options.\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": "87729a5514e855ce2c71e3e33833a106b8caf2ae",
      "tree": "dd2e7a9fd96b2dd3ebc3951fef2d682e83aa6bb4",
      "parents": [
        "db50b96c0f28a21c5a4a19ecaba12d0972aab06a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:46 2005 -0700"
      },
      "message": "[PATCH] FUSE: tighten check for processes allowed access\n\nThis patch tightens the check for allowing processes to access non-privileged\nmounts.  The rational is that the filesystem implementation can control the\nbehavior or get otherwise unavailable information of the filesystem user.  If\nthe filesystem user process has the same uid, gid, and is not suid or sgid\napplication, then access is safe.  Otherwise access is not allowed unless the\n\"allow_other\" mount option is given (for which policy is controlled by the\nuserspace mount utility).\n\nThanks to everyone linux-fsdevel, especially Martin Mares who helped uncover\nproblems with the previous approach.\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": "db50b96c0f28a21c5a4a19ecaba12d0972aab06a",
      "tree": "d7f2cb99de499c116ce08153a369044af0622c16",
      "parents": [
        "06663267b4b1e85ece73236ea720355668d4f736"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:46 2005 -0700"
      },
      "message": "[PATCH] FUSE - readpages operation\n\nThis patch adds readpages support to FUSE.\n\nWith the help of the readpages() operation multiple reads are bundled\ntogether and sent as a single request to userspace.  This can improve\nreading performace.\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": "1e9a4ed9396e9c31139721b639550ffb1df17065",
      "tree": "213566cf1294f5dd8f6ff62ceb3557b5f5b6c59c",
      "parents": [
        "b6aeadeda22a9aa322fdfcd3f4c69ccf0da5cbdd"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:45 2005 -0700"
      },
      "message": "[PATCH] FUSE - mount options\n\nThis patch adds miscellaneous mount options to the FUSE filesystem.\n\nThe following mount options are added:\n\n o default_permissions:  check permissions with generic_permission()\n o allow_other:          allow other users to access files\n o allow_root:           allow root to access files\n o kernel_cache:         don\u0027t invalidate page cache on open\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": "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": "9e6268db496a2592e89457537ea54a496feabb77",
      "tree": "e01d0d7585886fd318b6f16de9329349a629e3f8",
      "parents": [
        "e5e5558e923f35839108a12718494ecb73fb782f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 09 13:10:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:45 2005 -0700"
      },
      "message": "[PATCH] FUSE - read-write operations\n\nThis patch adds the write filesystem operations of FUSE.\n\nThe following operations are added:\n\n o setattr\n o symlink\n o mknod\n o mkdir\n o create\n o unlink\n o rmdir\n o rename\n o link\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"
    }
  ]
}
