)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "93a8c3cd9e9834dc5f5c373336f3a0065521152d",
      "tree": "ce8731adbf7a2bcd441e8b82d3d932abf94b13df",
      "parents": [
        "a9ff4f87056cd31a8232b88d013dc6c9ad719c18"
      ],
      "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 list of writable files to fuse_inode\n\nEach WRITE request must carry a valid file descriptor.  When a page is written\nback from a memory mapping, the file through which the page was dirtied is not\navailable, so a new mechananism is needed to find a suitable file in\n-\u003ewritepage(s).\n\nA list of fuse_files is added to fuse_inode.  The file is removed from the\nlist in fuse_release().\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"
    },
    {
      "commit": "6ff958edbf39c014eb06b65ad25b736be08c4e63",
      "tree": "f87af1ae11b321cfa38c25378229f25942797385",
      "parents": [
        "17637cbaba592076c221dc045ca78422b4af6290"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:07:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "fuse: add atomic open+truncate support\n\nThis patch allows fuse filesystems to implement open(..., O_TRUNC) as a single\nrequest, instead of separate truncate and open requests.\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": "c79e322f63592c00b25b17af6a1782fad6c6fe6e",
      "tree": "d3cbacb295b82c036553f68f5a060c67ae16bfa3",
      "parents": [
        "1fb69e7817296da8a6824804bb206ca1e7f31425"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:06:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:30 2007 -0700"
      },
      "message": "fuse: add file handle to getattr operation\n\nAdd necessary protocol changes for supplying a file handle with the getattr\noperation.  Step the API version to 7.9.\n\nThis patch doesn\u0027t actually supply the file handle, because that needs some\nkind of VFS support, which we haven\u0027t yet been able to agree upon.\n\n[akpm@linux-foundation.org: coding-style fixes]\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": "1fb69e7817296da8a6824804bb206ca1e7f31425",
      "tree": "51f8ac8ab4f06207a406cb9e917a48d71616235c",
      "parents": [
        "e57ac68378a287d6336d187b26971f35f7ee7251"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:06:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:30 2007 -0700"
      },
      "message": "fuse: fix race between getattr and write\n\nGetattr and lookup operations can be running in parallel to attribute changing\noperations, such as write and setattr.\n\nThis means, that if for example getattr was slower than a write, the cached\nsize attribute could be set to a stale value.\n\nTo prevent this race, introduce a per-filesystem attribute version counter.\nThis counter is incremented whenever cached attributes are modified, and the\nincremented value stored in the inode.\n\nBefore storing new attributes in the cache, getattr and lookup check, using\nthe version number, whether the attributes have been modified during the\nrequest\u0027s lifetime.  If so, the returned attributes are not cached, because\nthey might be stale.\n\nThanks to Jakub Bogusz for the bug report and test program.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Jakub Bogusz \u003cjakub.bogusz@gemius.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e57ac68378a287d6336d187b26971f35f7ee7251",
      "tree": "12b9ae8cc79af2d0100582e6f933aba0f4619663",
      "parents": [
        "42a2b6ad71b011144d21d88a124140bb2bf1023f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Oct 18 03:06:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:29 2007 -0700"
      },
      "message": "fuse: fix allowing operations\n\nThe following operation didn\u0027t check if sending the request was allowed:\n\n  setattr\n  listxattr\n  statfs\n\nSome other operations don\u0027t explicitly do the check, but VFS calls\n-\u003epermission() which checks this.\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": "ebc14c4dbeb56195950058db9aa32de06c22de0d",
      "tree": "479813b230af145fd8c08e24b11c405ef6d4a25c",
      "parents": [
        "244f6385c2891e366a7de5f6746ccc257efd8952"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Oct 16 23:31:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:04 2007 -0700"
      },
      "message": "fuse: fix permission checking on sticky directories\n\nThe VFS checks sticky bits on the parent directory even if the filesystem\ndefines it\u0027s own -\u003epermission().  In some situations (sshfs, mountlo, etc) the\nuser does have permission to delete a file even if the attribute based\nchecking would not allow it.\n\nSo work around this by storing the permission bits separately and returning\nthem in stat(), but cutting the permission bits off from inode-\u003ei_mode.\n\nThis is slightly hackish, but it\u0027s probably not worth it to add new\ninfrastructure in VFS and a slight performance penalty for all filesystems,\njust for the sake of fuse.\n\n[Jan Engelhardt] cosmetic fixes\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: Jan Engelhardt \u003cjengelh@linux01.gwdg.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "074406fa6309ab8b0aca15496b16b3653e58c03d",
      "tree": "5906e18a17a03d71ddbacecdaaa949b2cc3b9169",
      "parents": [
        "b10099792b6276c31cee4c021e0a5d3f9a9e33ed"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Oct 16 23:31:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:04 2007 -0700"
      },
      "message": "fuse: set i_nlink to sane value after mount\n\nAufs seems to depend on a positive i_nlink value.  So fill in a dummy but sane\nvalue for the root inode at mount time.\n\nThe inode attributes are refreshed with the correct values at the first\nopportunity.\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": "b10099792b6276c31cee4c021e0a5d3f9a9e33ed",
      "tree": "c90873999de5936d27b0a10e61c4de3b742bf401",
      "parents": [
        "e00d2c2d4aead747d0fbee99001b00612d1082b0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Oct 16 23:31:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "fuse: fix page invalidation\n\nOther than truncate, there are two cases, when fuse tries to get rid\nof cached pages:\n\n a) in open, if KEEP_CACHE flag is not set\n b) in getattr, if file size changed spontaneously\n\nUntil now invalidate_mapping_pages() were used, which didn\u0027t get rid\nof mapped pages.  This is wrong, and becomes more wrong as dirty pages\nare introduced.  So instead properly invalidate all pages with\ninvalidate_inode_pages2().\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": "e00d2c2d4aead747d0fbee99001b00612d1082b0",
      "tree": "c57228fae55fdb0b91fa6c211431a4ced2435c53",
      "parents": [
        "c756e0a4d79202535774806f148026e40466a5eb"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Oct 16 23:31:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "fuse: truncate on spontaneous size change\n\nMemory mappings were only truncated on an explicit truncate, but not when the\nfile size was changed externally.\n\nFix this by moving the truncation code from fuse_setattr to\nfuse_change_attributes.\n\nYes, there are races between write and and external truncation, but we can\u0027t\nreally do anything about them.\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": "de5e3dec421c44c999071b8f7e0580ad2ade92ae",
      "tree": "c327562a78335346704c382c5b220b13c9208589",
      "parents": [
        "f92b99b9dccb61760b345baf40ed37f59b91f8af"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Oct 16 23:31:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:43:03 2007 -0700"
      },
      "message": "fuse: fix reserved request wake up\n\nUse wake_up_all instead of wake_up in put_reserved_req(), otherwise it is\npossible that the right task is not woken up.\n\nAlso create a separate reserved_req_waitq in addition to the blocked_waitq,\nsince they fulfill totally separate functions.\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": "4ba9b9d0ba0a49d91fa6417c7510ee36f48cf957",
      "tree": "191b4f45f926e44b882b1e87a9a85dc12230b892",
      "parents": [
        "b811c202a0edadaac7242ab834fe7ba409978ae7"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Tue Oct 16 23:25:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "Slab API: remove useless ctor parameter and reorder parameters\n\nSlab constructors currently have a flags parameter that is never used.  And\nthe order of the arguments is opposite to other slab functions.  The object\npointer is placed before the kmem_cache pointer.\n\nConvert\n\n        ctor(void *object, struct kmem_cache *s, unsigned long flags)\n\nto\n\n        ctor(struct kmem_cache *s, void *object)\n\nthroughout the kernel\n\n[akpm@linux-foundation.org: coupla fixes]\nSigned-off-by: Christoph Lameter \u003cclameter@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": "e0bf68ddec4f4f90e5871404be4f1854c17f3120",
      "tree": "36203a3558cbe26d698bed18be69b3822fb5eef2",
      "parents": [
        "dc62a30e274d003a4d08fb888f1520add4b21373"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Oct 16 23:25:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:45 2007 -0700"
      },
      "message": "mm: bdi init hooks\n\nprovide BDI constructor/destructor hooks\n\n[akpm@linux-foundation.org: compile fix]\nSigned-off-by: 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": "20c2df83d25c6a95affe6157a4c9cac4cf5ffaac",
      "tree": "415c4453d2b17a50abe7a3e515177e1fa337bd67",
      "parents": [
        "64fb98fc40738ae1a98bcea9ca3145b89fb71524"
      ],
      "author": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "committer": {
        "name": "Paul Mundt",
        "email": "lethal@linux-sh.org",
        "time": "Fri Jul 20 10:11:58 2007 +0900"
      },
      "message": "mm: Remove slab destructors from kmem_cache_create().\n\nSlab destructors were no longer supported after Christoph\u0027s\nc59def9f222d44bb7e2f0a559f2906191a0862d7 change. They\u0027ve been\nBUGs for both slab and slub, and slob never supported them\neither.\n\nThis rips out support for the dtor pointer from kmem_cache_create()\ncompletely and fixes up every single callsite in the kernel (there were\nabout 224, not including the slab allocator definitions themselves,\nor the documentation references).\n\nSigned-off-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "edad01e2a1c527af3baf22dc6977aeb058881150",
      "tree": "24e89ab655195b2d9bf0379fc92e595b3f041f0c",
      "parents": [
        "da88ba17de990a4b0d18ecde2c40355700888750"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jun 16 10:16:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:15 2007 -0700"
      },
      "message": "fuse: -\u003efs_flags fixlet\n\nfs/fuse/inode.c:658:3: error: Initializer entry defined twice\nfs/fuse/inode.c:661:3:   also defined here\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-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": "ead5f0b5fa41dd3649a44bfc922d06641ff3dbcf",
      "tree": "0e41d72560f57f5427b90fe5f32b8aeddd930ca6",
      "parents": [
        "889f784831d6cc9125a74eb55a5641f95635a204"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed May 23 13:57:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 23 20:14:13 2007 -0700"
      },
      "message": "fuse: delete inode on drop\n\nWhen inode is dropped (no more references) delete it from cache.\n\nThere\u0027s not much point in keeping it cached, when a new lookup will refresh\nthe attributes anyway.\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": "e8edc6e03a5c8562dc70a6d969f732bdb355a7e7",
      "tree": "fc86c863655128a7041dfe613d14393d761fa7b9",
      "parents": [
        "ff1be9ad61e3e17ba83702d8ed0b534e5b8ee15c"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon May 21 01:22:52 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 21 09:18:19 2007 -0700"
      },
      "message": "Detach sched.h from mm.h\n\nFirst thing mm.h does is including sched.h solely for can_do_mlock() inline\nfunction which has \"current\" dereference inside. By dealing with can_do_mlock()\nmm.h can be detached from sched.h which is good. See below, why.\n\nThis patch\na) removes unconditional inclusion of sched.h from mm.h\nb) makes can_do_mlock() normal function in mm/mlock.c\nc) exports can_do_mlock() to not break compilation\nd) adds sched.h inclusions back to files that were getting it indirectly.\ne) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were\n   getting them indirectly\n\nNet result is:\na) mm.h users would get less code to open, read, preprocess, parse, ... if\n   they don\u0027t need sched.h\nb) sched.h stops being dependency for significant number of files:\n   on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,\n   after patch it\u0027s only 3744 (-8.3%).\n\nCross-compile tested on\n\n\tall arm defconfigs, all mips defconfigs, all powerpc defconfigs,\n\talpha alpha-up\n\tarm\n\ti386 i386-up i386-defconfig i386-allnoconfig\n\tia64 ia64-up\n\tm68k\n\tmips\n\tparisc parisc-up\n\tpowerpc powerpc-up\n\ts390 s390-up\n\tsparc sparc-up\n\tsparc64 sparc64-up\n\tum-x86_64\n\tx86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig\n\nas well as my two usual configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a35afb830f8d71ec211531aeb9a621b09a2efb39",
      "tree": "198280081e1f8b2f6c450742a5075cc7904a3d58",
      "parents": [
        "5577bd8a85c8b7643a241789b14fafa9c8a6c7db"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 16 22:10:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu May 17 05:23:04 2007 -0700"
      },
      "message": "Remove SLAB_CTOR_CONSTRUCTOR\n\nSLAB_CTOR_CONSTRUCTOR is always specified. No point in checking it.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven French \u003csfrench@us.ibm.com\u003e\nCc: Michael Halcrow \u003cmhalcrow@us.ibm.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: Anton Altaparmakov \u003caia21@cantab.net\u003e\nCc: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@ucw.cz\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79c0b2df79eb56fc71e54c75cd7fb3acf84370f9",
      "tree": "f19be816fef3565b7f9cc746786e29fee0ac62e6",
      "parents": [
        "880afc4d76af452267174b5989943f081c1db2c0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue May 08 00:25:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:01 2007 -0700"
      },
      "message": "add filesystem subtype support\n\nThere\u0027s a slight problem with filesystem type representation in fuse\nbased filesystems.\n\nFrom the kernel\u0027s view, there are just two filesystem types: fuse and\nfuseblk.  From the user\u0027s view there are lots of different filesystem\ntypes.  The user is not even much concerned if the filesystem is fuse based\nor not.  So there\u0027s a conflict of interest in how this should be\nrepresented in fstab, mtab and /proc/mounts.\n\nThe current scheme is to encode the real filesystem type in the mount\nsource.  So an sshfs mount looks like this:\n\n  sshfs#user@server:/   /mnt/server    fuse   rw,nosuid,nodev,...\n\nThis url-ish syntax works OK for sshfs and similar filesystems.  However\nfor block device based filesystems (ntfs-3g, zfs) it doesn\u0027t work, since\nthe kernel expects the mount source to be a real device name.\n\nA possibly better scheme would be to encode the real type in the type\nfield as \"type.subtype\".  So fuse mounts would look like this:\n\n  /dev/hda1       /mnt/windows   fuseblk.ntfs-3g   rw,...\n  user@server:/   /mnt/server    fuse.sshfs        rw,nosuid,nodev,...\n\nThis patch adds the necessary code to the kernel so that this can be\ncorrectly displayed in /proc/mounts.\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": "50953fe9e00ebbeffa032a565ab2f08312d51a87",
      "tree": "9f95f56f0b51600959a76cd88ce17f6e9c7a98a3",
      "parents": [
        "4b1d89290b62bb2db476c94c82cf7442aab440c8"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:50:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:57 2007 -0700"
      },
      "message": "slab allocators: Remove SLAB_DEBUG_INITIAL flag\n\nI have never seen a use of SLAB_DEBUG_INITIAL.  It is only supported by\nSLAB.\n\nI think its purpose was to have a callback after an object has been freed\nto verify that the state is the constructor state again?  The callback is\nperformed before each freeing of an object.\n\nI would think that it is much easier to check the object state manually\nbefore the free.  That also places the check near the code object\nmanipulation of the object.\n\nAlso the SLAB_DEBUG_INITIAL callback is only performed if the kernel was\ncompiled with SLAB debugging on.  If there would be code in a constructor\nhandling SLAB_DEBUG_INITIAL then it would have to be conditional on\nSLAB_DEBUG otherwise it would just be dead code.  But there is no such code\nin the kernel.  I think SLUB_DEBUG_INITIAL is too problematic to make real\nuse of, difficult to understand and there are easier ways to accomplish the\nsame effect (i.e.  add debug code before kfree).\n\nThere is a related flag SLAB_CTOR_VERIFY that is frequently checked to be\nclear in fs inode caches.  Remove the pointless checks (they would even be\npointless without removeal of SLAB_DEBUG_INITIAL) from the fs constructors.\n\nThis is the last slab flag that SLUB did not support.  Remove the check for\nunimplemented flags from SLUB.\n\nSigned-off-by: Christoph Lameter \u003cclameter@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": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "a5bfffac645a7b2d8119f8bbae34df5c94832799",
      "tree": "20081cd9ae9afebd6899dd35d5d685ed6fca5440",
      "parents": [
        "d354d2f4a6fc1b722c2e464a8b3cfd2f6afb304b"
      ],
      "author": {
        "name": "Timo Savola",
        "email": "tsavola@movial.fi",
        "time": "Sun Apr 08 16:04:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Apr 08 19:47:55 2007 -0700"
      },
      "message": "[PATCH] fuse: validate rootmode mount option\n\nIf rootmode isn\u0027t valid, we hit the BUG() in fuse_init_inode.  Now\nEINVAL is returned.\n\nSigned-off-by: Timo Savola \u003ctsavola@movial.fi\u003e\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": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc0ecff698165ae8e178efa086e0dd1f385206b1",
      "tree": "fc6274f0862bdd6749172201170b2f6a7ce4c4ff",
      "parents": [
        "54bc485522afdac33de5504da2ea8cdcc690674e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Feb 10 01:45:39 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Feb 11 10:51:31 2007 -0800"
      },
      "message": "[PATCH] remove invalidate_inode_pages()\n\nConvert all calls to invalidate_inode_pages() into open-coded calls to\ninvalidate_mapping_pages().\n\nLeave the invalidate_inode_pages() wrapper in place for now, marked as\ndeprecated.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "875d95ec9eb69ffb334116fb44d04d9a64dcbfbb",
      "tree": "7023768e791ca0301446a27e8a63df370ea09f03",
      "parents": [
        "0ec7ca41f6f0f74a394a7d686bc0ee8afef84887"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Dec 06 20:35:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:32 2006 -0800"
      },
      "message": "[PATCH] fuse: fix compile without CONFIG_BLOCK\n\nRandy Dunlap wote:\n\u003e Should FUSE depend on BLOCK?  Without that and with BLOCK\u003dn, I get:\n\u003e\n\u003e inode.c:(.text+0x3acc5): undefined reference to `sb_set_blocksize\u0027\n\u003e inode.c:(.text+0x3a393): undefined reference to `get_sb_bdev\u0027\n\u003e fs/built-in.o:(.data+0xd718): undefined reference to `kill_block_super\n\nMost fuse filesystems work fine without block device support, so I\nthink a better solution is to disable the \u0027fuseblk\u0027 filesystem type if\nBLOCK\u003dn.\n\nSigned-off-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ec7ca41f6f0f74a394a7d686bc0ee8afef84887",
      "tree": "bb4aac390be07d04b484fddc325598f05b498db0",
      "parents": [
        "b2d2272fae1e1df26ec8f93a6d5baea891dcce37"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Dec 06 20:35:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:32 2006 -0800"
      },
      "message": "[PATCH] fuse: add DESTROY operation\n\nAdd a DESTROY operation for block device based filesystems.  With the help of\nthis operation, such a filesystem can flush dirty data to the device\nsynchronously before the umount returns.\n\nThis is needed in situations where the filesystem is assumed to be clean\nimmediately after unmount (e.g.  ejecting removable media).\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": "d809161402e9f99aefe8848c4e701597ac367269",
      "tree": "6763df315027d9db13ce4df1b6f1f66fdf2cd598",
      "parents": [
        "d6392f873f1d09974d5c92c52715fa422ad7c625"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Dec 06 20:35:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:31 2006 -0800"
      },
      "message": "[PATCH] fuse: add blksize option\n\nAdd \u0027blksize\u0027 option for block device based filesystems.  During\ninitialization this is used to set the block size on the device and the super\nblock.  The default block size is 512bytes.\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": "d6392f873f1d09974d5c92c52715fa422ad7c625",
      "tree": "ce94449b7f2a62162fdbef0e4324c2ad8d66adbe",
      "parents": [
        "bdcf25080438ba71bb24b885e7c102de72c25c9d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Wed Dec 06 20:35:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:31 2006 -0800"
      },
      "message": "[PATCH] fuse: add support for block device based filesystems\n\nI never intended this, but people started using fuse to implement block device\nbased \"real\" filesystems (ntfs-3g, zfs).\n\nThe following four patches add better support for these kinds of filesystems.\nUnlike \"normal\" fuse filesystems, using this feature should require superuser\nprivileges (enforced by the fusermount utility).\n\nThanks to Szabolcs Szakacsits for the input and testing.\n\nThis patch adds a \u0027fuseblk\u0027 filesystem type, which is only different from the\n\u0027fuse\u0027 filesystem type in how the \u0027dev_name\u0027 mount argument is interpreted.\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": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d2a85164aaa8d514ef5efbf5d05746e85dd13ddd",
      "tree": "82a10eff007860a9bfc515d037cc2fea6c999bc0",
      "parents": [
        "265126ba9e1f8e217e61d1017c6609f76828aa7a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Oct 17 00:10:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:45 2006 -0700"
      },
      "message": "[PATCH] fuse: fix handling of moved directory\n\nFuse considered it an error (EIO) if lookup returned a directory inode, to\nwhich a dentry already refered.  This is because directory aliases are not\nallowed.\n\nBut in a network filesystem this could happen legitimately, if a directory is\nmoved on a remote client.  This patch attempts to relax the restriction by\ntrying to first evict the offending alias from the cache.  If this fails, it\nstill returns an error (EBUSY).\n\nA rarer situation is if an mkdir races with an indenpendent lookup, which\nfinds the newly created directory already moved.  In this situation the mkdir\nshould return success, but that would be incorrect, since the dentry cannot be\ninstantiated, so return EBUSY.\n\nPreviously checking for a directory alias and instantiation of the dentry\nweren\u0027t done atomically in lookup/mkdir, hence two such calls racing with each\nother could create aliased directories.  To prevent this introduce a new\nper-connection mutex: fuse_conn-\u003einst_mutex, which is taken for instantiations\nwith a directory inode.\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": "265126ba9e1f8e217e61d1017c6609f76828aa7a",
      "tree": "27eeee59ad960f3c31d589caeb69f988bf4e78ce",
      "parents": [
        "8da5ff23ce0a84d9845b01e6fe5047e17836bf5a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Oct 17 00:10:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:45 2006 -0700"
      },
      "message": "[PATCH] fuse: fix spurious BUG\n\nFix a spurious BUG in an unlikely race, where at least three parallel lookups\nreturn the same inode, but with different file type.  This has not yet been\nobserved in real life.\n\nAllowing unlimited retries could delay fuse_iget() indefinitely, but this is\nreally for the broken userspace filesystem to worry about.\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": "8da5ff23ce0a84d9845b01e6fe5047e17836bf5a",
      "tree": "dc711306a3793c91a5df7fc0223738a40ea3fb7c",
      "parents": [
        "7762f5a0b709b415fda132258ad37b9f2a1db994"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Oct 17 00:10:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:45 2006 -0700"
      },
      "message": "[PATCH] fuse: locking fix for nlookup\n\nAn inode could be returned by independent parallel lookups, in this case an\nupdate of the lookup counter could be lost resulting in a memory leak in\nuserspace.\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": "9ffbb9162312fd8113037cb3d94f787f06bbfa9a",
      "tree": "a8194bb542dcda56271b44d7de23f2a72ecac900",
      "parents": [
        "48d1a7ea6373337985f27dc1c707649469df5827"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Tue Oct 17 00:10:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:45 2006 -0700"
      },
      "message": "[PATCH] fuse: fix hang on SMP\n\nFuse didn\u0027t always call i_size_write() with i_mutex held which caused rare\nhangs on SMP/32bit.  This bug has been present since fuse-2.2, well before\nbeing merged into mainline.\n\nThe simplest solution is to protect i_size_write() with the per-connection\nspinlock.  Using i_mutex for this purpose would require some restructuring of\nthe code and I\u0027m not even sure it\u0027s always safe to acquire i_mutex in all\nplaces i_size needs to be set.\n\nSince most of vmtruncate is already duplicated for other reasons, duplicate\nthe remaining part as well, making all i_size_write() calls internal to fuse.\n\nUsing i_size_write() was unnecessary in fuse_init_inode(), since this function\nis only called on a newly created locked inode.\n\nReported by a few people over the years, but special thanks to Dana Henriksen\nwho was persistent enough in helping me debug it.\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": "5b35e8e58a315b16d123e2bc080fcc9981501ac4",
      "tree": "e741e98a2a205b1f76adeb175b8468450fd0d9bf",
      "parents": [
        "d10be6d1bdb0c901b78244872de3cc1c1b6c3fb2"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Fri Sep 29 01:59:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:08 2006 -0700"
      },
      "message": "[PATCH] fuse: use dentry in statfs\n\nSome filesystems may want to report different values depending on the path\nwithin the filesystem, i.e.  one mount is actually several filesystems.  This\ncan be the case for a network filesystem exported by an unprivileged server\n(e.g.  sshfs).\n\nThis is now possible, thanks to David Howells \"VFS: Permit filesystem to\nperform statfs with a known root dentry\" patch.\n\nThis change is backward compatible, so no need to change interface version.\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": "ba52de123d454b57369f291348266d86f4b35070",
      "tree": "3973f3f3c853b5857b6b64a027cadd4fe954e3b9",
      "parents": [
        "577c4eb09d1034d0739e3135fd2cff50588024be"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Wed Sep 27 01:50:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 27 08:26:18 2006 -0700"
      },
      "message": "[PATCH] inode-diet: Eliminate i_blksize from the inode structure\n\nThis eliminates the i_blksize field from struct inode.  Filesystems that want\nto provide a per-inode st_blksize can do so by providing their own getattr\nroutine instead of using the generic_fillattr() function.\n\nNote that some filesystems were providing pretty much random (and incorrect)\nvalues for i_blksize.\n\n[bunk@stusta.de: cleanup]\n[akpm@osdl.org: generic_fillattr() fix]\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\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": "0a0898cf413876d4ed6e371f3e04bf38600a9205",
      "tree": "700c9e87bdd78392bd3fa11f2f976d360b8a5cd2",
      "parents": [
        "685d16ddb07b74537fb18972784e6214840fdd20"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jul 30 03:04:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:43 2006 -0700"
      },
      "message": "[PATCH] fuse: use jiffies_64\n\nIt is entirely possible (though rare) that jiffies half-wraps around, while a\ndentry/inode remains in the cache.  This could mean that the dentry/inode is\nnot invalidated for another half wraparound-time.\n\nTo get around this problem, use 64-bit jiffies.  The only problem with this is\nthat dentry-\u003ed_time is 32 bits on 32-bit archs.  So use d_fsdata as the high\n32 bits.  This is an ugly hack, but far simpler, than having to allocate\nprivate data just for this purpose.\n\nSince 64-bit jiffies can be assumed never to wrap around, simple comparison\ncan be used, and a zero time value can represent \"invalid\".\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": "1d77062b1402aef5b26e1d3776991126e8026bde",
      "tree": "96e4da18878f5fb2ae50b260e194b78803d4c7a9",
      "parents": [
        "25581ad107be24b89d805da51a03d616f8f3d1be",
        "76a9f26c9e40e9c0ed5dc8f0cedd74e733f0088d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:54:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:54:14 2006 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (51 commits)\n  nfs: remove nfs_put_link()\n  nfs-build-fix-99\n  git-nfs-build-fixes\n  Merge branch \u0027odirect\u0027\n  NFS: alloc nfs_read/write_data as direct I/O is scheduled\n  NFS: Eliminate nfs_get_user_pages()\n  NFS: refactor nfs_direct_free_user_pages\n  NFS: remove user_addr, user_count, and pos from nfs_direct_req\n  NFS: \"open code\" the NFS direct write rescheduler\n  NFS: Separate functions for counting outstanding NFS direct I/Os\n  NLM: Fix reclaim races\n  NLM: sem to mutex conversion\n  locks.c: add the fl_owner to nlm_compare_locks\n  NFS: Display the chosen RPCSEC_GSS security flavour in /proc/mounts\n  NFS: Split fs/nfs/inode.c\n  NFS: Fix typo in nfs_do_clone_mount()\n  NFS: Fix compile errors introduced by referrals patches\n  NFSv4: Ensure that referral mounts bind to a reserved port\n  NFSv4: A root pathname is sent as a zero component4\n  NFSv4: Follow a referral\n  ...\n"
    },
    {
      "commit": "9c8ef5614da22666e339b125263d315cfaa89109",
      "tree": "860044f1b2c0c6189143b1c9daf263bd8ff5e5e0",
      "parents": [
        "a4d27e75ffb7b8ecb7eed0c7db0df975525f3fd7"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jun 25 05:48:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:20 2006 -0700"
      },
      "message": "[PATCH] fuse: scramble lock owner ID\n\nVFS uses current-\u003efiles pointer as lock owner ID, and it wouldn\u0027t be\nprudent to expose this value to userspace.  So scramble it with XTEA using\na per connection random key, known only to the kernel.  Only one direction\nneeds to be implemented, since the ID is never sent in the reverse\ndirection.\n\nThe XTEA algorithm is implemented inline since it\u0027s simple enough to do so,\nand this adds less complexity than if the crypto API were used.\n\nThanks to Jesper Juhl for the idea.\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": "a4d27e75ffb7b8ecb7eed0c7db0df975525f3fd7",
      "tree": "2353706a33196438547ed4651afd9f2d81dd96e8",
      "parents": [
        "f9a2842e5612b93fa20a624a8baa6c2a7ecea504"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jun 25 05:48:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:19 2006 -0700"
      },
      "message": "[PATCH] fuse: add request interruption\n\nAdd synchronous request interruption.  This is needed for file locking\noperations which have to be interruptible.  However filesystem may implement\ninterruptibility of other operations (e.g.  like NFS \u0027intr\u0027 mount option).\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": "7142125937e1482ad3ae4366594c6586153dfc86",
      "tree": "8d85908a36485df0c80de2032e7fcfa493621fe4",
      "parents": [
        "bafa96541b250a7051e3fbc5de6e8369daf8ffec"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jun 25 05:48:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:19 2006 -0700"
      },
      "message": "[PATCH] fuse: add POSIX file locking support\n\nThis patch adds POSIX file locking support to the fuse interface.\n\nThis implementation doesn\u0027t keep any locking state in kernel.  Unlocking on\nclose() is handled by the FLUSH message, which now contains the lock owner id.\n\nMandatory locking is not supported.  The filesystem may enfoce mandatory\nlocking in userspace if needed.\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": "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": "51eb01e73599efb88c6c20b1c226d20309a75450",
      "tree": "c37e7a61ce7c049a4615dfb2ee994866d3c85bd6",
      "parents": [
        "3e8c54fad89144b8d63cc41619f363df1ec7cc42"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Sun Jun 25 05:48:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jun 25 10:01:19 2006 -0700"
      },
      "message": "[PATCH] fuse: no backgrounding on interrupt\n\nDon\u0027t put requests into the background when a fatal interrupt occurs while the\nrequest is in userspace.  This removes a major wart from the implementation.\n\nBackgrounding of requests was introduced to allow breaking of deadlocks.\nHowever now the same can be achieved by aborting the filesystem through the\n\u0027abort\u0027 sysfs attribute.\n\nThis is a change in the interface, but should not cause problems, since these\nkinds of deadlocks never happen during normal operation.\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": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "726c334223180e3c0197cc980a432681370d4baf",
      "tree": "8327b354bb3dc959a6606051ae6f8d4d035e38a2",
      "parents": [
        "454e2398be9b9fa30433fccc548db34d19aa9958"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to perform statfs with a known root dentry\n\nGive the statfs superblock operation a dentry pointer rather than a superblock\npointer.\n\nThis complements the get_sb() patch.  That reduced the significance of\nsb-\u003es_root, allowing NFS to place a fake root there.  However, NFS does\nrequire a dentry to use as a target for the statfs operation.  This permits\nthe root in the vfsmount to be used instead.\n\nlinux/mount.h has been added where necessary to make allyesconfig build\nsuccessfully.\n\nInterest has also been expressed for use with the FUSE and XFS filesystems.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "454e2398be9b9fa30433fccc548db34d19aa9958",
      "tree": "1f61cb0c3716a33b661cfc8977e9beeb480a322c",
      "parents": [
        "1ad5544098a69d7dc1fa508cbb17e13a7a952fd8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 23 02:02:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 23 07:42:45 2006 -0700"
      },
      "message": "[PATCH] VFS: Permit filesystem to override root dentry on mount\n\nExtend the get_sb() filesystem operation to take an extra argument that\npermits the VFS to pass in the target vfsmount that defines the mountpoint.\n\nThe filesystem is then required to manually set the superblock and root dentry\npointers.  For most filesystems, this should be done with simple_set_mnt()\nwhich will set the superblock pointer and then set the root dentry to the\nsuperblock\u0027s s_root (as per the old default behaviour).\n\nThe get_sb() op now returns an integer as there\u0027s now no need to return the\nsuperblock pointer.\n\nThis patch permits a superblock to be implicitly shared amongst several mount\npoints, such as can be done with NFS to avoid potential inode aliasing.  In\nsuch a case, simple_set_mnt() would not be called, and instead the mnt_root\nand mnt_sb would be set directly.\n\nThe patch also makes the following changes:\n\n (*) the get_sb_*() convenience functions in the core kernel now take a vfsmount\n     pointer argument and return an integer, so most filesystems have to change\n     very little.\n\n (*) If one of the convenience function is not used, then get_sb() should\n     normally call simple_set_mnt() to instantiate the vfsmount. This will\n     always return 0, and so can be tail-called from get_sb().\n\n (*) generic_shutdown_super() now calls shrink_dcache_sb() to clean up the\n     dcache upon superblock destruction rather than shrink_dcache_anon().\n\n     This is required because the superblock may now have multiple trees that\n     aren\u0027t actually bound to s_root, but that still need to be cleaned up. The\n     currently called functions assume that the whole tree is rooted at s_root,\n     and that anonymous dentries are not the roots of trees which results in\n     dentries being left unculled.\n\n     However, with the way NFS superblock sharing are currently set to be\n     implemented, these assumptions are violated: the root of the filesystem is\n     simply a dummy dentry and inode (the real inode for \u0027/\u0027 may well be\n     inaccessible), and all the vfsmounts are rooted on anonymous[*] dentries\n     with child trees.\n\n     [*] Anonymous until discovered from another tree.\n\n (*) The documentation has been adjusted, including the additional bit of\n     changing ext2_* into foo_* in the documentation.\n\n[akpm@osdl.org: convert ipath_fs, do other stuff]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nCc: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b512d9a88875affe584bb3d2a7a235f84343b9e",
      "tree": "80c46a675aeffaedd8d18e2bb6361768f4f4845a",
      "parents": [
        "5528f911b4c43a5de5da34bcbd7e3f2a62503617"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "message": "VFS: Remove dependency of -\u003eumount_begin() call on MNT_FORCE\n\nAllow filesystems to decide to perform pre-umount processing whether or not\nMNT_FORCE is set.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "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"
    }
  ]
}
