)]}'
{
  "log": [
    {
      "commit": "7f78e0351394052e1a6293e175825eb5c7869507",
      "tree": "76493af33d02bd3f411e69f95b0bcdfff50412b4",
      "parents": [
        "ba0e3427b03c3d1550239779eca5c1c5a53a2152"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sat Mar 02 19:39:14 2013 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Mar 03 19:36:31 2013 -0800"
      },
      "message": "fs: Limit sys_mount to only request filesystem modules.\n\nModify the request_module to prefix the file system type with \"fs-\"\nand add aliases to all of the filesystems that can be built as modules\nto match.\n\nA common practice is to build all of the kernel code and leave code\nthat is not commonly needed as modules, with the result that many\nusers are exposed to any bug anywhere in the kernel.\n\nLooking for filesystems with a fs- prefix limits the pool of possible\nmodules that can be loaded by mount to just filesystems trivially\nmaking things safer with no real cost.\n\nUsing aliases means user space can control the policy of which\nfilesystem modules are auto-loaded by editing /etc/modprobe.d/*.conf\nwith blacklist and alias directives.  Allowing simple, safe,\nwell understood work-arounds to known problematic software.\n\nThis also addresses a rare but unfortunate problem where the filesystem\nname is not the same as it\u0027s module name and module auto-loading\nwould not work.  While writing this patch I saw a handful of such\ncases.  The most significant being autofs that lives in the module\nautofs4.\n\nThis is relevant to user namespaces because we can reach the request\nmodule in get_fs_type() without having any special permissions, and\npeople get uncomfortable when a user specified string (in this case\nthe filesystem type) goes all of the way to request_module.\n\nAfter having looked at this issue I don\u0027t think there is any\nparticular reason to perform any filtering or permission checks beyond\nmaking it clear in the module request that we want a filesystem\nmodule.  The common pattern in the kernel is to call request_module()\nwithout regards to the users permissions.  In general all a filesystem\nmodule does once loaded is call register_filesystem() and go to sleep.\nWhich means there is not much attack surface exposed by loading a\nfilesytem module unless the filesystem is mounted.  In a user\nnamespace filesystems are not mounted unless .fs_flags \u003d FS_USERNS_MOUNT,\nwhich most filesystems do not set today.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReported-by: Kees Cook \u003ckeescook@google.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "6131ffaa1f091415b7a24abb01f033d9c0a727f4",
      "tree": "8983574e9458a5328a30900cb3466e3648421355",
      "parents": [
        "45e09bd51b2be1fbb86c2e3d5bb00d32744f1ecb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 27 16:59:05 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Feb 27 16:59:05 2013 -0500"
      },
      "message": "more file_inode() open-coded instances\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d895cb1af15c04c522a25c79cc429076987c089b",
      "tree": "895dc9157e28f603d937a58be664e4e440d5530c",
      "parents": [
        "9626357371b519f2b955fef399647181034a77fe",
        "d3d009cb965eae7e002ea5badf603ea8f4c34915"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 26 20:16:07 2013 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile (part one) from Al Viro:\n \"Assorted stuff - cleaning namei.c up a bit, fixing -\u003ed_name/-\u003ed_parent\n  locking violations, etc.\n\n  The most visible changes here are death of FS_REVAL_DOT (replaced with\n  \"has -\u003ed_weak_revalidate()\") and a new helper getting from struct file\n  to inode.  Some bits of preparation to xattr method interface changes.\n\n  Misc patches by various people sent this cycle *and* ocfs2 fixes from\n  several cycles ago that should\u0027ve been upstream right then.\n\n  PS: the next vfs pile will be xattr stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)\n  saner proc_get_inode() calling conventions\n  proc: avoid extra pde_put() in proc_fill_super()\n  fs: change return values from -EACCES to -EPERM\n  fs/exec.c: make bprm_mm_init() static\n  ocfs2/dlm: use GFP_ATOMIC inside a spin_lock\n  ocfs2: fix possible use-after-free with AIO\n  ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path\n  get_empty_filp()/alloc_file() leave both -\u003ef_pos and -\u003ef_version zero\n  target: writev() on single-element vector is pointless\n  export kernel_write(), convert open-coded instances\n  fs: encode_fh: return FILEID_INVALID if invalid fid_type\n  kill f_vfsmnt\n  vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op\n  nfsd: handle vfs_getattr errors in acl protocol\n  switch vfs_getattr() to struct path\n  default SET_PERSONALITY() in linux/elf.h\n  ceph: prepopulate inodes only when request is aborted\n  d_hash_and_lookup(): export, switch open-coded instances\n  9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()\n  9p: split dropping the acls from v9fs_set_create_acl()\n  ...\n"
    },
    {
      "commit": "94e07a7590ae855bae0536c42b3086fadc7c83a8",
      "tree": "a34b3acd03dc5da51b3307478dd572fbd6d22880",
      "parents": [
        "182be684784334598eee1d90274e7f7aa0063616"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "namjae.jeon@samsung.com",
        "time": "Sun Feb 17 15:48:11 2013 +0900"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 26 02:46:10 2013 -0500"
      },
      "message": "fs: encode_fh: return FILEID_INVALID if invalid fid_type\n\nThis patch is a follow up on below patch:\n\n[PATCH] exportfs: add FILEID_INVALID to indicate invalid fid_type\ncommit: 216b6cbdcbd86b1db0754d58886b466ae31f5a63\n\nSigned-off-by: Namjae Jeon \u003cnamjae.jeon@samsung.com\u003e\nSigned-off-by: Vivek Trivedi \u003ct.vivek@samsung.com\u003e\nAcked-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nAcked-by: Sage Weil \u003csage@inktank.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "496ad9aa8ef448058e36ca7a787c61f2e63f0f54",
      "tree": "8f4abde793cd7db5bb8fde6d27ebcacd0e54379a",
      "parents": [
        "57eccb830f1cc93d4b506ba306d8dfa685e0c88f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 23 17:07:38 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 22 23:31:31 2013 -0500"
      },
      "message": "new helper: file_inode(file)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "634734b63ac39e137a1c623ba74f3e062b6577db",
      "tree": "65e2414fb7d31005d473719f7158f29bc9ca48d0",
      "parents": [
        "7e98d53086d18c877cb44e9065219335184024de"
      ],
      "author": {
        "name": "Eric Wong",
        "email": "normalperson@yhbt.net",
        "time": "Wed Feb 06 22:29:01 2013 +0000"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Feb 07 14:25:44 2013 +0100"
      },
      "message": "fuse: allow control of adaptive readdirplus use\n\nFor some filesystems (e.g. GlusterFS), the cost of performing a\nnormal readdir and readdirplus are identical.  Since adaptively\nusing readdirplus has no benefit for those systems, give\nusers/filesystems the option to control adaptive readdirplus use.\n\nv2 of this patch incorporates Miklos\u0027s suggestion to simplify the code,\nas well as improving consistency of macro names and documentation.\n\nSigned-off-by: Eric Wong \u003cnormalperson@yhbt.net\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "0415d291022543d83ee799e9ffee08d856bca6e8",
      "tree": "3e2b66aac312f045ffca72e75f90e7055e69ff2e",
      "parents": [
        "dfca7cebc2679f3d129f8e680a8f199a7ad16e38"
      ],
      "author": {
        "name": "Enke Chen",
        "email": "enkechen@yahoo.com",
        "time": "Mon Feb 04 16:14:32 2013 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Feb 04 16:14:32 2013 +0100"
      },
      "message": "fuse: send poll events\n\ncommit 626cf23660 \"poll: add poll_requested_events()...\" enabled us to send the\nrequested events to the filesystem.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "dfca7cebc2679f3d129f8e680a8f199a7ad16e38",
      "tree": "fa519439bec5f96132af4772618f53a30d0a179f",
      "parents": [
        "6a4e922c3db06f7da27e072729e047185c2fba66"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Feb 04 15:57:42 2013 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Feb 04 15:57:42 2013 +0100"
      },
      "message": "fuse: don\u0027t WARN when nlink is zero\n\ndrop_nlink() warns if nlink is already zero.  This is triggerable by a buggy\nuserspace filesystem.  The cure, I think, is worse than the disease so disable\nthe warning.\n\nReported-by: Tero Roponen \u003ctero.roponen@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "6a4e922c3db06f7da27e072729e047185c2fba66",
      "tree": "26d92e82ab982b25b3f115e52a9bf9956003889b",
      "parents": [
        "23c153e54197171f30b889d9654929d74b6599d5"
      ],
      "author": {
        "name": "Eric Wong",
        "email": "normalperson@yhbt.net",
        "time": "Mon Feb 04 13:04:44 2013 +0000"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Feb 04 15:22:23 2013 +0100"
      },
      "message": "fuse: avoid out-of-scope stack access\n\nThe all pointers within fuse_req must point to valid memory once\nfuse_force_forget() returns.\n\nThis bug appeared in \"fuse: implement NFS-like readdirplus support\"\nand was never in any official Linux release.\n\nI tested the fuse_force_forget() code path by injecting to fake -ENOMEM and\nverified the FORGET operation was called properly in userspace.\n\nSigned-off-by: Eric Wong \u003cnormalperson@yhbt.net\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "4582a4ab2a0e7218449fb2e895d0aae9ea753c94",
      "tree": "20e4bf90709bf369665c3261753fcf32ff0d1b78",
      "parents": [
        "c2132c1bc73d9a279cec148f74ea709c960b3d89"
      ],
      "author": {
        "name": "Feng Shuo",
        "email": "steve.shuo.feng@gmail.com",
        "time": "Tue Jan 15 11:23:28 2013 +0800"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 31 17:08:11 2013 +0100"
      },
      "message": "FUSE: Adapt readdirplus to application usage patterns\n\nUse the same adaptive readdirplus mechanism as NFS:\n\nhttp://permalink.gmane.org/gmane.linux.nfs/49299\n\nIf the user space implementation wants to disable readdirplus\ntemporarily, it could just return ENOTSUPP. Then kernel will\nrecall it with readdir.\n\nSigned-off-by: Feng Shuo \u003csteve.shuo.feng@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c2132c1bc73d9a279cec148f74ea709c960b3d89",
      "tree": "46006804ce8e576513e2844c4696593373cf33a4",
      "parents": [
        "fb05f41f5f96f7423c53da4d87913fb44fd0565d"
      ],
      "author": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Mon Jan 14 22:30:00 2013 -0800"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 31 17:08:10 2013 +0100"
      },
      "message": "Do not use RCU for current process credentials\n\nCommit c69e8d9c0 added rcu lock to fuse/dir.c It was assuming\nthat \u0027task\u0027 is some other process but in fact this parameter always\nequals to \u0027current\u0027. Inline this parameter to make it more readable\nand remove RCU lock as it is not needed when access current process\ncredentials.\n\nSigned-off-by: Anatol Pomozov \u003canatol.pomozov@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "fb05f41f5f96f7423c53da4d87913fb44fd0565d",
      "tree": "d3cad72fea5e2b58b8bfa65aa3568e3617507234",
      "parents": [
        "5565a9d884327ac45d49041f1b846dac273e110c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Sat Nov 10 16:55:56 2012 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:28 2013 +0100"
      },
      "message": "fuse: cleanup fuse_direct_io()\n\nFix the following sparse warnings:\n\nfs/fuse/file.c:1216:43: warning: cast removes address space of expression\nfs/fuse/file.c:1216:43: warning: incorrect type in initializer (different address spaces)\nfs/fuse/file.c:1216:43:    expected void [noderef] \u003casn:1\u003e*iov_base\nfs/fuse/file.c:1216:43:    got void *\u003cnoident\u003e\nfs/fuse/file.c:1241:43: warning: cast removes address space of expression\nfs/fuse/file.c:1241:43: warning: incorrect type in initializer (different address spaces)\nfs/fuse/file.c:1241:43:    expected void [noderef] \u003casn:1\u003e*iov_base\nfs/fuse/file.c:1241:43:    got void *\u003cnoident\u003e\nfs/fuse/file.c:1267:43: warning: cast removes address space of expression\nfs/fuse/file.c:1267:43: warning: incorrect type in initializer (different address spaces)\nfs/fuse/file.c:1267:43:    expected void [noderef] \u003casn:1\u003e*iov_base\nfs/fuse/file.c:1267:43:    got void *\u003cnoident\u003e\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "5565a9d884327ac45d49041f1b846dac273e110c",
      "tree": "936c0ec109cc6c92e1264c33d8cde7ace637f97a",
      "parents": [
        "7c190c8b9c0dd373cdd4d96e63306ec6e1a7115d"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:50:36 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:28 2013 +0100"
      },
      "message": "fuse: optimize __fuse_direct_io()\n\n__fuse_direct_io() allocates fuse-requests by calling fuse_get_req(fc, n). The\npatch calculates \u0027n\u0027 based on iov[] array. This is useful because allocating\nFUSE_MAX_PAGES_PER_REQ page pointers and descriptors for each fuse request\nwould be waste of memory in case of iov-s of smaller size.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "7c190c8b9c0dd373cdd4d96e63306ec6e1a7115d",
      "tree": "6814852e3df702e680781928ed5a0a8fae6bb9c9",
      "parents": [
        "b98d023a24496bf7d538c549e5426b1173c6f55d"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:50:29 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:27 2013 +0100"
      },
      "message": "fuse: optimize fuse_get_user_pages()\n\nLet fuse_get_user_pages() pack as many iov-s to a single fuse_req as\npossible. This is very beneficial in case of iov[] consisting of many\niov-s of relatively small sizes (e.g. PAGE_SIZE).\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b98d023a24496bf7d538c549e5426b1173c6f55d",
      "tree": "c465a190fe9997021c09367b22bca5915bd99b25",
      "parents": [
        "d28574e043e8b7cb35482de6e9a553118a32803d"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:50:15 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:27 2013 +0100"
      },
      "message": "fuse: pass iov[] to fuse_get_user_pages()\n\nThe patch makes preliminary work for the next patch optimizing scatter-gather\ndirect IO. The idea is to allow fuse_get_user_pages() to pack as many iov-s\nto each fuse request as possible. So, here we only rework all related\ncall-paths to carry iov[] from fuse_direct_IO() to fuse_get_user_pages().\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "85f40aec887110ae6bbefa87988def4606a3d583",
      "tree": "1408110166343717d8b2710f337882309451b7af",
      "parents": [
        "b2430d7567a376b3685627ca7e9d712f6f27d49b"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:49:33 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:27 2013 +0100"
      },
      "message": "fuse: use req-\u003epage_descs[] for argpages cases\n\nPreviously, anyone who set flag \u0027argpages\u0027 only filled req-\u003epages[] and set\nper-request page_offset. This patch re-works all cases where argpages\u003d1 to\nfill req-\u003epage_descs[] properly.\n\nHaving req-\u003epage_descs[] filled properly allows to re-work fuse_copy_pages()\nto copy page fragments described by req-\u003epage_descs[]. This will be useful\nfor next patches optimizing direct_IO.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b2430d7567a376b3685627ca7e9d712f6f27d49b",
      "tree": "2c59795b27e57f6a0a6c15d0f8aea3aac32f8317",
      "parents": [
        "54b966702dafe396b6f4e609f222b8e0fdb4d7a4"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:49:24 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:27 2013 +0100"
      },
      "message": "fuse: add per-page descriptor \u003coffset, length\u003e to fuse_req\n\nThe ability to save page pointers along with lengths and offsets in fuse_req\nwill be useful to cover several iovec-s with a single fuse_req.\n\nPer-request page_offset is removed because anybody who need it can use\nreq-\u003epage_descs[0].offset instead.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "54b966702dafe396b6f4e609f222b8e0fdb4d7a4",
      "tree": "93f3188bd4c4cf1efc789db244819c8103342436",
      "parents": [
        "d07f09f509fb21482096e1975f160b694c0edf84"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:49:13 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:26 2013 +0100"
      },
      "message": "fuse: rework fuse_do_ioctl()\n\nfuse_do_ioctl() already calculates the number of pages it\u0027s going to use. It is\nstored in \u0027num_pages\u0027 variable. So the patch simply uses it for allocating\nfuse_req.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "d07f09f509fb21482096e1975f160b694c0edf84",
      "tree": "657076e651b8dee622581b754f9e752461bad98d",
      "parents": [
        "f8dbdf81821b5ab4c5e86e7b2bd7edb892c159c2"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:49:00 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:26 2013 +0100"
      },
      "message": "fuse: rework fuse_perform_write()\n\nThe patch allocates as many page pointers in fuse_req as needed to cover\ninterval [pos .. pos+len-1]. Inline helper fuse_wr_pages() is introduced\nto hide this cumbersome arithmetic.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "f8dbdf81821b5ab4c5e86e7b2bd7edb892c159c2",
      "tree": "c44427d2912a4c4245fe19b59f621a4280a07bf3",
      "parents": [
        "4d53dc99baf139e4fa0d395f7658032cc2eb3297"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:48:51 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:26 2013 +0100"
      },
      "message": "fuse: rework fuse_readpages()\n\nThe patch uses \u0027nr_pages\u0027 argument of fuse_readpages() as heuristics for the\nnumber of page pointers to allocate.\n\nThis can be improved further by taking in consideration fc-\u003emax_read and gaps\nbetween page indices, but it\u0027s not clear whether it\u0027s worthy or not.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "4d53dc99baf139e4fa0d395f7658032cc2eb3297",
      "tree": "4709fcfd8631d744abc95195a257b67000e863fa",
      "parents": [
        "b111c8c0e3e5e780ae0758fc4c1c376a7c9d5997"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:48:42 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:26 2013 +0100"
      },
      "message": "fuse: rework fuse_retrieve()\n\nThe patch reworks fuse_retrieve() to allocate only so many page pointers\nas needed. The core part of the patch is the following calculation:\n\n\tnum_pages \u003d (num + offset + PAGE_SIZE - 1) \u003e\u003e PAGE_SHIFT;\n\n(thanks Miklos for formula). All other changes are mostly shuffling lines.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b111c8c0e3e5e780ae0758fc4c1c376a7c9d5997",
      "tree": "cf9485ea3195b9945dc0064906d28ccb8032aa0f",
      "parents": [
        "4250c0668ea10a19f3d37b1733f54ce6c8a37234"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:48:30 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:25 2013 +0100"
      },
      "message": "fuse: categorize fuse_get_req()\n\nThe patch categorizes all fuse_get_req() invocations into two categories:\n - fuse_get_req_nopages(fc) - when caller doesn\u0027t care about req-\u003epages\n - fuse_get_req(fc, n) - when caller need n page pointers (n \u003e 0)\n\nAdding fuse_get_req_nopages() helps to avoid numerous fuse_get_req(fc, 0)\nscattered over code. Now it\u0027s clear from the first glance when a caller need\nfuse_req with page pointers.\n\nThe patch doesn\u0027t make any logic changes. In multi-page case, it silly\nallocates array of FUSE_MAX_PAGES_PER_REQ page pointers. This will be amended\nby future patches.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "4250c0668ea10a19f3d37b1733f54ce6c8a37234",
      "tree": "4f0e6bd382fa5c9cba0d584298c38b19bcdd1841",
      "parents": [
        "0b05b18381eea98c9c9ada95629bf659a88c9374"
      ],
      "author": {
        "name": "Maxim Patlasov",
        "email": "mpatlasov@parallels.com",
        "time": "Fri Oct 26 19:48:07 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:25 2013 +0100"
      },
      "message": "fuse: general infrastructure for pages[] of variable size\n\nThe patch removes inline array of FUSE_MAX_PAGES_PER_REQ page pointers from\nfuse_req. Instead of that, req-\u003epages may now point either to small inline\narray or to an array allocated dynamically.\n\nThis essentially means that all callers of fuse_request_alloc[_nofs] should\npass the number of pages needed explicitly.\n\nThe patch doesn\u0027t make any logic changes.\n\nSigned-off-by: Maxim Patlasov \u003cmpatlasov@parallels.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "0b05b18381eea98c9c9ada95629bf659a88c9374",
      "tree": "a6389eaffda03a2e28cb05be242e03ef839fcb91",
      "parents": [
        "ff7532ca2c631e7e96dcd305a967b610259dc0ea"
      ],
      "author": {
        "name": "Anand V. Avati",
        "email": "avati@redhat.com",
        "time": "Sun Aug 19 08:53:23 2012 -0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 24 16:21:25 2013 +0100"
      },
      "message": "fuse: implement NFS-like readdirplus support\n\nThis patch implements readdirplus support in FUSE, similar to NFS.\nThe payload returned in the readdirplus call contains\n\u0027fuse_entry_out\u0027 structure thereby providing all the necessary inputs\nfor \u0027faking\u0027 a lookup() operation on the spot.\n\nIf the dentry and inode already existed (for e.g. in a re-run of ls -l)\nthen just the inode attributes timeout and dentry timeout are refreshed.\n\nWith a simple client-\u003enetwork-\u003eserver implementation of a FUSE based\nfilesystem, the following performance observations were made:\n\nTest: Performing a filesystem crawl over 20,000 files with\n\nsh# time ls -lR /mnt\n\nWithout readdirplus:\nRun 1: 18.1s\nRun 2: 16.0s\nRun 3: 16.2s\n\nWith readdirplus:\nRun 1: 4.1s\nRun 2: 3.8s\nRun 3: 3.8s\n\nThe performance improvement is significant as it avoided 20,000 upcalls\ncalls (lookup). Cache consistency is no worse than what already is.\n\nSigned-off-by: Anand V. Avati \u003cavati@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "8f706111a860c026bcb0abe0c5936f59c31e5c87",
      "tree": "7a7eb9d6a19410477d97599d085ed1e9eb8bf959",
      "parents": [
        "cdadb11cef1802c1b0228976f08647d276711086"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Thu Oct 18 22:51:25 2012 +0800"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 17 13:09:59 2013 +0100"
      },
      "message": "fuse: remove unused variable in fuse_try_move_page()\n\nThe variables mapping,index are initialized but never used\notherwise, so remove the unused variables.\n\ndpatch engine is used to auto generate this patch.\n(https://github.com/weiyj/dpatch)\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "cdadb11cef1802c1b0228976f08647d276711086",
      "tree": "de52ed4d735f2d73f0a819fbac97b5c3084e2015",
      "parents": [
        "807185eb3e7271d7a1f2c08f3aa1b63dba547d07"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Sat Nov 10 16:55:56 2012 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 17 13:09:47 2013 +0100"
      },
      "message": "fuse: make fuse_file_fallocate() static\n\nFix the following sparse warning:\n\nfs/fuse/file.c:2249:6: warning: symbol \u0027fuse_file_fallocate\u0027 was not declared. Should it be static?\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "807185eb3e7271d7a1f2c08f3aa1b63dba547d07",
      "tree": "c475a2352d5727dcd1c5d8bd009ac5e6d6b6fa0b",
      "parents": [
        "e2560362cc2b39a0567cab510121a7e93dfbe797"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Aug 29 17:51:51 2012 -0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 17 13:08:45 2013 +0100"
      },
      "message": "fuse: Move CUSE Kconfig entry from fs/Kconfig into fs/fuse/Kconfig\n\nGiven that CUSE depends on FUSE, it only makes sense to move its\nKconfig entry into the FUSE Kconfig file.  Also, add a few grammatical\nand semantic touchups.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e2560362cc2b39a0567cab510121a7e93dfbe797",
      "tree": "ef36172bbf41c28c64f645e43a978e4ccb8dd1be",
      "parents": [
        "30783587b0f318b9e2e165f34cf5dfd9425a4904"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jan 15 12:24:46 2013 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 17 13:05:52 2013 +0100"
      },
      "message": "cuse: fix uninitialized variable warnings\n\nFix the following compiler warnings:\n\nfs/fuse/cuse.c: In function \u0027cuse_process_init_reply\u0027:\nfs/fuse/cuse.c:288:24: warning: \u0027val\u0027 may be used uninitialized in this function [-Wmaybe-uninitialized]\nfs/fuse/cuse.c:272:14: note: \u0027val\u0027 was declared here\nfs/fuse/cuse.c:284:10: warning: \u0027key\u0027 may be used uninitialized in this function [-Wmaybe-uninitialized]\nfs/fuse/cuse.c:272:8: note: \u0027key\u0027 was declared here\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "30783587b0f318b9e2e165f34cf5dfd9425a4904",
      "tree": "4aeaf43d76cda5cad2c968214c1efce047f53f71",
      "parents": [
        "8ce03fd76d323526a693d05d85296ef07a387a9f"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sat Nov 17 12:45:48 2012 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 17 13:04:57 2013 +0100"
      },
      "message": "cuse: do not register multiple devices with identical names\n\nSysfs doesn\u0027t allow two devices with the same name, but we register a\nsysfs entry for each cuse device without checking for name collisions.\nThis extends the registration to first check whether the name was already\nregistered.\n\nTo avoid race-conditions between the name-check and linking the device, we\nneed to protect the whole registration with a mutex.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "8ce03fd76d323526a693d05d85296ef07a387a9f",
      "tree": "b1370c17b55e60dfc8faa8b6a8dae2b394199ce9",
      "parents": [
        "dfdebc24837ed0a1d6ad73b108a10d3c88d1b6e8"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sat Nov 17 12:45:47 2012 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Jan 17 13:04:51 2013 +0100"
      },
      "message": "cuse: use mutex as registration lock instead of spinlocks\n\nWe need to check for name-collisions during cuse-device registration. To\navoid race-conditions, this needs to be protected during the whole device\nregistration. Therefore, replace the spinlocks by mutexes first so we can\nsafely extend the locked regions to include more expensive or sleeping\ncode paths.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "848b81415c42ff3dc9a4204749087b015c37ef66",
      "tree": "391da3a73aea48632248220d2d6b8d45a88f7eae",
      "parents": [
        "992956189de58cae9f2be40585bc25105cd7c5ad",
        "6fd59a83b9261fa53eaf98fb5514abba504a3ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 20:58:12 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge misc patches from Andrew Morton:\n \"Incoming:\n\n   - lots of misc stuff\n\n   - backlight tree updates\n\n   - lib/ updates\n\n   - Oleg\u0027s percpu-rwsem changes\n\n   - checkpatch\n\n   - rtc\n\n   - aoe\n\n   - more checkpoint/restart support\n\n  I still have a pile of MM stuff pending - Pekka should be merging\n  later today after which that is good to go.  A number of other things\n  are twiddling thumbs awaiting maintainer merges.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (180 commits)\n  scatterlist: don\u0027t BUG when we can trivially return a proper error.\n  docs: update documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e fanotify output\n  fs, fanotify: add @mflags field to fanotify output\n  docs: add documentation about /proc/\u003cpid\u003e/fdinfo/\u003cfd\u003e output\n  fs, notify: add procfs fdinfo helper\n  fs, exportfs: add exportfs_encode_inode_fh() helper\n  fs, exportfs: escape nil dereference if no s_export_op present\n  fs, epoll: add procfs fdinfo helper\n  fs, eventfd: add procfs fdinfo helper\n  procfs: add ability to plug in auxiliary fdinfo providers\n  tools/testing/selftests/kcmp/kcmp_test.c: print reason for failure in kcmp_test\n  breakpoint selftests: print failure status instead of cause make error\n  kcmp selftests: print fail status instead of cause make error\n  kcmp selftests: make run_tests fix\n  mem-hotplug selftests: print failure status instead of cause make error\n  cpu-hotplug selftests: print failure status instead of cause make error\n  mqueue selftests: print failure status instead of cause make error\n  vm selftests: print failure status instead of cause make error\n  ubifs: use prandom_bytes\n  mtd: nandsim: use prandom_bytes\n  ...\n"
    },
    {
      "commit": "965c8e59cfcf845ecde2265a1d1bfee5f011d302",
      "tree": "22758a99b4ecb475750966d5202200dc0e89876c",
      "parents": [
        "c0f041602c33bae10b8e321c49024490d03ced3d"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Mon Dec 17 15:59:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 17 17:15:12 2012 -0800"
      },
      "message": "lseek: the \"whence\" argument is called \"whence\"\n\nBut the kernel decided to call it \"origin\" instead.  Fix most of the\nsites.\n\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "499dcf2024092e5cce41d05599a5b51d1f92031a",
      "tree": "868a90dc3d2e21276dedc34be6ef57a46ad62965",
      "parents": [
        "45634cd8cb6541523227753944c7417ac3d20f94"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 16:26:03 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Nov 14 22:05:33 2012 -0800"
      },
      "message": "userns: Support fuse interacting with multiple user namespaces\n\nUse kuid_t and kgid_t in struct fuse_conn and struct fuse_mount_data.\n\nThe connection between between a fuse filesystem and a fuse daemon is\nestablished when a fuse filesystem is mounted and provided with a file\ndescriptor the fuse daemon created by opening /dev/fuse.\n\nFor now restrict the communication of uids and gids between the fuse\nfilesystem and the fuse daemon to the initial user namespace.  Enforce\nthis by verifying the file descriptor passed to the mount of fuse was\nopened in the initial user namespace.  Ensuring the mount happens in\nthe initial user namespace is not necessary as mounts from non-initial\nuser namespaces are not yet allowed.\n\nIn fuse_req_init_context convert the currrent fsuid and fsgid into the\ninitial user namespace for the request that will be sent to the fuse\ndaemon.\n\nIn fuse_fill_attr convert the uid and gid passed from the fuse daemon\nfrom the initial user namespace into kuids and kgids.\n\nIn iattr_to_fattr called from fuse_setattr convert kuids and kgids\ninto the uids and gids in the initial user namespace before passing\nthem to the fuse filesystem.\n\nIn fuse_change_attributes_common called from fuse_dentry_revalidate,\nfuse_permission, fuse_geattr, and fuse_setattr, and fuse_iget convert\nthe uid and gid from the fuse daemon into a kuid and a kgid to store\non the fuse inode.\n\nBy default fuse mounts are restricted to task whose uid, suid, and\neuid matches the fuse user_id and whose gid, sgid, and egid matches\nthe fuse group id.  Convert the user_id and group_id mount options\ninto kuids and kgids at mount time, and use uid_eq and gid_eq to\ncompare the in fuse_allow_task.\n\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "0b173bc4daa8f8ec03a85abf5e47b23502ff80af",
      "tree": "173d0523555e02a077e0af4563bd4cadea46cb23",
      "parents": [
        "4b6e1e37026ec7dae9b23d78ffcebdd5ddb1bfa1"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:17 2012 +0900"
      },
      "message": "mm: kill vma flag VM_CAN_NONLINEAR\n\nMove actual pte filling for non-linear file mappings into the new special\nvma operation: -\u003eremap_pages().\n\nFilesystems must implement this method to get non-linear mapping support,\nif it uses filemap_fault() then generic_file_remap_pages() can be used.\n\nNow device drivers can implement this method and obtain nonlinear vma support.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\t#arch/tile\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c0a85377048b64c880e76ec7368904fe46d0b94",
      "tree": "12e075f4159e88b09a89e35866017f82f80bcc7d",
      "parents": [
        "99621b44aa194eab594e1f17217231c02b519211"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Sep 26 11:33:07 2012 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 02 21:35:55 2012 -0400"
      },
      "message": "fs: push rcu_barrier() from deactivate_locked_super() to filesystems\n\nThere\u0027s no reason to call rcu_barrier() on every\ndeactivate_locked_super().  We only need to make sure that all delayed rcu\nfree inodes are flushed before we destroy related cache.\n\nRemoving rcu_barrier() from deactivate_locked_super() affects some fast\npaths.  E.g.  on my machine exit_group() of a last process in IPC\nnamespace takes 0.07538s.  rcu_barrier() takes 0.05188s of that time.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "cb0942b81249798e15c3f04eee2946ef543e8115",
      "tree": "7d494c580a847342577661782c5173f76178aa81",
      "parents": [
        "cecb46f194460d23cacf3b13593f9f5a4f7a0fed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 27 14:48:26 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Sep 26 21:10:25 2012 -0400"
      },
      "message": "make get_file() return its argument\n\nsimplifies a bunch of callers...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c9e67d483776d8d2a5f3f70491161b205930ffe1",
      "tree": "c2c76f9ac0891670c37079c6467505c56815fcd1",
      "parents": [
        "381bf7cad9dbce701c618f8942fd35954952ef39"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Sep 04 18:45:54 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Sep 04 18:45:54 2012 +0200"
      },
      "message": "fuse: fix retrieve length\n\nIn some cases fuse_retrieve() would return a short byte count if offset was\nnon-zero.  The data returned was correct, though.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "381bf7cad9dbce701c618f8942fd35954952ef39",
      "tree": "11da5214a5b7325df57028eda31fde3d1739a6db",
      "parents": [
        "8d39d801d64658d7d69e4754f287a71e9f9bbcb8"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "zonque@gmail.com",
        "time": "Tue Aug 28 10:38:03 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Sep 03 17:44:06 2012 +0200"
      },
      "message": "fuse: mark variables uninitialized\n\ngcc 4.6.3 complains about uninitialized variables in fs/fuse/control.c:\n\n  CC      fs/fuse/control.o\nfs/fuse/control.c: In function \u0027fuse_conn_congestion_threshold_write\u0027:\nfs/fuse/control.c:165:29: warning: \u0027val\u0027 may be used uninitialized in this function [-Wuninitialized]\nfs/fuse/control.c: In function \u0027fuse_conn_max_background_write\u0027:\nfs/fuse/control.c:128:23: warning: \u0027val\u0027 may be used uninitialized in this function [-Wuninitialized]\n\nfuse_conn_limit_write() will always return non-zero unless the \u0026val\nis modified, so the warning is misleading. Let the compiler know\nabout it by marking \u0027val\u0027 with \u0027uninitialized_var\u0027.\n\nSigned-off-by: Daniel Mack \u003czonque@gmail.com\u003e\nCc: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "8d39d801d64658d7d69e4754f287a71e9f9bbcb8",
      "tree": "22550a9179212937352ab45763c41aa8119f18fc",
      "parents": [
        "bbd99797973f2cebd905bf6469ce08b531ab258f"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Aug 30 19:24:35 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Aug 30 19:24:35 2012 +0200"
      },
      "message": "cuse: kill connection on initialization error\n\nLuca Risolia reported that a CUSE daemon will continue to run even if\ninitialization of the emulated device failes for some reason (e.g. the device\nnumber is already registered by another driver).\n\nThis patch disconnects the fuse device on error, which will make the userspace\nCUSE daemon exit, albeit without indication about what the problem was.\n\nReported-by: Luca Risolia \u003cluca.risolia@studio.unibo.it\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "bbd99797973f2cebd905bf6469ce08b531ab258f",
      "tree": "7df386d3b784415f11f242f162499bb23ee5f5de",
      "parents": [
        "fea7a08acb13524b47711625eebea40a0ede69a0"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Aug 30 19:24:34 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Aug 30 19:24:34 2012 +0200"
      },
      "message": "cuse: fix fuse_conn_kill()\n\nfuse_conn_kill() removed fc-\u003eentry, called fuse_ctl_remove_conn() and\nfuse_bdi_destroy().  None of which is appropriate for cuse cleanup.\n\nThe fuse_ctl_remove_conn() decrements the nlink on the control filesystem, which\nis totally bogus.  The others are harmless but unnecessary.\n\nSo move these out from fuse_conn_kill() to fuse_put_super() where they belong.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "20fb1936dee63fe397236d4ff3fd253a62b7b0b8",
      "tree": "bbabde4f08ec8388549083df426fdcc6ffd2f82a",
      "parents": [
        "1ce41cd849d476f45b2dccaf40b39fe6c4f8d793",
        "62b2ce964bb901f00a480104bd35a2e1f8d2cf58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 18 10:02:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 18 10:02:17 2012 -0700"
      },
      "message": "Merge branch \u0027vfs-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs\n\nPull vfs fixes from Miklos Szeredi.\n\nThis mainly fixes some confusion about whether the open \u0027mode\u0027 variable\npassed around should contain the full file type (S_IFREG etc)\ninformation or just the permission mode.  In particular, the lack of\nproper file type information had confused fuse.\n\n* \u0027vfs-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:\n  vfs: fix propagation of atomic_open create error on negative dentry\n  fuse: check create mode in atomic open\n  vfs: pass right create mode to may_o_create()\n  vfs: atomic_open(): fix create mode usage\n  vfs: canonicalize create mode in build_open_flags()\n"
    },
    {
      "commit": "2eac9eb8a2e64cbfcc300e9a8098edf424c1d16c",
      "tree": "f3c4b8f25e2d25915e14ced10db661cae1341807",
      "parents": [
        "ad54e461137765aaf090eb7f54c3b51fc0ad5d62",
        "fb6ccff667712c46b4501b920ea73a326e49626a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 16 11:46:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 16 11:46:31 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\nPull fuse updates from Miklos Szeredi.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: verify all ioctl retry iov elements\n  fuse: add missing INIT flag descriptions\n  fuse: add missing INIT flags\n  fuse: update attributes on aio_read\n  fuse: invalidate inode mapping if mtime changes\n  fuse: add FUSE_AUTO_INVAL_DATA init flag\n"
    },
    {
      "commit": "af109bca94a8a223c4632a4ff769b3419fe7ed8c",
      "tree": "087998c103fe8374b8617b98401dc8d284939191",
      "parents": [
        "38227f78a5020b3100cbb0406c89807563b10dae"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Aug 15 13:01:24 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Aug 15 13:01:24 2012 +0200"
      },
      "message": "fuse: check create mode in atomic open\n\nVerify that the VFS is passing us a complete create mode with the S_IFREG to\natomic open.\n\nReported-by: Steve \u003csteveamigauk@yahoo.co.uk\u003e\nReported-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Richard W.M. Jones \u003crjones@redhat.com\u003e\n"
    },
    {
      "commit": "fb6ccff667712c46b4501b920ea73a326e49626a",
      "tree": "f8fa90871e06797a09dd886a2dacf26b199ea667",
      "parents": [
        "f3840dc0fb57aef120c5ee8241cdc9aaf3cec8d4"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zab@redhat.com",
        "time": "Tue Jul 24 12:10:11 2012 -0700"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Aug 06 18:19:24 2012 +0200"
      },
      "message": "fuse: verify all ioctl retry iov elements\n\nCommit 7572777eef78ebdee1ecb7c258c0ef94d35bad16 attempted to verify that\nthe total iovec from the client doesn\u0027t overflow iov_length() but it\nonly checked the first element.  The iovec could still overflow by\nstarting with a small element.  The obvious fix is to check all the\nelements.\n\nThe overflow case doesn\u0027t look dangerous to the kernel as the copy is\nlimited by the length after the overflow.  This fix restores the\nintention of returning an error instead of successfully copying less\nthan the iovec represented.\n\nI found this by code inspection.  I built it but don\u0027t have a test case.\nI\u0027m cc:ing stable because the initial commit did as well.\n\nSigned-off-by: Zach Brown \u003czab@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: \u003cstable@vger.kernel.org\u003e         [2.6.37+]\n"
    },
    {
      "commit": "58ef6a75c38e9faa7d19bb7d7b45fe0df02e8621",
      "tree": "20ce3f91f26f65e7c92f7c000188e0b052b879c0",
      "parents": [
        "39263d5e71d0fad09eab0d855a9407ad2af8378c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jun 12 16:20:42 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 09:45:50 2012 +0400"
      },
      "message": "fuse: Convert to new freezing mechanism\n\nConvert check in fuse_file_aio_write() to using new freeze protection.\n\nCC: fuse-devel@lists.sourceforge.net\nCC: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "69fe05c90ed58aac956dccb9e6d3a325fb3b8767",
      "tree": "70dd231ba0ba3b635642f67ea2be103f2ffc237b",
      "parents": [
        "a8894274a3581125fb311eabfc97cd0123740c5e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 18 16:09:40 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 18 16:09:40 2012 +0200"
      },
      "message": "fuse: add missing INIT flags\n\nAdd missing flags that userspace derived from the protocol version number.  This\nmakes the protocol more flexible.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "a8894274a3581125fb311eabfc97cd0123740c5e",
      "tree": "5d229b3f11b1e9800b95f47bdd1570c2b40e7675",
      "parents": [
        "eed2179efe1aac145bf6d54b925b750976380fa6"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Jul 16 15:23:50 2012 -0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 18 16:09:40 2012 +0200"
      },
      "message": "fuse: update attributes on aio_read\n\nA fuse-based network filesystem might allow for the inode\nand/or file data to change unexpectedly. A local client\nthat opens and repeatedly reads a file might never pick\nup on such changes and indefinitely return stale data.\n\nAlways invoke fuse_update_attributes() in the read path\nto cause an attr revalidation when the attributes expire.\nThis leads to a page cache invalidation if necessary and\nensures fuse issues new read requests to the fuse client.\n\nThe original logic (reval only on reads beyond EOF) is\npreserved unless the client specifies FUSE_AUTO_INVAL_DATA\non init.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "eed2179efe1aac145bf6d54b925b750976380fa6",
      "tree": "b266220b26632c699a858b66c3d7b9ebc5853289",
      "parents": [
        "72d0d248ca8232dbd30d35b42d0d86e39b3e322b"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Jul 16 15:23:49 2012 -0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 18 16:09:40 2012 +0200"
      },
      "message": "fuse: invalidate inode mapping if mtime changes\n\nWe currently invalidate the inode address space mapping\nif the file size changes unexpectedly. In the case of a\nfuse network filesystem, a portion of a file could be\noverwritten remotely without changing the file size.\nCompare the old mtime as well to detect this condition\nand invalidate the mapping if the file has been updated.\n\nThe original logic (to ignore changes in mtime) is\npreserved unless the client specifies FUSE_AUTO_INVAL_DATA\non init.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "72d0d248ca8232dbd30d35b42d0d86e39b3e322b",
      "tree": "b186ec7e6c19540660631fd2e169494657882b1d",
      "parents": [
        "84a1caf1453c3d44050bd22db958af4a7f99315c"
      ],
      "author": {
        "name": "Brian Foster",
        "email": "bfoster@redhat.com",
        "time": "Mon Jul 16 15:23:48 2012 -0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 18 16:09:40 2012 +0200"
      },
      "message": "fuse: add FUSE_AUTO_INVAL_DATA init flag\n\nFUSE_AUTO_INVAL_DATA is provided to enable updated/auto cache\ninvalidation logic.\n\nSigned-off-by: Brian Foster \u003cbfoster@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "ebfc3b49a7ac25920cb5be5445f602e51d2ea559",
      "tree": "c3241f875dd04ab9f63b4e7ded7ed206e4df1b9f",
      "parents": [
        "72bd866a01fc62ccbc466f3eb7599b14c937e96b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 18:05:36 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:47 2012 +0400"
      },
      "message": "don\u0027t pass nameidata to -\u003ecreate()\n\nboolean \"does it have to be exclusive?\" flag is passed instead;\nLocal filesystem should just ignore it - the object is guaranteed\nnot to be there yet.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "00cd8dd3bf95f2cc8435b4cac01d9995635c6d0b",
      "tree": "d44be476ced0317ae79f28853734ebe2210ad38e",
      "parents": [
        "201f956e43d4542723514e024d948011dd766d43"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 17:13:09 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:32 2012 +0400"
      },
      "message": "stop passing nameidata to -\u003elookup()\n\nJust the flags; only NFS cares even about that, but there are\nlegitimate uses for such argument.  And getting rid of that\ncompletely would require splitting -\u003elookup() into a couple\nof methods (at least), so let\u0027s leave that alone for now...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0b728e1911cbe6e24020727c3870628b9653f32a",
      "tree": "cd975921b28300d62f3aca2fc37eef28af89b959",
      "parents": [
        "fa3c56bbda6c2ac2a57d96ba501dbe85cccd312b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 16:03:43 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:34:14 2012 +0400"
      },
      "message": "stop passing nameidata * to -\u003ed_revalidate()\n\nJust the lookup flags.  Die, bastard, die...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e45198a6ac24bd2c4ad4a43b670c2f1a23dd2df3",
      "tree": "d44f4217a8a556ac9ebb11cfc41c0e148fb1084c",
      "parents": [
        "2675a4eb6a9f1240098721c8a84ede28abd9d7b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 06:48:09 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:33:45 2012 +0400"
      },
      "message": "make finish_no_open() return int\n\nnamely, 1 ;-)  That\u0027s what we want to return from -\u003eatomic_open()\ninstances after finish_no_open().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "30d904947459cca2beb69e0110716f5248b31f2a",
      "tree": "024e2a913266377d234147b14b7eb37017546173",
      "parents": [
        "a4a3bdd778715999ddfeefdc52ab76254580fa76"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 22 12:40:19 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:33:39 2012 +0400"
      },
      "message": "kill struct opendata\n\nJust pass struct file *.  Methods are happier that way...\nThere\u0027s no need to return struct file * from finish_open() now,\nso let it return int.  Next: saner prototypes for parts in\nnamei.c\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d95852777bc8ba6b3ad3397d495c5f9dd8ca8383",
      "tree": "96e9d8b1d33c4f6f7b5ba5be0fa4fd8f77c7a67f",
      "parents": [
        "3d8a00d2099ebc6d5a6e95fadaf861709d9919a8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 22 12:39:14 2012 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:33:35 2012 +0400"
      },
      "message": "make -\u003eatomic_open() return int\n\nChange of calling conventions:\nold\t\tnew\nNULL\t\t1\nfile\t\t0\nERR_PTR(-ve)\t-ve\n\nCaller *knows* that struct file *; no need to return it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "47237687d73cbeae1dd7a133c3fc3d7239094568",
      "tree": "1d267d03246f0a16cbff3c8221ee69dd1521f835",
      "parents": [
        "a8277b9baa6268de386529a33061775bc716198b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 10 05:01:45 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:33:31 2012 +0400"
      },
      "message": "-\u003eatomic_open() prototype change - pass int * instead of bool *\n\n... and let finish_open() report having opened the file via that sucker.\nNext step: don\u0027t modify od-\u003efilp at all.\n\n[AV: FILE_CREATE was already used by cifs; Miklos\u0027 fix folded]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c8ccbe032feb127a977c66865cb63d72d9a6e08b",
      "tree": "c8f4ebff9ae19a49634a8ade2cf3d3372091e970",
      "parents": [
        "eda72afb9ef9f45941fb09260c0f268ff81ec40d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Jun 05 15:10:22 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:33:14 2012 +0400"
      },
      "message": "fuse: implement i_op-\u003eatomic_open()\n\nAdd an -\u003eatomic_open implementation which replaces the atomic open+create\noperation implemented via -\u003ecreate.  No functionality is changed.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b3d9b7a3c752dc4b6976a4ff7b8298887a5b734d",
      "tree": "ce0d4c84328890dd63c9c4cb3e281b6b3476f85f",
      "parents": [
        "9f713878f22e0b2d34d62df0ca55f65166375634"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 09 13:51:19 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 14 16:32:55 2012 +0400"
      },
      "message": "vfs: switch i_dentry/d_alias to hlist\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f9ba7179ce91fb77b2adf6eaab3676ab3a1f5a15",
      "tree": "2d02e7a4fd78083b78749d0c9c7466f0eb8e6f97",
      "parents": [
        "0b3e9f3f21c42d064f5f4088df4088e3d55755eb",
        "203627bbc90377c509e32450c67c5d957ba2d989"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 05 10:11:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 05 10:11:11 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\nPull fuse updates from Miklos Szeredi.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: fix blksize calculation\n  fuse: fix stat call on 32 bit platforms\n  fuse: optimize fallocate on permanent failure\n  fuse: add FALLOCATE operation\n  fuse: Convert to kstrtoul_from_user\n"
    },
    {
      "commit": "c3b2da314834499f34cba94f7053e55f6d6f92d8",
      "tree": "7012b569ee9e0781761a8eb388190979441583c7",
      "parents": [
        "033369d1af1264abc23bea2e174aa47cdd212f6f"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 26 09:59:21 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 12:07:25 2012 -0400"
      },
      "message": "fs: introduce inode operation -\u003eupdate_time\n\nBtrfs has to make sure we have space to allocate new blocks in order to modify\nthe inode, so updating time can fail.  We\u0027ve gotten around this by having our\nown file_update_time but this is kind of a pain, and Christoph has indicated he\nwould like to make xfs do something different with atime updates.  So introduce\n-\u003eupdate_time, where we will deal with i_version an a/m/c time updates and\nindicate which changes need to be made.  The normal version just does what it\nhas always done, updates the time and marks the inode dirty, and then\nfilesystems can choose to do something different.\n\nI\u0027ve gone through all of the users of file_update_time and made them check for\nerrors with the exception of the fault code since it\u0027s complicated and I wasn\u0027t\nquite sure what to do there, also Jan is going to be pushing the file time\nupdates into page_mkwrite for those who have it so that should satisfy btrfs and\nmake it not a big deal to check the file_update_time() return code in the\ngeneric fault path. Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n"
    },
    {
      "commit": "b0b0382bb4904965a9e9fca77ad87514dfda0d1c",
      "tree": "dc46873fa74e0d194e4a2571b16f0767e1919ae8",
      "parents": [
        "6d42e7e9f6d86ed4dfacde75a6cf515068f9749c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Apr 02 14:34:06 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue May 29 23:28:33 2012 -0400"
      },
      "message": "-\u003eencode_fh() API change\n\npass inode + parent\u0027s inode or NULL instead of dentry + bool saying\nwhether we want the parent or not.\n\nNOTE: that needs ceph fix folded in.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90324cc1b11a211e37eabd8cb863e1a1561d6b1d",
      "tree": "c8b79c6850420a114ca6660c1b44fc486b1ba86d",
      "parents": [
        "fb8b00675eb6462aacab56bca31ed6107bda5314",
        "169ebd90131b2ffca74bb2dbe7eeacd39fb83714"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 28 09:54:45 2012 -0700"
      },
      "message": "Merge tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux\n\nPull writeback tree from Wu Fengguang:\n \"Mainly from Jan Kara to avoid iput() in the flusher threads.\"\n\n* tag \u0027writeback\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:\n  writeback: Avoid iput() from flusher thread\n  vfs: Rename end_writeback() to clear_inode()\n  vfs: Move waiting for inode writeback from end_writeback() to evict_inode()\n  writeback: Refactor writeback_single_inode()\n  writeback: Remove wb-\u003elist_lock from writeback_single_inode()\n  writeback: Separate inode requeueing after writeback\n  writeback: Move I_DIRTY_PAGES handling\n  writeback: Move requeueing when I_SYNC set to writeback_sb_inodes()\n  writeback: Move clearing of I_SYNC into inode_sync_complete()\n  writeback: initialize global_dirty_limit\n  fs: remove 8 bytes of padding from struct writeback_control on 64 bit builds\n  mm: page-writeback.c: local functions should not be exposed globally\n"
    },
    {
      "commit": "203627bbc90377c509e32450c67c5d957ba2d989",
      "tree": "69fbf5d277641ae3cb496e9afa64550f6b3c3a3f",
      "parents": [
        "45c72cd73c788dd18c8113d4a404d6b4a01decf1"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu May 10 19:49:38 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 14 17:12:56 2012 +0200"
      },
      "message": "fuse: fix blksize calculation\n\nDon\u0027t use inode-\u003ei_blkbits which might be stale, instead calculate the blksize\ninformation from the freshly obtained attributes.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "45c72cd73c788dd18c8113d4a404d6b4a01decf1",
      "tree": "49e28ba927e9485b6feadad7b60ec05d9bb6cff7",
      "parents": [
        "519c6040ce04474bc893774f866fd8d907b20429"
      ],
      "author": {
        "name": "Pavel Shilovsky",
        "email": "piastry@etersoft.ru",
        "time": "Thu May 10 19:49:38 2012 +0400"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon May 14 17:06:42 2012 +0200"
      },
      "message": "fuse: fix stat call on 32 bit platforms\n\nNow we store attr-\u003eino at inode-\u003ei_ino, return attr-\u003eino at the\nfirst time and then return inode-\u003ei_ino if the attribute timeout\nisn\u0027t expired. That\u0027s wrong on 32 bit platforms because attr-\u003eino\nis 64 bit and inode-\u003ei_ino is 32 bit in this case.\n\nFix this by saving 64 bit ino in fuse_inode structure and returning\nit every time we call getattr. Also squash attr-\u003eino into inode-\u003ei_ino\nexplicitly.\n\nSigned-off-by: Pavel Shilovsky \u003cpiastry@etersoft.ru\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "dbd5768f87ff6fb0a4fe09c4d7b6c4a24de99430",
      "tree": "42ea94ea733538f797aa745945fc43c4d1b89217",
      "parents": [
        "7994e6f7254354e03028a11f98a27bd67dace9f1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 03 14:48:02 2012 +0200"
      },
      "committer": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Sun May 06 13:43:41 2012 +0800"
      },
      "message": "vfs: Rename end_writeback() to clear_inode()\n\nAfter we moved inode_sync_wait() from end_writeback() it doesn\u0027t make sense\nto call the function end_writeback() anymore. Rename it to clear_inode()\nwhich well says what the function really does - set I_CLEAR flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\n"
    },
    {
      "commit": "519c6040ce04474bc893774f866fd8d907b20429",
      "tree": "0e114d545be1bc2c432f6256edfc28206a835d1e",
      "parents": [
        "05ba1f0823004e947748523782e9c2f07f3bff0d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 26 10:56:36 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Thu Apr 26 10:56:36 2012 +0200"
      },
      "message": "fuse: optimize fallocate on permanent failure\n\nIf userspace filesystem doesn\u0027t support fallocate, remember this and don\u0027t send\nrequest next time.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "05ba1f0823004e947748523782e9c2f07f3bff0d",
      "tree": "3ec44b97f0725b0b9045152c31802a66aa62aec2",
      "parents": [
        "e2690695ce5085677b84fbf2e38d2ed57cad39cd"
      ],
      "author": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Sun Apr 22 18:45:24 2012 -0700"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 25 12:25:05 2012 +0200"
      },
      "message": "fuse: add FALLOCATE operation\n\nfallocate filesystem operation preallocates media space for the given file.\nIf fallocate returns success then any subsequent write to the given range\nnever fails with \u0027not enough space\u0027 error.\n\nSigned-off-by: Anatol Pomozov \u003canatol.pomozov@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e2690695ce5085677b84fbf2e38d2ed57cad39cd",
      "tree": "3e9f852e1590d15057bd46ec7cd640db27b04257",
      "parents": [
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Sun Apr 15 02:20:27 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 25 12:25:05 2012 +0200"
      },
      "message": "fuse: Convert to kstrtoul_from_user\n\nThis patch replaces the code for getting an number from a\nuserspace buffer by a simple call to kstroul_from_user.\nThis makes it easier to read and less error prone.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "dbfad21422f8d2c0866185b3e449c4a6ebaec4e2",
      "tree": "a30de27f59ddce92ba9b950d5bb1b20ff23191b4",
      "parents": [
        "743e89ebc0215900040b1c2d1563d70a22ac2cb0",
        "c628ee67fb15a0d8d48351aa2e487c5f14779785"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 18 17:29:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 18 17:29:05 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\nPull fuse updates from Miklos Szeredi.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: use flexible array in fuse.h\n  fuse: allow nanosecond granularity\n  fuse: O_DIRECT support for files\n  fuse: fix nlink after unlink\n"
    },
    {
      "commit": "0a2da9b2ef2ef76c09397597f260245b020e6522",
      "tree": "3ec4888a40ba27b6fbb25773663a64ed70873daf",
      "parents": [
        "4273b793ec68753cc3fcf5be7cbfd88c2be2058d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 11 11:45:06 2012 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Apr 11 11:45:06 2012 +0200"
      },
      "message": "fuse: allow nanosecond granularity\n\nDerrik Pates reports that an utimensat with a NULL argument results in the\ncurrent time being sent from the kernel with 1 second granularity.\n\nReported-by: Derrik Pates \u003cdemon@now.ai\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "48fde701aff662559b38d9a609574068f22d00fe",
      "tree": "aa6b203dc671b51d58575b65eb08310ff8309b60",
      "parents": [
        "6b4231e2f92adbcf96fb2a3fa751d7ca0a61b21f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jan 08 22:15:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:35 2012 -0400"
      },
      "message": "switch open-coded instances of d_make_root() to new helper\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2408f6ef6bf58620f8330b37181d2bdca2e7c7c5",
      "tree": "80093a2bd67a78f17de1cc8bdad2e6bc6e3b50c0",
      "parents": [
        "d4a23aee23710dabeaa44c30950b87d33bf104be"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:30 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:22 2012 +0800"
      },
      "message": "fuse: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "4273b793ec68753cc3fcf5be7cbfd88c2be2058d",
      "tree": "b00b18e0c50d9c2f1a93077307c8c2e9dac1ae9b",
      "parents": [
        "ac45d61357e86b9a0cf14e45e8e09dfb626970ef"
      ],
      "author": {
        "name": "Anand Avati",
        "email": "avati@redhat.com",
        "time": "Fri Feb 17 12:46:25 2012 -0500"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 05 15:48:11 2012 +0100"
      },
      "message": "fuse: O_DIRECT support for files\n\nImplement -\u003edirect_IO() method in aops. The -\u003edirect_IO() method combines\nthe existing fuse_direct_read/fuse_direct_write methods to implement\nO_DIRECT functionality.\n\nReaching -\u003edirect_IO() in the read path via generic_file_aio_read ensures\nproper synchronization with page cache with its existing framework.\n\nReaching -\u003edirect_IO() in the write path via fuse_file_aio_write is made\nto come via generic_file_direct_write() which makes it play nice with\nthe page cache w.r.t other mmap pages etc.\n\nOn files marked \u0027direct_io\u0027 by the filesystem server, IO always follows\nthe fuse_direct_read/write path. There is no effect of fcntl(O_DIRECT)\nand it always succeeds.\n\nOn files not marked with \u0027direct_io\u0027 by the filesystem server, the IO\npath depends on O_DIRECT flag by the application. This can be passed\nat the time of open() as well as via fcntl().\n\nNote that asynchronous O_DIRECT iocb jobs are completed synchronously\nalways (this has been the case with FUSE even before this patch)\n\nSigned-off-by: Anand Avati \u003cavati@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "ac45d61357e86b9a0cf14e45e8e09dfb626970ef",
      "tree": "e560d3a8f26d1530780ed62f2a4bd3f16a20ac55",
      "parents": [
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 05 15:48:11 2012 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Mar 05 15:48:11 2012 +0100"
      },
      "message": "fuse: fix nlink after unlink\n\nAnand Avati reports that the following sequence of system calls fail on a fuse\nfilesystem:\n\n\n \tcreate(\"filename\") \u003d\u003e 0\n \tlink(\"filename\", \"linkname\") \u003d\u003e 0\n \tunlink(\"filename\") \u003d\u003e 0\n \tlink(\"linkname\", \"filename\") \u003d\u003e -ENOENT ### BUG ###\n\nvfs_link() fails with ENOENT if i_nlink is zero, this is done to prevent\nresurrecting already deleted files.\n\nFuse clears i_nlink on unlink even if there are other links pointing to the\nfile.\n\nReported-by: Anand Avati \u003cavati@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "6733e54b669c600eb8e451939ad55130db664fed",
      "tree": "2a8c24c856fa3f5d7d58a3eb39da943ca1c57e65",
      "parents": [
        "bcf8a3dfcb274cf6654a19e12e244f3af8c0d355",
        "451d0f599934fd97faf54a5d7954b518e66192cb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:39:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:39:21 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  FUSE: Notifying the kernel of deletion.\n  fuse: support ioctl on directories\n  fuse: Use kcalloc instead of kzalloc to allocate array\n  fuse: llseek optimize SEEK_CUR and SEEK_SET\n"
    },
    {
      "commit": "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4",
      "tree": "7dcbf0a4e09464247e6992c8f44fcc872867bd3a",
      "parents": [
        "a6322de67b58a00e3a783ad9c87c2a11b2d67b47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 08 21:32:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:19:54 2012 -0500"
      },
      "message": "vfs: switch -\u003eshow_options() to struct dentry *\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "541af6a07474352e2143a0527c2b62b732439815",
      "tree": "fd52fd528264926d42804676278b43baac97e300",
      "parents": [
        "632861f05a8e5878a267d173000880ceb608b56e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 03:17:33 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:55:07 2012 -0500"
      },
      "message": "fuse: propagate umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a67aafb5f72a436ca044293309fa7e6351d6a35",
      "tree": "d9e58600148de9d41b478cf815773b746647d15b",
      "parents": [
        "4acdaf27ebe2034c342f3be57ef49aed1ad885ef"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:52:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:54 2012 -0500"
      },
      "message": "switch -\u003emknod() to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4acdaf27ebe2034c342f3be57ef49aed1ad885ef",
      "tree": "d89a876ee19cd88609a587f8aa6c464a52ee6d98",
      "parents": [
        "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:42:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch -\u003ecreate() to umode_t\n\nvfs_create() ignores everything outside of 16bit subset of its\nmode argument; switching it to umode_t is obviously equivalent\nand it\u0027s the only caller of the method\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "18bb1db3e7607e4a997d50991a6f9fa5b0f8722c",
      "tree": "4ee4e584bc9a67f3ec14ce159d2d7d4a27e68d4a",
      "parents": [
        "8208a22bb8bd3c52ef634b4ff194f14892ab1713"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 26 01:41:39 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:53 2012 -0500"
      },
      "message": "switch vfs_mkdir() and -\u003emkdir() to umode_t\n\nvfs_mkdir() gets int, but immediately drops everything that might not\nfit into umode_t and that\u0027s the only caller of -\u003emkdir()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b520e0565422966cdf1c3759bd73df77b0f248c",
      "tree": "f63a26afa7342eb59b125271b16e30a219b59094",
      "parents": [
        "2a79f17e4a641a2f463cb512cb0ec349844a147b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 12 15:51:45 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:40 2012 -0500"
      },
      "message": "vfs: fix the stupidity with i_dentry in inode destructors\n\nSeeing that just about every destructor got that INIT_LIST_HEAD() copied into\nit, there is no point whatsoever keeping this INIT_LIST_HEAD in inode_init_once();\nthe cost of taking it into inode_init_always() will be negligible for pipes\nand sockets and negative for everything else.  Not to mention the removal of\nboilerplate code from -\u003edestroy_inode() instances...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "30aaca4582eac20a52ac7b2ec35bdb908133e5b1",
      "tree": "ddc71661851922ba75dbeb0e6f272e9c2a0895fb",
      "parents": [
        "ddb360778a86bcf55d856bc15df3ebd2e77afff1",
        "73104b6e37f75f822e3dcf016147c322d1f6dad9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:23:35 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 14 18:23:35 2011 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: llseek fix race\n  fuse: fix llseek bug\n  fuse: fix fuse_retrieve\n"
    },
    {
      "commit": "988f032567eaba3c5896c5de05270b9ff71b2a9d",
      "tree": "a16354eaba93f15682efb6b02a8a4f770edb1e1f",
      "parents": [
        "5cc361e3b8241989d8240014dbbe6214c9292541"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:25:27 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 13 12:35:14 2011 -0500"
      },
      "message": "fuse: register_filesystem() called too early\n\nsame story as with ubifs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "451d0f599934fd97faf54a5d7954b518e66192cb",
      "tree": "6dd7a6fcdc8ff3bc50dec37b114c447b3b1d7ba1",
      "parents": [
        "b18da0c56e9ff43a007b6c8e302c62e720964151"
      ],
      "author": {
        "name": "John Muir",
        "email": "john@jmuir.com",
        "time": "Tue Dec 06 21:50:06 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:58:49 2011 +0100"
      },
      "message": "FUSE: Notifying the kernel of deletion.\n\nAllows a FUSE file-system to tell the kernel when a file or directory is\ndeleted. If the specified dentry has the specified inode number, the kernel will\nunhash it.\n\nThe current \u0027fuse_notify_inval_entry\u0027 does not cause the kernel to clean up\ndirectories that are in use properly, and as a result the users of those\ndirectories see incorrect semantics from the file-system. The error condition\nseen when \u0027fuse_notify_inval_entry\u0027 is used to notify of a deleted directory is\navoided when \u0027fuse_notify_delete\u0027 is used instead.\n\nThe following scenario demonstrates the difference:\n1. User A chdirs into \u0027testdir\u0027 and starts reading \u0027testfile\u0027.\n2. User B rm -rf \u0027testdir\u0027.\n3. User B creates \u0027testdir\u0027.\n4. User C chdirs into \u0027testdir\u0027.\n\nIf you run the above within the same machine on any file-system (including fuse\nfile-systems), there is no problem: user C is able to chdir into the new\ntestdir. The old testdir is removed from the dentry tree, but still open by user\nA.\n\nIf operations 2 and 3 are performed via the network such that the fuse\nfile-system uses one of the notify functions to tell the kernel that the nodes\nare gone, then the following error occurs for user C while user A holds the\noriginal directory open:\n\nmuirj@empacher:~\u003e ls /test/testdir\nls: cannot access /test/testdir: No such file or directory\n\nThe issue here is that the kernel still has a dentry for testdir, and so it is\nrequesting the attributes for the old directory, while the file-system is\nresponding that the directory no longer exists.\n\nIf on the other hand, if the file-system can notify the kernel that the\ndirectory is deleted using the new \u0027fuse_notify_delete\u0027 function, then the above\nls will find the new directory as expected.\n\nSigned-off-by: John Muir \u003cjohn@jmuir.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b18da0c56e9ff43a007b6c8e302c62e720964151",
      "tree": "dca57bc1042c576474529768533d6efb88716f35",
      "parents": [
        "c411cc88d873b3f68635a04691f7f115c46bc39e"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:58:49 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:58:49 2011 +0100"
      },
      "message": "fuse: support ioctl on directories\n\nMultiplexing filesystems may want to support ioctls on the underlying\nfiles and directores (e.g. FS_IOC_{GET,SET}FLAGS).\n\nIoctl support on directories was missing so add it now.\n\nReported-by: Antonio SJ Musumeci \u003cbile@landofbile.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c411cc88d873b3f68635a04691f7f115c46bc39e",
      "tree": "388469bbd475b0411bbf4868c2fe8f3c803737fe",
      "parents": [
        "c07c3d193412bbf4e9f405e75dc84e35e77fac28"
      ],
      "author": {
        "name": "Thomas Meyer",
        "email": "thomas@m3y3r.de",
        "time": "Tue Nov 29 22:08:00 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:58:49 2011 +0100"
      },
      "message": "fuse: Use kcalloc instead of kzalloc to allocate array\n\nThe advantage of kcalloc is, that will prevent integer overflows which could\nresult from the multiplication of number of elements and size and it is also\na bit nicer to read.\n\nThe semantic patch that makes this change is available\nin https://lkml.org/lkml/2011/11/25/107\n\nSigned-off-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "c07c3d193412bbf4e9f405e75dc84e35e77fac28",
      "tree": "79991f1fed4184e7bea8fa98f7de4faf9853bb02",
      "parents": [
        "73104b6e37f75f822e3dcf016147c322d1f6dad9"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:58:48 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:58:48 2011 +0100"
      },
      "message": "fuse: llseek optimize SEEK_CUR and SEEK_SET\n\nUse generic_file_llseek() instead of open coding the seek function.\n\ni_mutex protection is only necessary for SEEK_END (and SEEK_HOLE, SEEK_DATA), so\nmove SEEK_CUR and SEEK_SET out from under i_mutex.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "73104b6e37f75f822e3dcf016147c322d1f6dad9",
      "tree": "07e8021e78af4237f645fef86ffe887aee5b4ea1",
      "parents": [
        "b48c6af2086ab2ba8a9c9b6ce9ecb34592ce500c"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:40:59 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 11:40:59 2011 +0100"
      },
      "message": "fuse: llseek fix race\n\nFix race between lseek(fd, 0, SEEK_CUR) and read/write.  This was fixed in\ngeneric code by commit 5b6f1eb97d (vfs: lseek(fd, 0, SEEK_CUR) race condition).\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b48c6af2086ab2ba8a9c9b6ce9ecb34592ce500c",
      "tree": "674ca20427f0a77a8f3e332302983e97c30a9f2a",
      "parents": [
        "48706d0a91583d08c56e7ef2a7602d99c8d4133f"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Dec 13 10:37:00 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 10:37:00 2011 +0100"
      },
      "message": "fuse: fix llseek bug\n\nThe test in fuse_file_llseek() \"not SEEK_CUR or not SEEK_SET\" always evaluates\nto true.\n\nThis was introduced in 3.1 by commit 06222e49 (fs: handle SEEK_HOLE/SEEK_DATA\nproperly in all fs\u0027s that define their own llseek) and changed the behavior of\nSEEK_CUR and SEEK_SET to always retrieve the file attributes.  This is a\nperformance regression.\n\nFix the test so that it makes sense.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\nCC: Josef Bacik \u003cjosef@redhat.com\u003e\nCC: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "48706d0a91583d08c56e7ef2a7602d99c8d4133f",
      "tree": "6eaee92bf61ef49c43d43b811289f6989375e3f6",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 10:36:59 2011 +0100"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Tue Dec 13 10:36:59 2011 +0100"
      },
      "message": "fuse: fix fuse_retrieve\n\nFix two bugs in fuse_retrieve():\n\n - retrieving more than one page would yield repeated instances of the\n   first page\n\n - if more than FUSE_MAX_PAGES_PER_REQ pages were requested than the\n   request page array would overflow\n\nfuse_retrieve() was added in 2.6.36 and these bugs had been there since the\nbeginning.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@vger.kernel.org\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "bfe8684869601dacfcb2cd69ef8cfd9045f62170",
      "tree": "4e213aaa766b26f43f0f9ec7998a7745239d9377",
      "parents": [
        "6d6b77f163c7eabedbba00ed2abb7d4a570bff76"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Fri Oct 28 14:13:29 2011 +0200"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@serles.lst.de",
        "time": "Wed Nov 02 12:53:43 2011 +0100"
      },
      "message": "filesystems: add set_nlink()\n\nReplace remaining direct i_nlink updates with a new set_nlink()\nupdater function.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "143cb494cb6662e37c4020b7fe9839837f718e56",
      "tree": "249abcf5afe251a9244a414f9d66c73b9458274e",
      "parents": [
        "afeacc8c1f38b7bb93d4bc7b4ba04c2605061ef0"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jul 01 14:23:34 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:31 2011 -0400"
      },
      "message": "fs: add module.h to files that were implicitly using it\n\nSome files were using the complete module.h infrastructure without\nactually including the header at all.  Fix them up in advance so\nonce the implicit presence is removed, we won\u0027t get failures like this:\n\n  CC [M]  fs/nfsd/nfssvc.o\nfs/nfsd/nfssvc.c: In function \u0027nfsd_create_serv\u0027:\nfs/nfsd/nfssvc.c:335: error: \u0027THIS_MODULE\u0027 undeclared (first use in this function)\nfs/nfsd/nfssvc.c:335: error: (Each undeclared identifier is reported only once\nfs/nfsd/nfssvc.c:335: error: for each function it appears in.)\nfs/nfsd/nfssvc.c: In function \u0027nfsd\u0027:\nfs/nfsd/nfssvc.c:555: error: implicit declaration of function \u0027module_put_and_exit\u0027\nmake[3]: *** [fs/nfsd/nfssvc.o] Error 1\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "5dfcc87fd79dfb96ed155b524337dbd0da4f5993",
      "tree": "619808e5a371e3055ff6388c98eacddea88fb089",
      "parents": [
        "24114504c4d585ec4aae7a2b2acb81bf741f8c8a"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Sep 12 09:38:03 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 12 11:47:10 2011 -0700"
      },
      "message": "fuse: fix memory leak\n\nkmemleak is reporting that 32 bytes are being leaked by FUSE:\n\n  unreferenced object 0xe373b270 (size 32):\n  comm \"fusermount\", pid 1207, jiffies 4294707026 (age 2675.187s)\n  hex dump (first 32 bytes):\n    01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cb05517d7\u003e] kmemleak_alloc+0x27/0x50\n    [\u003cb0196435\u003e] kmem_cache_alloc+0xc5/0x180\n    [\u003cb02455be\u003e] fuse_alloc_forget+0x1e/0x20\n    [\u003cb0245670\u003e] fuse_alloc_inode+0xb0/0xd0\n    [\u003cb01b1a8c\u003e] alloc_inode+0x1c/0x80\n    [\u003cb01b290f\u003e] iget5_locked+0x8f/0x1a0\n    [\u003cb0246022\u003e] fuse_iget+0x72/0x1a0\n    [\u003cb02461da\u003e] fuse_get_root_inode+0x8a/0x90\n    [\u003cb02465cf\u003e] fuse_fill_super+0x3ef/0x590\n    [\u003cb019e56f\u003e] mount_nodev+0x3f/0x90\n    [\u003cb0244e95\u003e] fuse_mount+0x15/0x20\n    [\u003cb019d1bc\u003e] mount_fs+0x1c/0xc0\n    [\u003cb01b5811\u003e] vfs_kern_mount+0x41/0x90\n    [\u003cb01b5af9\u003e] do_kern_mount+0x39/0xd0\n    [\u003cb01b7585\u003e] do_mount+0x2e5/0x660\n    [\u003cb01b7966\u003e] sys_mount+0x66/0xa0\n\nThis leak report is consistent and happens once per boot on\n3.1.0-rc5-dirty.\n\nThis happens if a FORGET request is queued after the fuse device was\nreleased.\n\nReported-by: Sitsofe Wheeler \u003csitsofe@yahoo.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Sitsofe Wheeler \u003csitsofe@yahoo.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "24114504c4d585ec4aae7a2b2acb81bf741f8c8a",
      "tree": "52b9668b53f7d12342984be55b96e5784383a4ae",
      "parents": [
        "87adf1c66cacbc4acd0e696c896755a5091a9d3d"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Sep 12 09:31:49 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 12 11:47:10 2011 -0700"
      },
      "message": "fuse: fix flock breakage\n\nCommit 37fb3a30b4 (\"fuse: fix flock\") added in 3.1-rc4 caused flock() to\nfail with ENOSYS with the kernel ABI version 7.16 or earlier.\n\nFix by falling back to testing FUSE_POSIX_LOCKS for ABI versions 7.16\nand earlier.\n\nReported-by: Martin Ziegler \u003cziegler@email.mathematik.uni-freiburg.de\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Martin Ziegler \u003cziegler@email.mathematik.uni-freiburg.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "051732bcbe3cff3fea04dc9042266562fe8b0859",
      "tree": "1c709cd8a65747fde8363ce593b77e040c14e3e4",
      "parents": [
        "2983573e491d1e201e802eafa3553ba33d1fd50b",
        "c2183d1e9b3f313dd8ba2b1b0197c8d9fb86a7ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 24 09:14:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 24 09:14:42 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message\n  fuse: mark pages accessed when written to\n  fuse: delete dead .write_begin and .write_end aops\n  fuse: fix flock\n  fuse: fix non-ANSI void function notation\n"
    },
    {
      "commit": "c2183d1e9b3f313dd8ba2b1b0197c8d9fb86a7ae",
      "tree": "fd9e12ce069012b60e5bdcd15627ccf4912d9ef1",
      "parents": [
        "478e0841b3dce3edc2c67bf0fc51af30f582e9e2"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Aug 24 10:20:17 2011 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Aug 24 10:20:17 2011 +0200"
      },
      "message": "fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message\n\nFUSE_NOTIFY_INVAL_ENTRY didn\u0027t check the length of the write so the\nmessage processing could overrun and result in a \"kernel BUG at\nfs/fuse/dev.c:629!\"\n\nReported-by: Han-Wen Nienhuys \u003chanwenn@gmail.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\n"
    },
    {
      "commit": "478e0841b3dce3edc2c67bf0fc51af30f582e9e2",
      "tree": "496f32d81640425d83cae9c4c764f1246a591ca1",
      "parents": [
        "b40cdd56dfa065c0832905e266b39f79419e6914"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Mon Jul 25 22:35:35 2011 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Aug 08 16:08:08 2011 +0200"
      },
      "message": "fuse: mark pages accessed when written to\n\nAs fuse does not use the page cache library functions when userspace\nwrites to a file, it did not benefit from \u0027c8236db mm: mark page\naccessed before we write_end()\u0027 that made sure pages are properly\nmarked accessed when written to.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "b40cdd56dfa065c0832905e266b39f79419e6914",
      "tree": "38ea1fa5cd6c49a9baedfc92309e8478d5cc32ae",
      "parents": [
        "37fb3a30b46237f23cfdf7ee09d49f9888dd13bf"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "jweiner@redhat.com",
        "time": "Mon Jul 25 22:35:34 2011 +0200"
      },
      "committer": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Aug 08 16:08:08 2011 +0200"
      },
      "message": "fuse: delete dead .write_begin and .write_end aops\n\nEver since \u0027ea9b990 fuse: implement perform_write\u0027, the .write_begin\nand .write_end aops have been dead code.\n\nTheir task - acquiring a page from the page cache, sending out a write\nrequest and releasing the page again - is now done batch-wise to\nmaximize the number of pages send per userspace request.\n\nSigned-off-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    }
  ],
  "next": "37fb3a30b46237f23cfdf7ee09d49f9888dd13bf"
}
