)]}'
{
  "log": [
    {
      "commit": "dae6ad8f37529963ae7df52baaccf056b38f210e",
      "tree": "1bfc6f766601e744c2c2c064b97cdefdcca4ad5c",
      "parents": [
        "49084c3bb2055c401f3493c13edae14d49128ca0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 26 11:50:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:05 2011 -0400"
      },
      "message": "new helpers: kern_path_create/user_path_create\n\ncombination of kern_path_parent() and lookup_create().  Does *not*\nexpose struct nameidata to caller.  Syscalls converted to that...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "49084c3bb2055c401f3493c13edae14d49128ca0",
      "tree": "354b13abe17f898bdcb24c11b961095f5023b832",
      "parents": [
        "8aeb376ca0fe61038166c3b8243c678addb80abf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:59:52 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:03 2011 -0400"
      },
      "message": "kill LOOKUP_CONTINUE\n\nLOOKUP_PARENT is equivalent to it now\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8aeb376ca0fe61038166c3b8243c678addb80abf",
      "tree": "daae94f5aebe5decd67ad37dc642090ebaa9dba5",
      "parents": [
        "4352780386139ff33d2203868b392e6535deff61"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:48:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:02 2011 -0400"
      },
      "message": "nfs: LOOKUP_{OPEN,CREATE,EXCL} is set only on the last step\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4352780386139ff33d2203868b392e6535deff61",
      "tree": "5bfc19790fa4c70b9153753d68e3dc11e49f7483",
      "parents": [
        "a127e0af59ab610e8b37ac2dfa4cdb2ec8c8f604"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:45:21 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:00 2011 -0400"
      },
      "message": "cifs_lookup(): LOOKUP_OPEN is set only on the last component\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a127e0af59ab610e8b37ac2dfa4cdb2ec8c8f604",
      "tree": "9184b632a82441d8f4d8c19514dfad15072d1718",
      "parents": [
        "5c0f360b083fb33d05d1bff4b138b82d715eb419"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:43:56 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:59 2011 -0400"
      },
      "message": "ceph: LOOKUP_OPEN is set only when it\u0027s the last component\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c0f360b083fb33d05d1bff4b138b82d715eb419",
      "tree": "3bb7116ffd8613587918501a73fb858c364c6b10",
      "parents": [
        "407938e79edcadba1b5a17cf928584d8a191a8d7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:41:09 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:57 2011 -0400"
      },
      "message": "jfs_ci_revalidate() is safe from RCU mode\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "407938e79edcadba1b5a17cf928584d8a191a8d7",
      "tree": "2d8abfe7d1fb12e6c28370ab44c77516d7b2f3a1",
      "parents": [
        "dd7dd556e45133ef13f2c4bddc0e0b1ac23bc0e4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:37:18 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:56 2011 -0400"
      },
      "message": "LOOKUP_CREATE and LOOKUP_RENAME_TARGET can be set only on the last step\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dd7dd556e45133ef13f2c4bddc0e0b1ac23bc0e4",
      "tree": "4884b6af570a2a0cb01d11f39a38a3a9c73e49ba",
      "parents": [
        "bf6c7f6c7bd0ea779757d35b5fdc9f9157f056b3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:17:17 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:56 2011 -0400"
      },
      "message": "no need to check for LOOKUP_OPEN in -\u003ecreate() instances\n\n... it will be set in nd-\u003eflag for all cases with non-NULL nd\n(i.e. when called from do_last()).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bf6c7f6c7bd0ea779757d35b5fdc9f9157f056b3",
      "tree": "aed90f298856f286f84af6774ea30ade62c95294",
      "parents": [
        "8a5e929dd2e05ab4d3d89f58c5e8fca596af8f3a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 21:08:31 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:54 2011 -0400"
      },
      "message": "don\u0027t pass nameidata to vfs_create() from ecryptfs_create()\n\nInstead of playing with removal of LOOKUP_OPEN, mangling (and\nrestoring) nd-\u003epath, just pass NULL to vfs_create().  The whole\npoint of what\u0027s being done there is to suppress any attempts\nto open file by underlying fs, which is what nd \u003d\u003d NULL indicates.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8a5e929dd2e05ab4d3d89f58c5e8fca596af8f3a",
      "tree": "8cbed05fcd99d24e881e5ea12d8a954865e31085",
      "parents": [
        "554a8b9f54cd7ca2b89f5dc227df08be082fae0d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jun 25 19:15:54 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:52 2011 -0400"
      },
      "message": "don\u0027t transliterate lower bits of -\u003eintent.open.flags to FMODE_...\n\n-\u003ecreate() instances are much happier that way...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "554a8b9f54cd7ca2b89f5dc227df08be082fae0d",
      "tree": "d8188a1503e744fa64dbabe6e585065e5234683b",
      "parents": [
        "f7c85868fcacc331dd3454a4f08f006d7942521f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jun 23 12:35:50 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:49 2011 -0400"
      },
      "message": "Don\u0027t pass nameidata when calling vfs_create() from mknod()\n\nAll instances can cope with that now (and ceph one actually\nstarts working properly).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7c85868fcacc331dd3454a4f08f006d7942521f",
      "tree": "03e01b3f96684911c353ce22c1cc757a36616977",
      "parents": [
        "511415980ace0ceecd71088dbe1c7ce4ca7c79fe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 22 18:53:18 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:46 2011 -0400"
      },
      "message": "fix mknod() on nfs4 (hopefully)\n\na) check the right flags in -\u003ecreate() (LOOKUP_OPEN, not LOOKUP_CREATE)\nb) default (!LOOKUP_OPEN) open_flags is O_CREAT|O_EXCL|FMODE_READ, not 0\nc) lookup_instantiate_filp() should be done only with LOOKUP_OPEN;\notherwise we need to issue CLOSE, lest we leak stateid on server.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "511415980ace0ceecd71088dbe1c7ce4ca7c79fe",
      "tree": "153510403c8053f3287d304c02609c17d07801d3",
      "parents": [
        "3d4ff43d895c50319af45eb4bf04a4618eccdf76"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 22 18:47:28 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:45 2011 -0400"
      },
      "message": "nameidata_to_nfs_open_context() doesn\u0027t need nameidata, actually...\n\njust open flags; switched to passing just those and\nrenamed to create_nfs_open_context()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3d4ff43d895c50319af45eb4bf04a4618eccdf76",
      "tree": "b412cd076920a903a854a20bceed4a0ce511fd13",
      "parents": [
        "82a2c1b77ada3b81911deeb871719ec5ff77f83c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 22 18:40:12 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:44 2011 -0400"
      },
      "message": "nfs_open_context doesn\u0027t need struct path either\n\njust dentry, please...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "82a2c1b77ada3b81911deeb871719ec5ff77f83c",
      "tree": "89b0329a54274e51c19c342048e80639bc489129",
      "parents": [
        "643168c2dc0d04cb884ae7bcd1ee19d9ecdff6a8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 22 18:30:55 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:42 2011 -0400"
      },
      "message": "nfs4_opendata doesn\u0027t need struct path either\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "643168c2dc0d04cb884ae7bcd1ee19d9ecdff6a8",
      "tree": "68c75e2a53096b2f6fe12b3f43b9fdb91d6dc484",
      "parents": [
        "7c97c200e2c5aa8b1067bebb99df0a7c2e12ebf3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jun 22 18:20:23 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:41 2011 -0400"
      },
      "message": "nfs4_closedata doesn\u0027t need to mess with struct path\n\ninstead of path_get()/path_put(), we can just use nfs_sb_{,de}active()\nto pin the superblock down.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7c97c200e2c5aa8b1067bebb99df0a7c2e12ebf3",
      "tree": "bc486a32cb322a58730be30f5c61d272e3fee54f",
      "parents": [
        "beefebf1aa611242e022e71bae87034f415d3314"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 21 08:51:28 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:39 2011 -0400"
      },
      "message": "cifs: fix the type of cifs_demultiplex_thread()\n\n... and get rid of a bogus typecast, while we are at it; it\u0027s not\njust that we want a function returning int and not void, but cast\nto pointer to function taking void * and returning void would be\n(void (*)(void *)) and not (void *)(void *), TYVM...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "beefebf1aa611242e022e71bae87034f415d3314",
      "tree": "87f7aaeda400872f42a3ff5560e8ac995bb08970",
      "parents": [
        "729cdb3a1ee03a4363f9c7e66ddd979727e99e1f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jun 21 01:01:59 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:38 2011 -0400"
      },
      "message": "ecryptfs_inode_permission() doesn\u0027t need to bail out on RCU\n\n... now that inode_permission() can take MAY_NOT_BLOCK and handle it\nproperly.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d2d9e9fbc2f8f492dae373482da61d34475c53c1",
      "tree": "5d881318daae1c85d9544d18500eca4d175e76e7",
      "parents": [
        "4ad5abb3d01a2c10854969b00982fadb130784a6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 10:55:26 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:34 2011 -0400"
      },
      "message": "merge do_revalidate() into its only caller\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4ad5abb3d01a2c10854969b00982fadb130784a6",
      "tree": "757ad9baeab65982e8c8ed61b222c8969b3dbf43",
      "parents": [
        "d594e7ec4da6c1a527dea4965eee37cd785792b8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:57:03 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:32 2011 -0400"
      },
      "message": "no reason to keep exec_permission() separate now\n\ncache footprint alone makes it a bad idea...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d594e7ec4da6c1a527dea4965eee37cd785792b8",
      "tree": "b1c50c217309934a25449052625747927cbe4b45",
      "parents": [
        "eecdd358b467405a084d400d5ec571bbdbfe97a3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:55:42 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:30 2011 -0400"
      },
      "message": "massage generic_permission() to treat directories on a separate path\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "eecdd358b467405a084d400d5ec571bbdbfe97a3",
      "tree": "357332873b909a19964e77dbae3c4aed5c100dc6",
      "parents": [
        "cf1dd1dae851ce5765cda5de16aa965eef7c2dbf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:48:41 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:29 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to exec_permission()\n\npass mask instead; kill security_inode_exec_permission() since we can use\nsecurity_inode_permission() instead.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10556cb21a0d0b24d95f00ea6df16f599a3345b2",
      "tree": "3d7d8dfba807805a55c154f1850717bf3b49f343",
      "parents": [
        "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:28:19 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:24 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003epermission()\n\nnot used by the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2830ba7f34ebb27c4e5b8b6ef408cd6d74860890",
      "tree": "bbcebc14bffd000f1dfcbf37e64f56d2f49581ac",
      "parents": [
        "7e40145eb111a5192e6d819f764db9d6828d1abb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:16:29 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:22 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to generic_permission()\n\nredundant; all callers get it duplicated in mask \u0026 MAY_NOT_BLOCK and none of\nthem removes that bit.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7e40145eb111a5192e6d819f764db9d6828d1abb",
      "tree": "3249952a751de12465e8d66c63328445e9242f3a",
      "parents": [
        "9c2c703929e4c41210cfa6e3f599514421bab8dc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:12:17 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:21 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: don\u0027t pass flags to -\u003echeck_acl()\n\nnot used in the instances anymore.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c2c703929e4c41210cfa6e3f599514421bab8dc",
      "tree": "2086738f22755ad18ba18ab2ee0f2b23d651da60",
      "parents": [
        "1fc0f78ca9f311c6277e2f1b7655bb4d43ceb311"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 19:06:22 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:19 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: pass MAY_NOT_BLOCK to -\u003echeck_acl()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1fc0f78ca9f311c6277e2f1b7655bb4d43ceb311",
      "tree": "9c6a5879558b7a189f94eae97ac80268e63fe29b",
      "parents": [
        "178ea73521d64ba41d7aa5488fb9f549c6d4507d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 18:59:02 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:18 2011 -0400"
      },
      "message": "-\u003epermission() sanitizing: MAY_NOT_BLOCK\n\nDuplicate the flags argument into mask bitmap.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "178ea73521d64ba41d7aa5488fb9f549c6d4507d",
      "tree": "7fb6bfb6483577752e307a5bb2e3905658d44294",
      "parents": [
        "07b8ce1ee87d291ff564c02cf878fae973317a52"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 11:31:30 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:16 2011 -0400"
      },
      "message": "kill check_acl callback of generic_permission()\n\nits value depends only on inode and does not change; we might as\nwell store it in -\u003ei_op-\u003echeck_acl and be done with that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "07b8ce1ee87d291ff564c02cf878fae973317a52",
      "tree": "94f07ed2b5d18aef71f1b28193375f88c0c947bc",
      "parents": [
        "f4d6ff89d8e54b68a4322388d26d518d6133fa4e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jun 20 10:52:57 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:14 2011 -0400"
      },
      "message": "lockless get_write_access/deny_write_access\n\nnew helpers: atomic_inc_unless_negative()/atomic_dec_unless_positive()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f4d6ff89d8e54b68a4322388d26d518d6133fa4e",
      "tree": "57f4113a7e5ac2cc0e5a713ac31339f72de797ba",
      "parents": [
        "3bfa784a6539f91a27d7ffdd408efdb638e3bebd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 13:14:21 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:13 2011 -0400"
      },
      "message": "move exec_permission() up to the rest of permission-related functions\n\n... and convert the comment before it into linuxdoc form.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3bfa784a6539f91a27d7ffdd408efdb638e3bebd",
      "tree": "2fb293076c98a4bbc18fd2ddad7fdc4cea08c384",
      "parents": [
        "1b5d783c94c328d406e801566f161adcfb018dda"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 12:55:10 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:11 2011 -0400"
      },
      "message": "kill file_permission() completely\n\nconvert the last remaining caller to inode_permission()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1b5d783c94c328d406e801566f161adcfb018dda",
      "tree": "e7d27b987e0670099af28db0d6bfcdac33236046",
      "parents": [
        "78f32a9b479e9b9f1ce2bf620a7602c1cdbc4c8e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 12:49:47 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:10 2011 -0400"
      },
      "message": "consolidate BINPRM_FLAGS_ENFORCE_NONDUMP handling\n\nnew helper: would_dump(bprm, file).  Checks if we are allowed to\nread the file and if we are not - sets ENFORCE_NODUMP.  Exported,\nused in places that previously open-coded the same logics.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "78f32a9b479e9b9f1ce2bf620a7602c1cdbc4c8e",
      "tree": "1c1d61bbe0587edb29f1290efaafcdeee0cb814e",
      "parents": [
        "6f2861097467852f2271c2b40f9c3d1d01757048"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 11:54:42 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:08 2011 -0400"
      },
      "message": "switch path_init() to exec_permission()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6f2861097467852f2271c2b40f9c3d1d01757048",
      "tree": "e0f182d7e29812ce86d5f1876f613c55f30ba49e",
      "parents": [
        "4cf27141cbe0239f48ec6f0b37bad347d51d1785"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 11:49:08 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:07 2011 -0400"
      },
      "message": "switch udf_ioctl() to inode_permission()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4cf27141cbe0239f48ec6f0b37bad347d51d1785",
      "tree": "ef2b247dc3cbbd795331b8937d3c29e5fc3c7b85",
      "parents": [
        "43e15cdbefea4ce6d68113de98d4f61c0cf45687"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jun 19 01:50:08 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:05 2011 -0400"
      },
      "message": "make exec_permission(dir) really equivalent to inode_permission(dir, MAY_EXEC)\n\ncapability overrides apply only to the default case; if fs has -\u003epermission()\nthat does _not_ call generic_permission(), we have no business doing them.\nMoreover, if it has -\u003epermission() that does call generic_permission(), we\nhave no need to recheck capabilities.\n\nBesides, the capability overrides should apply only if we got EACCES from\nacl_permission_check(); any other value (-EIO, etc.) should be returned\nto caller, capabilities or not capabilities.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "43e15cdbefea4ce6d68113de98d4f61c0cf45687",
      "tree": "75676aae179fc56bbb9d861c0ab656a9edaa7ca4",
      "parents": [
        "44396f4b5cb8566f7118aec55eeac99be7ad94cb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 03 20:16:57 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:04 2011 -0400"
      },
      "message": "new helper: iterate_supers_type()\n\nCall the given function for all superblocks of given type.  Function\ngets a superblock (with s_umount locked shared) and (void *) argument\nsupplied by caller of iterator.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "44396f4b5cb8566f7118aec55eeac99be7ad94cb",
      "tree": "dc2fd0d01c634ee9a5f5cfb8ca0d660f060ce188",
      "parents": [
        "e6625fa48e6580a74b7e700efd7e6463e282810b"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Tue May 31 11:58:49 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:43:03 2011 -0400"
      },
      "message": "fs: add a DCACHE_NEED_LOOKUP flag for d_flags\n\nBtrfs (and I\u0027d venture most other fs\u0027s) stores its indexes in nice disk order\nfor readdir, but unfortunately in the case of anything that stats the files in\norder that readdir spits back (like oh say ls) that means we still have to do\nthe normal lookup of the file, which means looking up our other index and then\nlooking up the inode.  What I want is a way to create dummy dentries when we\nfind them in readdir so that when ls or anything else subsequently does a\nstat(), we already have the location information in the dentry and can go\nstraight to the inode itself.  The lookup stuff just assumes that if it finds a\ndentry it is done, it doesn\u0027t perform a lookup.  So add a DCACHE_NEED_LOOKUP\nflag so that the lookup code knows it still needs to run i_op-\u003elookup() on the\nparent to get the inode for the dentry.  I have tested this with btrfs and I\nwent from something that looks like this\n\nhttp://people.redhat.com/jwhiter/ls-noreada.png\n\nTo this\n\nhttp://people.redhat.com/jwhiter/ls-good.png\n\nThats a savings of 1300 seconds, or 22 minutes.  That is a significant savings.\nThanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7b88631a89757d70192044c9d9f2e8d2fc02f2c",
      "tree": "51da597d7625d2428701be146f233cee047425d9",
      "parents": [
        "e501f29c727dea74e2124c584cbab5fa805d489b"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Jul 19 08:49:25 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 19 22:09:30 2011 -0700"
      },
      "message": "fs/libfs.c: fix simple_attr_write() on 32bit machines\n\nAssume that /sys/kernel/debug/dummy64 is debugfs file created by\ndebugfs_create_x64().\n\n\t# cd /sys/kernel/debug\n\t# echo 0x1234567812345678 \u003e dummy64\n\t# cat dummy64\n\t0x0000000012345678\n\n\t# echo 0x80000000 \u003e dummy64\n\t# cat dummy64\n\t0xffffffff80000000\n\nA value larger than INT_MAX cannot be written to the debugfs file created\nby debugfs_create_u64 or debugfs_create_x64 on 32bit machine.  Because\nsimple_attr_write() uses simple_strtol() for the conversion.\n\nTo fix this, use simple_strtoll() instead.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e501f29c727dea74e2124c584cbab5fa805d489b",
      "tree": "3a5c3611e7fc3ac454fd498b93a521d7a1e2be05",
      "parents": [
        "3a5c3743f15f27237ab025736a981e2d0c9fdfed",
        "59430262401bec02d415179c43dbe5b8819c09ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 19 21:50:21 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 19 21:50:21 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  vfs: fix race in rcu lookup of pruned dentry\n  Fix cifs_get_root()\n\n[ Edited the last commit to get rid of a \u0027unused variable \"seq\"\u0027\n  warning due to Al editing the patch.  - Linus ]\n"
    },
    {
      "commit": "59430262401bec02d415179c43dbe5b8819c09ce",
      "tree": "18caba988f1fb650bb804727de06adc73953b2c6",
      "parents": [
        "fec11dd9a0109fe52fd631e5c510778d6cbff6cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 18 15:43:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 19 21:49:01 2011 -0700"
      },
      "message": "vfs: fix race in rcu lookup of pruned dentry\n\nDon\u0027t update *inode in __follow_mount_rcu() until we\u0027d verified that\nthere is mountpoint there.  Kudos to Hugh Dickins for catching that\none in the first place and eventually figuring out the solution (and\ncatching a braino in the earlier version of patch).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fec11dd9a0109fe52fd631e5c510778d6cbff6cc",
      "tree": "2a59d8e2cb0325862740fc24ecb246aa02c8413f",
      "parents": [
        "0916a5e45fbd2604a303c8cc18e6b2b7c815e4c9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 18 13:50:40 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 18 13:51:58 2011 -0400"
      },
      "message": "Fix cifs_get_root()\n\nAdd missing -\u003ei_mutex, convert to lookup_one_len() instead of\n(broken) open-coded analog, cope with getting something like\na//b as relative pathname.  Simplify the hell out of it, while\nwe are there...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "d36c30181c4cf6ead34ae30fa2c777b871225c87",
      "tree": "8a2476c0eb6bb83ed5a8b493d79458d0e114a146",
      "parents": [
        "a406721dff91a9a5297d140dbb90327966cf9bc0",
        "0916a5e45fbd2604a303c8cc18e6b2b7c815e4c9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 18 09:03:15 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 18 09:03:15 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  hppfs_lookup(): don\u0027t open-code lookup_one_len()\n  hppfs: fix dentry leak\n  cramfs: get_cramfs_inode() returns ERR_PTR() on failure\n  ufs should use d_splice_alias()\n  fix exofs -\u003eget_parent()\n  ceph analog of cifs build_path_from_dentry() race fix\n  cifs: build_path_from_dentry() race fix\n"
    },
    {
      "commit": "0916a5e45fbd2604a303c8cc18e6b2b7c815e4c9",
      "tree": "94846a921e4c8b5c5607c7811e0787e0684a356f",
      "parents": [
        "3cc0658e35124ace881f6942839dcae877c3eaed"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 22:27:22 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 23:22:48 2011 -0400"
      },
      "message": "hppfs_lookup(): don\u0027t open-code lookup_one_len()\n\n... and it\u0027s getting it wrong, too - missing -\u003ed_revalidate() calls when\nit\u0027s dealing with filesystem (procfs) that has non-trivial -\u003ed_revalidate()...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3cc0658e35124ace881f6942839dcae877c3eaed",
      "tree": "651cd3a34747a65c966168f1099489a8bc874d82",
      "parents": [
        "0577d1ba411f9c40693b8b3e4aa7e0892cd03091"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 22:24:15 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 23:22:17 2011 -0400"
      },
      "message": "hppfs: fix dentry leak\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0577d1ba411f9c40693b8b3e4aa7e0892cd03091",
      "tree": "1da66779d615071aaa00b12530569e057b0845db",
      "parents": [
        "642c937b4ed2e51d2f2e4c46ab7cd8b5bddf268b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 19:04:14 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 23:22:02 2011 -0400"
      },
      "message": "cramfs: get_cramfs_inode() returns ERR_PTR() on failure\n\n... and we want to report these failures in -\u003elookup() anyway.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "642c937b4ed2e51d2f2e4c46ab7cd8b5bddf268b",
      "tree": "37a1346f5a907ed052bd5f5ab44a3e6668cc12d3",
      "parents": [
        "a803b8067e317832d6a251c5b0486e36a4f81922"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 10:07:34 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 23:21:35 2011 -0400"
      },
      "message": "ufs should use d_splice_alias()\n\nit\u0027s NFS-exportable, so...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a803b8067e317832d6a251c5b0486e36a4f81922",
      "tree": "db7a40edece0e43f870bc33776bb1a7e4fb13006",
      "parents": [
        "1b71fe2efa31cd18c865db474a4cd473b6ab5281"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jul 08 20:56:55 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 17 23:20:29 2011 -0400"
      },
      "message": "fix exofs -\u003eget_parent()\n\nNULL is not a possible return value for that method, TYVM...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f560f6697f17e2465c8845c09f3a483faef38275",
      "tree": "b5b77d5f68ce957598e6b786a78c9dea78632ffa",
      "parents": [
        "3d68bd0010d2c9bc9ad6004fdcc4d6a56dcae199",
        "c2ec9471b5b1307429aef1cfaa2b3ae453a61d6f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 17 12:49:55 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 17 12:49:55 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [CIFS] update cifs to version 1.74\n  [CIFS] update limit for snprintf in cifs_construct_tcon\n  cifs: Fix signing failure when server mandates signing for NTLMSSP\n"
    },
    {
      "commit": "1b71fe2efa31cd18c865db474a4cd473b6ab5281",
      "tree": "ca2409c9ed9311a5ddc998f7428d71273e94f2e5",
      "parents": [
        "dc137bf553dbb6855bd7efc34fedcd03102455f7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 16 23:43:58 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 16 23:43:58 2011 -0400"
      },
      "message": "ceph analog of cifs build_path_from_dentry() race fix\n\n... unfortunately, cifs bug got copied.  Fix is essentially the same.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "dc137bf553dbb6855bd7efc34fedcd03102455f7",
      "tree": "ab1fefc7da26bb86655a28651c4eafb56d741ea1",
      "parents": [
        "3110df800c4de2724624d46e6bed27efc5e9a707"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 16 23:37:20 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 16 23:37:20 2011 -0400"
      },
      "message": "cifs: build_path_from_dentry() race fix\n\ndeal with d_move() races properly; rename_lock read-retry loop,\nrcu_read_lock() held while walking to root, d_lock held over\nsubtraction from namelen and copying the component to stabilize\n-\u003ed_name.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "da1b001a2a2a9cb323e58327ed07ac4a5e6d96ea",
      "tree": "b4d183c6a4bab6a2b53d9ac9f4501bcd46cb158b",
      "parents": [
        "df8d6fe9efba4ea4b46a5bdc229031c5bb880575",
        "1836750115f20b774e55c032a3893e8c5bdf41ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:55:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 15 09:55:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  fix loop checks in d_materialise_unique()\n  Fix -\u003ed_lock locking order in unlazy_walk()\n"
    },
    {
      "commit": "1836750115f20b774e55c032a3893e8c5bdf41ed",
      "tree": "3c0cb24361ccfb460b93b0fd6385650df80a26e6",
      "parents": [
        "94c0d4ecbe7f9fe56e052b26b2ab484e246c07b4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 12 21:42:24 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Jul 14 21:33:41 2011 -0400"
      },
      "message": "fix loop checks in d_materialise_unique()\n\nBoth __d_unalias() and __d_materialise_dentry() need loop prevention.\nGrab rename_lock in caller, check for loops there...\n\nAs a side benefit, we have dentry_lock_for_move() called only under\nrename_lock, which seriously reduces deadlock potential of the\nexecrable \"locking order\" used for -\u003ed_lock.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5dcd07b9f39ca3e9be5bcc387d193fc0674e1c81",
      "tree": "8cd651b2743b8af4805e0ae45b660ce8758960ae",
      "parents": [
        "51414d41084496aaefd06d7f19eb8206e8bfac2d",
        "380f7c65a7eb3288e4b6812acf3474a1de230707"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 14 10:20:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 14 10:20:42 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:\n  GFS2: Resolve inode eviction and ail list interaction bug\n  GFS2: Fix race during filesystem mount\n  GFS2: force a log flush when invalidating the rindex glock\n"
    },
    {
      "commit": "380f7c65a7eb3288e4b6812acf3474a1de230707",
      "tree": "7abe4b4ce390afc6b4d2bc7cae0ec298fe2efa3c",
      "parents": [
        "3942ae5319640ced5844b75f44884e4bcb8a2f16"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Thu Jul 14 08:59:44 2011 +0100"
      },
      "message": "GFS2: Resolve inode eviction and ail list interaction bug\n\nThis patch contains a few misc fixes which resolve a recently\nreported issue. This patch has been a real team effort and has\nreceived a lot of testing.\n\nThe first issue is that the ail lock needs to be held over a few\nmore operations. The lock thats added into gfs2_releasepage() may\npossibly be a candidate for replacing with RCU at some future\npoint, but at this stage we\u0027ve gone for the obvious fix.\n\nThe second issue is that gfs2_write_inode() can end up calling\na glock recursively when called from gfs2_evict_inode() via the\nsyncing code, so it needs a guard added.\n\nThe third issue is that we either need to not truncate the metadata\npages of inodes which have zero link count, but which we cannot\ndeallocate due to them still being in use by other nodes, or we need\nto ensure that those pages have all made it through the journal and\nail lists first. This patch takes the former approach, but the\nlatter has also been tested and there is nothing to choose between\nthem performance-wise. So again, we could revise that decision\nin the future.\n\nAlso, the inode eviction process is now better documented.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nTested-by: Bob Peterson \u003crpeterso@redhat.com\u003e\nTested-by: Abhijith Das \u003cadas@redhat.com\u003e\nReported-by: Barry J. Marson \u003cbmarson@redhat.com\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "201f92e2ca789d529418da8fa027d5457f0df024",
      "tree": "f1d88a50dc95c415a2c8e9ba571620d2ca4c151c",
      "parents": [
        "6ac556daa7822fdda585e2c387739abb0646c6ef",
        "ec0dd267bf7d08cb30e321e45a75fd40edd7e528"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:34:08 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 13 14:34:08 2011 -0700"
      },
      "message": "Merge branch \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027bugfixes\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  SUNRPC: Fix use of static variable in rpcb_getport_async\n  NFSv4.1: update nfs4_fattr_bitmap_maxsz\n  SUNRPC: Fix a race between work-queue and rpc_killall_tasks\n  pnfs: write: Set mds_offset in the generic layer - it is needed by all LDs\n"
    },
    {
      "commit": "94c0d4ecbe7f9fe56e052b26b2ab484e246c07b4",
      "tree": "aa6d28122deb93e6f14b89d78987ef91d722b59d",
      "parents": [
        "258e43fdb00c73d424b114ae3850accd55b27cbb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 12 21:40:23 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 12 21:40:23 2011 -0400"
      },
      "message": "Fix -\u003ed_lock locking order in unlazy_walk()\n\nMake sure that child is still a child of parent before nested locking\nof child-\u003ed_lock in unlazy_walk(); otherwise we are risking a violation\nof locking order and deadlocks.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c2ec9471b5b1307429aef1cfaa2b3ae453a61d6f",
      "tree": "ca216e0c2793c56047644496501923d0491cdff2",
      "parents": [
        "ea1be1a3c3c4b2bbc32aeb7995e18336c8060e0e"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jul 12 19:15:02 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jul 12 19:15:02 2011 +0000"
      },
      "message": "[CIFS] update cifs to version 1.74\n\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "ea1be1a3c3c4b2bbc32aeb7995e18336c8060e0e",
      "tree": "b9f057cb63be2fb16a48c5e1a0214dd4089d84c1",
      "parents": [
        "62411ab2fe5f002dff27417630ddf02cc40ca404"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jul 12 18:24:43 2011 +0000"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jul 12 19:14:24 2011 +0000"
      },
      "message": "[CIFS] update limit for snprintf in cifs_construct_tcon\n\nIn 34c87901e113 \"Shrink stack space usage in cifs_construct_tcon\" we\nchange the size of the username name buffer from MAX_USERNAME_SIZE\n(256) to 28.  This call to snprintf() needs to be updated as well.\nReported by Dan Carpenter.\n\nReviewed-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "62411ab2fe5f002dff27417630ddf02cc40ca404",
      "tree": "0265e2d9cf87d4226ffe3ad909dd46eb6c079823",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Shirish Pargaonkar",
        "email": "shirishpargaonkar@gmail.com",
        "time": "Sun Jul 10 06:55:32 2011 -0500"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Jul 12 19:14:23 2011 +0000"
      },
      "message": "cifs: Fix signing failure when server mandates signing for NTLMSSP\n\nWhen using NTLMSSP authentication mechanism, if server mandates\nsigning, keep the flags in type 3 messages of the NTLMSSP exchange\nsame as in type 1 messages (i.e. keep the indicated capabilities same).\n\nSome of the servers such as Samba, expect the flags such as\nNegotiate_Key_Exchange in type 3 message of NTLMSSP exchange as well.\nSome servers like Windows do not.\n\nhttps://bugzilla.samba.org/show_bug.cgi?id\u003d8212\n\nSigned-off-by: Shirish Pargaonkar \u003cshirishpargaonkar@gmail\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "3942ae5319640ced5844b75f44884e4bcb8a2f16",
      "tree": "cc9eee61c37d18e1887f0723d338b121561dc0b9",
      "parents": [
        "1ce533686c7d40bf900dc346a7279c17a9ee8e0e"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Jul 11 08:53:30 2011 +0100"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:46 2011 +0100"
      },
      "message": "GFS2: Fix race during filesystem mount\n\nThere is a potential race during filesystem mounting which has recently\nbeen reported. It occurs when the userland gfs_controld is able to\nprocess requests fast enough that it tries to use the sysfs interface\nbefore the lock module is properly initialised. This is a pretty\nunusual case as normally the lock module initialisation is very quick\ncompared with gfs_controld.\n\nThis patch adds an interruptible completion which is used to ensure that\nuserland will wait for the initialisation of the lock module to\ncomplete.\n\nThere are other potential solutions to this problem, but this is the\nquickest at this stage and has been tested both with and without\nmount.gfs2 present in the system.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nReported-by: David Booher \u003cdbooher@adams.net\u003e\n"
    },
    {
      "commit": "1ce533686c7d40bf900dc346a7279c17a9ee8e0e",
      "tree": "fceea4beb94bb819577ea410919c2b603ddef30f",
      "parents": [
        "620917de59eeb934b9f8cf35cc2d95c1ac8ed0fc"
      ],
      "author": {
        "name": "Benjamin Marzinski",
        "email": "bmarzins@redhat.com",
        "time": "Mon Jun 13 14:27:40 2011 -0500"
      },
      "committer": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Tue Jul 12 09:15:24 2011 +0100"
      },
      "message": "GFS2: force a log flush when invalidating the rindex glock\n\nRight now, there is nothing that forces the log to get flushed when a node\ndrops its rindex glock so that another node can grow the filesystem. If the\nlog doesn\u0027t get flushed, GFS2 can corrupt the sd_log_le_rg list in the\nfollowing way.\n\nA node puts an rgd on the list in rg_lo_add(), and then the rindex glock is\ndropped so the other node can grow the filesystem. When the node reacquires the\nrindex glock, that rgd gets deleted in clear_rgrpdi() before ever being\nremoved from the list by gfs2_log_flush().\n\nThis code simply forces a log flush when the rindex glock is invalidated,\nsolving the problem.\n\nSigned-off-by: Benjamin Marzinski \u003cbmarzins@redhat.com\u003e\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\n"
    },
    {
      "commit": "e5012d1f3861d18c7f3814e757c1c3ab3741dbcd",
      "tree": "9dc6dd5cdac41a0bcbee593cb31b5866530fe036",
      "parents": [
        "b55c59892e1f3b6c7d4b9ccffb4263e1486fb990"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Mon Jul 11 17:17:42 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jul 11 19:14:38 2011 -0400"
      },
      "message": "NFSv4.1: update nfs4_fattr_bitmap_maxsz\n\nAttribute IDs assigned in RFC 5661 now require three bitmaps.\nFixes hitting a BUG_ON in xdr_shrink_bufhead when getting ACLs.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nCc:stable@kernel.org [2.6.39]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "71a1b44b036457169e7974eea0b5b37f64176952",
      "tree": "f6756944ee46e2cb9225c46941a08db824094140",
      "parents": [
        "c891f2cd89c7a2b4d51d009e94c74a1e31626528",
        "f484b5d001a972a42129570e98086a2a6d216ce0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 11 12:48:24 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 11 12:48:24 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: drop spinlock before calling cifs_put_tlink\n  cifs: fix expand_dfs_referral\n  cifs: move bdi_setup_and_register outside of CONFIG_CIFS_DFS_UPCALL\n  cifs: factor smb_vol allocation out of cifs_setup_volume_info\n  cifs: have cifs_cleanup_volume_info not take a double pointer\n  cifs: fix build_unc_path_to_root to account for a prefixpath\n  cifs: remove bogus call to cifs_cleanup_volume_info\n"
    },
    {
      "commit": "f484b5d001a972a42129570e98086a2a6d216ce0",
      "tree": "1345cdda657b020acc0ca5da7645119d6740cbb3",
      "parents": [
        "b9bce2e9f9936cfd12fbc62ead11edcdd46dec7e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jul 11 10:16:34 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Mon Jul 11 18:40:52 2011 +0000"
      },
      "message": "cifs: drop spinlock before calling cifs_put_tlink\n\n...as that function can sleep.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b9bce2e9f9936cfd12fbc62ead11edcdd46dec7e",
      "tree": "dc2c4677b3530b612d11489800128e53d27b27ba",
      "parents": [
        "20547490c12b0ee3d32152b85e9f9bd183aa7224"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jul 06 08:10:39 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Jul 09 21:25:57 2011 +0000"
      },
      "message": "cifs: fix expand_dfs_referral\n\nRegression introduced in commit 724d9f1cfba.\n\nPrior to that, expand_dfs_referral would regenerate the mount data string\nand then call cifs_parse_mount_options to re-parse it (klunky, but it\nworked). The above commit moved cifs_parse_mount_options out of cifs_mount,\nso the re-parsing of the new mount options no longer occurred. Fix it by\nmaking expand_dfs_referral re-parse the mount options.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "20547490c12b0ee3d32152b85e9f9bd183aa7224",
      "tree": "98cff812d83763a35e1820faad54e01612947771",
      "parents": [
        "04db79b015dafcb79371fda6b5c32ffdbd31a2ff"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Sat Jul 09 12:21:07 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Sat Jul 09 20:29:51 2011 +0000"
      },
      "message": "cifs: move bdi_setup_and_register outside of CONFIG_CIFS_DFS_UPCALL\n\nThis needs to be done regardless of whether that KConfig option is set\nor not.\n\nReported-by: Sven-Haegar Koch \u003chaegar@sdinet.de\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "1acc9309eb2674533944f48dbaaa53e7750e3947",
      "tree": "255f346c01a33906b612852d5fb008da1f4520da",
      "parents": [
        "c2d197e82b6267fd3338f3fbcb12750ca9f5abda",
        "149e2d76b4886c4c7ff5e077646a8ba3563c8026"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 08 23:25:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 08 23:25:45 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  btrfs: fix oops when doing space balance\n  Btrfs: don\u0027t panic if we get an error while balancing V2\n  btrfs: add missing options displayed in mount output\n"
    },
    {
      "commit": "54af2bd25cd489fe9facca15d18a2ca7e070ab2f",
      "tree": "eeaad31c27efbdf709ae07a66ac8df4302cff56a",
      "parents": [
        "c60ffcbb625cf7c570bfce904f0bb525ddeaba65",
        "1316d4da3f632d5843d5a446203e73067dc40f09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 08 09:00:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 08 09:00:51 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: unpin stale inodes directly in IOP_COMMITTED\n"
    },
    {
      "commit": "04db79b015dafcb79371fda6b5c32ffdbd31a2ff",
      "tree": "eef264d76b4f352d56be896b950631d857ec61b0",
      "parents": [
        "f9e59bcba2cff580a3ccf62e89460f9eed295d89"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jul 06 08:10:38 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jul 08 03:51:23 2011 +0000"
      },
      "message": "cifs: factor smb_vol allocation out of cifs_setup_volume_info\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "c902ce1bfb40d8b049bd2319b388b4b68b04bc27",
      "tree": "7dcb1e8378f8ec8e7ad7684cd26e9d5a1b5b22d1",
      "parents": [
        "075d9db13183c102770dc6cefabfee1b832f9614"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jul 07 12:19:48 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 07 13:21:56 2011 -0700"
      },
      "message": "FS-Cache: Add a helper to bulk uncache pages on an inode\n\nAdd an FS-Cache helper to bulk uncache pages on an inode.  This will\nonly work for the circumstance where the pages in the cache correspond\n1:1 with the pages attached to an inode\u0027s page cache.\n\nThis is required for CIFS and NFS: When disabling inode cookie, we were\nreturning the cookie and setting cifsi-\u003efscache to NULL but failed to\ninvalidate any previously mapped pages.  This resulted in \"Bad page\nstate\" errors and manifested in other kind of errors when running\nfsstress.  Fix it by uncaching mapped pages when we disable the inode\ncookie.\n\nThis patch should fix the following oops and \"Bad page state\" errors\nseen during fsstress testing.\n\n  ------------[ cut here ]------------\n  kernel BUG at fs/cachefiles/namei.c:201!\n  invalid opcode: 0000 [#1] SMP\n  Pid: 5, comm: kworker/u:0 Not tainted 2.6.38.7-30.fc15.x86_64 #1 Bochs Bochs\n  RIP: 0010: cachefiles_walk_to_object+0x436/0x745 [cachefiles]\n  RSP: 0018:ffff88002ce6dd00  EFLAGS: 00010282\n  RAX: ffff88002ef165f0 RBX: ffff88001811f500 RCX: 0000000000000000\n  RDX: 0000000000000000 RSI: 0000000000000100 RDI: 0000000000000282\n  RBP: ffff88002ce6dda0 R08: 0000000000000100 R09: ffffffff81b3a300\n  R10: 0000ffff00066c0a R11: 0000000000000003 R12: ffff88002ae54840\n  R13: ffff88002ae54840 R14: ffff880029c29c00 R15: ffff88001811f4b0\n  FS:  00007f394dd32720(0000) GS:ffff88002ef00000(0000) knlGS:0000000000000000\n  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n  CR2: 00007fffcb62ddf8 CR3: 000000001825f000 CR4: 00000000000006e0\n  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n  Process kworker/u:0 (pid: 5, threadinfo ffff88002ce6c000, task ffff88002ce55cc0)\n  Stack:\n   0000000000000246 ffff88002ce55cc0 ffff88002ce6dd58 ffff88001815dc00\n   ffff8800185246c0 ffff88001811f618 ffff880029c29d18 ffff88001811f380\n   ffff88002ce6dd50 ffffffff814757e4 ffff88002ce6dda0 ffffffff8106ac56\n  Call Trace:\n   cachefiles_lookup_object+0x78/0xd4 [cachefiles]\n   fscache_lookup_object+0x131/0x16d [fscache]\n   fscache_object_work_func+0x1bc/0x669 [fscache]\n   process_one_work+0x186/0x298\n   worker_thread+0xda/0x15d\n   kthread+0x84/0x8c\n   kernel_thread_helper+0x4/0x10\n  RIP  cachefiles_walk_to_object+0x436/0x745 [cachefiles]\n  ---[ end trace 1d481c9af1804caa ]---\n\nI tested the uncaching by the following means:\n\n (1) Create a big file on my NFS server (104857600 bytes).\n\n (2) Read the file into the cache with md5sum on the NFS client.  Look in\n     /proc/fs/fscache/stats:\n\n\tPages  : mrk\u003d25601 unc\u003d0\n\n (3) Open the file for read/write (\"bash 5\u003c\u003e/warthog/bigfile\").  Look in proc\n     again:\n\n\tPages  : mrk\u003d25601 unc\u003d25601\n\nReported-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-and-Tested-by: Suresh Jayaraman \u003csjayaraman@suse.de\u003e\ncc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "149e2d76b4886c4c7ff5e077646a8ba3563c8026",
      "tree": "0631640e19618a4de26b3a81f90f91fd819dae0a",
      "parents": [
        "508794eb5ec2a2b832742e78c6766844b10c0c94"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Jul 06 18:51:53 2011 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 06 18:51:53 2011 -0400"
      },
      "message": "btrfs: fix oops when doing space balance\n\nWe need to make sure the data relocation inode doesn\u0027t go through\nthe delayed metadata updates, otherwise we get an oops during balance:\n\nkernel BUG at fs/btrfs/relocation.c:4303!\n[SNIP]\nCall Trace:\n [\u003cffffffffa03143fd\u003e] ? update_ref_for_cow+0x22d/0x330 [btrfs]\n [\u003cffffffffa0314951\u003e] __btrfs_cow_block+0x451/0x5e0 [btrfs]\n [\u003cffffffffa031355d\u003e] ? read_block_for_search+0x14d/0x4d0 [btrfs]\n [\u003cffffffffa0314beb\u003e] btrfs_cow_block+0x10b/0x240 [btrfs]\n [\u003cffffffffa031acae\u003e] btrfs_search_slot+0x49e/0x7a0 [btrfs]\n [\u003cffffffffa032d8af\u003e] btrfs_lookup_inode+0x2f/0xa0 [btrfs]\n [\u003cffffffff8147bf0e\u003e] ? mutex_lock+0x1e/0x50\n [\u003cffffffffa0380cf1\u003e] btrfs_update_delayed_inode+0x71/0x160 [btrfs]\n [\u003cffffffffa037ff27\u003e] ? __btrfs_release_delayed_node+0x67/0x190 [btrfs]\n [\u003cffffffffa0381cf8\u003e] btrfs_run_delayed_items+0xe8/0x120 [btrfs]\n [\u003cffffffffa03365e0\u003e] btrfs_commit_transaction+0x250/0x850 [btrfs]\n [\u003cffffffff810f91d9\u003e] ? find_get_pages+0x39/0x130\n [\u003cffffffffa0336cd5\u003e] ? join_transaction+0x25/0x250 [btrfs]\n [\u003cffffffff81081de0\u003e] ? wake_up_bit+0x40/0x40\n [\u003cffffffffa03785fa\u003e] prepare_to_relocate+0xda/0xf0 [btrfs]\n [\u003cffffffffa037f2bb\u003e] relocate_block_group+0x4b/0x620 [btrfs]\n [\u003cffffffffa0334cf5\u003e] ? btrfs_clean_old_snapshots+0x35/0x150 [btrfs]\n [\u003cffffffffa037fa43\u003e] btrfs_relocate_block_group+0x1b3/0x2e0 [btrfs]\n [\u003cffffffffa0368ec0\u003e] ? btrfs_tree_unlock+0x50/0x50 [btrfs]\n [\u003cffffffffa035e39b\u003e] btrfs_relocate_chunk+0x8b/0x670 [btrfs]\n [\u003cffffffffa031303d\u003e] ? btrfs_set_path_blocking+0x3d/0x50 [btrfs]\n [\u003cffffffffa03577d8\u003e] ? read_extent_buffer+0xd8/0x1d0 [btrfs]\n [\u003cffffffffa031bea1\u003e] ? btrfs_previous_item+0xb1/0x150 [btrfs]\n [\u003cffffffffa03577d8\u003e] ? read_extent_buffer+0xd8/0x1d0 [btrfs]\n [\u003cffffffffa035f5aa\u003e] btrfs_balance+0x21a/0x2b0 [btrfs]\n [\u003cffffffffa0368898\u003e] btrfs_ioctl+0x798/0xd20 [btrfs]\n [\u003cffffffff8111e358\u003e] ? handle_mm_fault+0x148/0x270\n [\u003cffffffff814809e8\u003e] ? do_page_fault+0x1d8/0x4b0\n [\u003cffffffff81160d6a\u003e] do_vfs_ioctl+0x9a/0x540\n [\u003cffffffff811612b1\u003e] sys_ioctl+0xa1/0xb0\n [\u003cffffffff81484ec2\u003e] system_call_fastpath+0x16/0x1b\n[SNIP]\nRIP  [\u003cffffffffa037c1cc\u003e] btrfs_reloc_cow_block+0x22c/0x270 [btrfs]\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "508794eb5ec2a2b832742e78c6766844b10c0c94",
      "tree": "3ee4f10297e5e99aa1092c3f82d68ea8543a9dba",
      "parents": [
        "0942caa373c676dca614ea8352ac77e0270aba73"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Sat Jul 02 21:24:41 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 06 18:46:43 2011 -0400"
      },
      "message": "Btrfs: don\u0027t panic if we get an error while balancing V2\n\nA user reported an error where if we try to balance an fs after a device has\nbeen removed it will blow up.  This is because we get an EIO back and this is\nwhere BUG_ON(ret) bites us in the ass.  To fix we just exit.  Thanks,\n\nReported-by: Anand Jain \u003cAnand.Jain@oracle.com\u003e\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "0942caa373c676dca614ea8352ac77e0270aba73",
      "tree": "0a6a1bdceeb030566fcba6a6bfa322eb79f2d8d9",
      "parents": [
        "2f7e33d432d097a2a7f467b031bf18be91cb3d49"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Tue Jun 28 15:10:37 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Wed Jul 06 18:46:43 2011 -0400"
      },
      "message": "btrfs: add missing options displayed in mount output\n\nThere are three missed mount options settable by user which are not\ncurrently displayed in mount output.\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "1316d4da3f632d5843d5a446203e73067dc40f09",
      "tree": "6ccaf36953d67749ab5943898cac345cf35ea738",
      "parents": [
        "4a33821236f2ef3af0081e8a5eec1301cbed3125"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 04 05:27:36 2011 +0000"
      },
      "committer": {
        "name": "Alex Elder",
        "email": "aelder@sgi.com",
        "time": "Wed Jul 06 15:44:40 2011 -0500"
      },
      "message": "xfs: unpin stale inodes directly in IOP_COMMITTED\n\nWhen inodes are marked stale in a transaction, they are treated\nspecially when the inode log item is being inserted into the AIL.\nIt tries to avoid moving the log item forward in the AIL due to a\nrace condition with the writing the underlying buffer back to disk.\nThe was \"fixed\" in commit de25c18 (\"xfs: avoid moving stale inodes\nin the AIL\").\n\nTo avoid moving the item forward, we return a LSN smaller than the\ncommit_lsn of the completing transaction, thereby trying to trick\nthe commit code into not moving the inode forward at all. I\u0027m not\nsure this ever worked as intended - it assumes the inode is already\nin the AIL, but I don\u0027t think the returned LSN would have been small\nenough to prevent moving the inode. It appears that the reason it\nworked is that the lower LSN of the inodes meant they were inserted\ninto the AIL and flushed before the inode buffer (which was moved to\nthe commit_lsn of the transaction).\n\nThe big problem is that with delayed logging, the returning of the\ndifferent LSN means insertion takes the slow, non-bulk path.  Worse\nyet is that insertion is to a position -before- the commit_lsn so it\nis doing a AIL traversal on every insertion, and has to walk over\nall the items that have already been inserted into the AIL. It\u0027s\nexpensive.\n\nTo compound the matter further, with delayed logging inodes are\nlikely to go from clean to stale in a single checkpoint, which means\nthey aren\u0027t even in the AIL at all when we come across them at AIL\ninsertion time. Hence these were all getting inserted into the AIL\nwhen they simply do not need to be as inodes marked XFS_ISTALE are\nnever written back.\n\nTransactional/recovery integrity is maintained in this case by the\nother items in the unlink transaction that were modified (e.g. the\nAGI btree blocks) and committed in the same checkpoint.\n\nSo to fix this, simply unpin the stale inodes directly in\nxfs_inode_item_committed() and return -1 to indicate that the AIL\ninsertion code does not need to do any further processing of these\ninodes.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Alex Elder \u003caelder@sgi.com\u003e\n"
    },
    {
      "commit": "f9e59bcba2cff580a3ccf62e89460f9eed295d89",
      "tree": "0b1409174fa9e2be92b8b34b810749138f66dbee",
      "parents": [
        "b2a0fa152072f0085fa8d8eb0dbf9b3b0c5952fc"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jul 06 08:10:37 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 06 20:03:05 2011 +0000"
      },
      "message": "cifs: have cifs_cleanup_volume_info not take a double pointer\n\n...as that makes for a cumbersome interface. Make it take a regular\nsmb_vol pointer and rely on the caller to zero it out if needed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "b2a0fa152072f0085fa8d8eb0dbf9b3b0c5952fc",
      "tree": "59e205c8c98301f1465d7ff1bad45b8f833456b2",
      "parents": [
        "677d8537d875832019fa989186f084ba47ecd93d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jul 06 08:10:36 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 06 20:03:05 2011 +0000"
      },
      "message": "cifs: fix build_unc_path_to_root to account for a prefixpath\n\nRegression introduced by commit f87d39d9513.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "677d8537d875832019fa989186f084ba47ecd93d",
      "tree": "28e5931d4c480c8a90e722cb0a0e6f1bef46cea9",
      "parents": [
        "de3796e77a587b28f0c9d8e04c02894d3939dc4e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 05 17:37:37 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Wed Jul 06 20:03:04 2011 +0000"
      },
      "message": "cifs: remove bogus call to cifs_cleanup_volume_info\n\nThis call to cifs_cleanup_volume_info is clearly wrong. As soon as it\u0027s\ncalled the following call to cifs_get_tcp_session will oops as the\nvolume_info pointer will then be NULL.\n\nThe caller of cifs_mount should clean up this data since it passed it\nin. There\u0027s no need for us to call this here.\n\nRegression introduced by commit 724d9f1cfba.\n\nReported-by: Adam Williamson \u003cawilliam@redhat.com\u003e\nCc: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "bcb65a797eb7c51e4f227dd19295f14d38738fee",
      "tree": "7429c3e68bbcb203089a81ac2177613f3980f77f",
      "parents": [
        "23c570a67448e803408191f529ed9a83fd34a25a"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Wed Jul 06 12:26:05 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 12:15:16 2011 -0700"
      },
      "message": "FDPIC: Fix memory leak\n\nThe shdr4extnum variable isn\u0027t being freed in the cleanup process of\nelf_fdpic_core_dump().\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a51cb91d81f8e6fc4e5e08b772cc3ceb13ac9d37",
      "tree": "b6289a258d552b9c0daea02b898425d911f4fee9",
      "parents": [
        "a2fa83faf47b514ab947cea916d3691b66525073"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed Jul 06 12:33:55 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 06 10:41:13 2011 -0700"
      },
      "message": "fs: fix lock initialization\n\nlocks_alloc_lock() assumed that the allocated struct file_lock is\nalready initialized to zero members.  This is only true for the first\nallocation of the structure, after reuse some of the members will have\nrandom values.\n\nThis will for example result in passing random fl_start values to\nuserspace in fuse for FL_FLOCK locks, which is an information leak at\nbest.\n\nFix by reinitializing those members which may be non-zero after freeing.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nCC: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "121782a248f11c63c7c0fc78d4a68a54e99ee37d",
      "tree": "fd2a93f961e472bf146c8b752ab303f612d93ed1",
      "parents": [
        "a8728d35549d3203a8cb0055b9d2c217a21ac7eb",
        "d7f124f129a6aea99938e0d4172c741b56fefeda"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 05 13:15:57 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 05 13:15:57 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix sync and dio writes across stripe boundaries\n  libceph: fix page calculation for non-page-aligned io\n  ceph: fix page alignment corrections\n"
    },
    {
      "commit": "a8728d35549d3203a8cb0055b9d2c217a21ac7eb",
      "tree": "64c3fa6e2ccf72dc5ee0876259349f62481df9d8",
      "parents": [
        "fe0d42203cb5616eeff68b14576a0f7e2dd56625",
        "032016a56a1e9c83646435b32e4416d499e1f1ce"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 05 10:04:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 05 10:04:27 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/hch/hfsplus:\n  hfsplus: Fix double iput of the same inode in hfsplus_fill_super()\n  hfsplus: add missing call to bio_put()\n"
    },
    {
      "commit": "ee1b3ea9e6171d7a842527a44873f9f51e6f239b",
      "tree": "550a4d42bcf0d3e7f70caada1605171fd6e832ad",
      "parents": [
        "daf54f1f363a61c618662ef66d4bf09d2b090941"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 21 07:18:26 2011 -0400"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Fri Jul 01 16:15:30 2011 +0000"
      },
      "message": "cifs: set socket send and receive timeouts before attempting connect\n\nBenjamin S. reported that he was unable to suspend his machine while\nit had a cifs share mounted. The freezer caused this to spew when he\ntried it:\n\n-----------------------[snip]------------------\nPM: Syncing filesystems ... done.\nFreezing user space processes ... (elapsed 0.01 seconds) done.\nFreezing remaining freezable tasks ...\nFreezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy\u003d0):\ncifsd         S ffff880127f7b1b0     0  1821      2 0x00800000\n ffff880127f7b1b0 0000000000000046 ffff88005fe008a8 ffff8800ffffffff\n ffff880127cee6b0 0000000000011100 ffff880127737fd8 0000000000004000\n ffff880127737fd8 0000000000011100 ffff880127f7b1b0 ffff880127736010\nCall Trace:\n [\u003cffffffff811e85dd\u003e] ? sk_reset_timer+0xf/0x19\n [\u003cffffffff8122cf3f\u003e] ? tcp_connect+0x43c/0x445\n [\u003cffffffff8123374e\u003e] ? tcp_v4_connect+0x40d/0x47f\n [\u003cffffffff8126ce41\u003e] ? schedule_timeout+0x21/0x1ad\n [\u003cffffffff8126e358\u003e] ? _raw_spin_lock_bh+0x9/0x1f\n [\u003cffffffff811e81c7\u003e] ? release_sock+0x19/0xef\n [\u003cffffffff8123e8be\u003e] ? inet_stream_connect+0x14c/0x24a\n [\u003cffffffff8104485b\u003e] ? autoremove_wake_function+0x0/0x2a\n [\u003cffffffffa02ccfe2\u003e] ? ipv4_connect+0x39c/0x3b5 [cifs]\n [\u003cffffffffa02cd7b7\u003e] ? cifs_reconnect+0x1fc/0x28a [cifs]\n [\u003cffffffffa02cdbdc\u003e] ? cifs_demultiplex_thread+0x397/0xb9f [cifs]\n [\u003cffffffff81076afc\u003e] ? perf_event_exit_task+0xb9/0x1bf\n [\u003cffffffffa02cd845\u003e] ? cifs_demultiplex_thread+0x0/0xb9f [cifs]\n [\u003cffffffffa02cd845\u003e] ? cifs_demultiplex_thread+0x0/0xb9f [cifs]\n [\u003cffffffff810444a1\u003e] ? kthread+0x7a/0x82\n [\u003cffffffff81002d14\u003e] ? kernel_thread_helper+0x4/0x10\n [\u003cffffffff81044427\u003e] ? kthread+0x0/0x82\n [\u003cffffffff81002d10\u003e] ? kernel_thread_helper+0x0/0x10\n\nRestarting tasks ... done.\n-----------------------[snip]------------------\n\nWe do attempt to perform a try_to_freeze in cifs_reconnect, but the\nconnection attempt itself seems to be taking longer than 20s to time\nout. The connect timeout is governed by the socket send and receive\ntimeouts, so we can shorten that period by setting those timeouts\nbefore attempting the connect instead of after.\n\nAdam Williamson tested the patch and said that it seems to have fixed\nsuspending on his laptop when a cifs share is mounted.\n\nReported-by: Benjamin S \u003cda_joind@gmx.net\u003e\nTested-by: Adam Williamson \u003cawilliam@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "032016a56a1e9c83646435b32e4416d499e1f1ce",
      "tree": "2918b2e31c5cf65b5ea1a8acd087bfe6dd7a94b7",
      "parents": [
        "50176ddefa4a942419cb693dd2d8345bfdcde67c"
      ],
      "author": {
        "name": "Alexey Khoroshilov",
        "email": "khoroshilov@ispras.ru",
        "time": "Fri Jun 24 01:15:02 2011 +0400"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:38:39 2011 +0200"
      },
      "message": "hfsplus: Fix double iput of the same inode in hfsplus_fill_super()\n\nThere is a misprint in resource deallocation code on error path in\nhfsplus_fill_super(): the sbi-\u003ealloc_file inode is iput twice,\nwhile the root inode in not iput at all.\n\nFound by Linux Driver Verification project (linuxtesting.org).\n\nSigned-off-by: Alexey Khoroshilov \u003ckhoroshilov@ispras.ru\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "50176ddefa4a942419cb693dd2d8345bfdcde67c",
      "tree": "922781d0151cf2e2939056b7dd44932f0b7e559f",
      "parents": [
        "ca56a95eedcc95f8fea7b49c87565cd961d74fe2"
      ],
      "author": {
        "name": "Seth Forshee",
        "email": "seth.forshee@canonical.com",
        "time": "Tue May 31 16:35:50 2011 -0500"
      },
      "committer": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Thu Jun 30 13:28:32 2011 +0200"
      },
      "message": "hfsplus: add missing call to bio_put()\n\nhfsplus leaks bio objects by failing to call bio_put() on the bios\nit allocates. Add the missing call to fix the leak.\n\nSigned-off-by: Seth Forshee \u003cseth.forshee@canonical.com\u003e\nCc: \u003cstable@kernel.org\u003e # .38.x, .39.x\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "2bea038c52e88badbbd5b420c1de918f7f2579e9",
      "tree": "84e3c8533b493f0c4cc64e27e37ffb96d81a4521",
      "parents": [
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Thu Jun 16 11:35:46 2011 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 28 14:12:11 2011 -0400"
      },
      "message": "pnfs: write: Set mds_offset in the generic layer - it is needed by all LDs\n\nIn current pnfs tree, all the layouts set mds_offset in their\n.write_pagelist member.\nmds_offset is only used by generic layer and should be handled by it.\n\nThis patch is for upstream. It is needed in this -rc series to fix a\nbug in objects layout_commit.\n\nI\u0027ll send patches for objects and blocks to be\nsquashed into current pnfs tree.\n\nTODO: It looks like the read path needs the same patch.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1d1221f375c94ef961ba8574ac4f85c8870ddd51",
      "tree": "1e05f1c33bef03a88745c55ac9891b8423ae1795",
      "parents": [
        "b0af8dfdd67699e25083478c63eedef2e72ebd85"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Fri Jun 24 16:08:38 2011 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 28 09:39:11 2011 -0700"
      },
      "message": "proc: restrict access to /proc/PID/io\n\n/proc/PID/io may be used for gathering private information.  E.g.  for\nopenssh and vsftpd daemons wchars/rchars may be used to learn the\nprecise password length.  Restrict it to processes being able to ptrace\nthe target process.\n\nptrace_may_access() is needed to prevent keeping open file descriptor of\n\"io\" file, executing setuid binary and gathering io information of the\nsetuid\u0027ed process.\n\nSigned-off-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08142579b6ca35883c1ed066a2681de6f6917062",
      "tree": "00735ed37753533f3b645714770b4fb036b5f7e0",
      "parents": [
        "9b679320a5fbf46454011e5c62e0b8991b0956d1"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Jun 27 16:18:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "mm: fix assertion mapping-\u003enrpages \u003d\u003d 0 in end_writeback()\n\nUnder heavy memory and filesystem load, users observe the assertion\nmapping-\u003enrpages \u003d\u003d 0 in end_writeback() trigger.  This can be caused by\npage reclaim reclaiming the last page from a mapping in the following\nrace:\n\n\tCPU0\t\t\t\tCPU1\n  ...\n  shrink_page_list()\n    __remove_mapping()\n      __delete_from_page_cache()\n        radix_tree_delete()\n\t\t\t\t\tevict_inode()\n\t\t\t\t\t  truncate_inode_pages()\n\t\t\t\t\t    truncate_inode_pages_range()\n\t\t\t\t\t      pagevec_lookup() - finds nothing\n\t\t\t\t\t  end_writeback()\n\t\t\t\t\t    mapping-\u003enrpages !\u003d 0 -\u003e BUG\n        page-\u003emapping \u003d NULL\n        mapping-\u003enrpages--\n\nFix the problem by doing a reliable check of mapping-\u003enrpages under\nmapping-\u003etree_lock in end_writeback().\n\nAnalyzed by Jay \u003cjinshan.xiong@whamcloud.com\u003e, lost in LKML, and dug out\nby Miklos Szeredi \u003cmszeredi@suse.de\u003e.\n\nCc: Jay \u003cjinshan.xiong@whamcloud.com\u003e\nCc: Miklos Szeredi \u003cmszeredi@suse.de\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b4b2482e70eba10dd98653a3a5ac68126565e24",
      "tree": "81f933ce6291135529cda6581c59c55386d2832e",
      "parents": [
        "8c95aa60d2ae3c4e63705ee0f18e155898b09662"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Mon Jun 27 16:18:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:12 2011 -0700"
      },
      "message": "romfs: fix romfs_get_unmapped_area() argument check\n\nromfs_get_unmapped_area() checks argument `len\u0027 without considering\nPAGE_ALIGN which will cause do_mmap_pgoff() return -EINVAL error after\ncommit f67d9b1576c (\"nommu: add page_align to mmap\").\n\nFix the check by changing it in same way ramfs_nommu_get_unmapped_area()\nwas changed in ramfs/file-nommu.c.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "af4087e0e682df12bdffec5cfafc2fec9208716e",
      "tree": "564622df71c8b5666be24cbfd93f58516791d180",
      "parents": [
        "4699d4423c07a1db35ea9453eac3a07e818338f9",
        "2f7e33d432d097a2a7f467b031bf18be91cb3d49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 13:32:14 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 13:32:14 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:\n  btrfs: fix inconsonant inode information\n  Btrfs: make sure to update total_bitmaps when freeing cache V3\n  Btrfs: fix type mismatch in find_free_extent()\n  Btrfs: make sure to record the transid in new inodes\n"
    },
    {
      "commit": "4699d4423c07a1db35ea9453eac3a07e818338f9",
      "tree": "a16641f1a1ef5d4a03122d58a1a4ff6514d21b4f",
      "parents": [
        "375ac3e09640fb16b6e6f1a1f1ee8aec30183fdf",
        "4a33821236f2ef3af0081e8a5eec1301cbed3125"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 09:01:29 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 09:01:29 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs\n\n* \u0027for-linus\u0027 of git://oss.sgi.com/xfs/xfs:\n  xfs: prevent bogus assert when trying to remove non-existent attribute\n  xfs: clear XFS_IDIRTY_RELEASE on truncate down\n  xfs: reset inode per-lifetime state when recycling it\n"
    },
    {
      "commit": "2f7e33d432d097a2a7f467b031bf18be91cb3d49",
      "tree": "a1729a436b3c9921390e23cae35e5b837653dfe4",
      "parents": [
        "9b90f5135320bc74dc6c9a8c74d69fd4821d9282"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Thu Jun 23 07:27:13 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Jun 27 11:34:27 2011 -0400"
      },
      "message": "btrfs: fix inconsonant inode information\n\nWhen iputting the inode, We may leave the delayed nodes if they have some\ndelayed items that have not been dealt with. So when the inode is read again,\nwe must look up the relative delayed node, and use the information in it to\ninitialize the inode. Or we will get inconsonant inode information, it may\ncause that the same directory index number is allocated again, and hit the\nfollowing oops:\n\n[ 5447.554187] err add delayed dir index item(name: pglog_0.965_0) into the\ninsertion tree of the delayed node(root id: 262, inode id: 258, errno: -17)\n[ 5447.569766] ------------[ cut here ]------------\n[ 5447.575361] kernel BUG at fs/btrfs/delayed-inode.c:1301!\n[SNIP]\n[ 5447.790721] Call Trace:\n[ 5447.793191]  [\u003cffffffffa0641c4e\u003e] btrfs_insert_dir_item+0x189/0x1bb [btrfs]\n[ 5447.800156]  [\u003cffffffffa0651a45\u003e] btrfs_add_link+0x12b/0x191 [btrfs]\n[ 5447.806517]  [\u003cffffffffa0651adc\u003e] btrfs_add_nondir+0x31/0x58 [btrfs]\n[ 5447.812876]  [\u003cffffffffa0651d6a\u003e] btrfs_create+0xf9/0x197 [btrfs]\n[ 5447.818961]  [\u003cffffffff8111f840\u003e] vfs_create+0x72/0x92\n[ 5447.824090]  [\u003cffffffff8111fa8c\u003e] do_last+0x22c/0x40b\n[ 5447.829133]  [\u003cffffffff8112076a\u003e] path_openat+0xc0/0x2ef\n[ 5447.834438]  [\u003cffffffff810c58e2\u003e] ? __perf_event_task_sched_out+0x24/0x44\n[ 5447.841216]  [\u003cffffffff8103ecdd\u003e] ? perf_event_task_sched_out+0x59/0x67\n[ 5447.847846]  [\u003cffffffff81121a79\u003e] do_filp_open+0x3d/0x87\n[ 5447.853156]  [\u003cffffffff811e126c\u003e] ? strncpy_from_user+0x43/0x4d\n[ 5447.859072]  [\u003cffffffff8111f1f5\u003e] ? getname_flags+0x2e/0x80\n[ 5447.864636]  [\u003cffffffff8111f179\u003e] ? do_getname+0x14b/0x173\n[ 5447.870112]  [\u003cffffffff8111f1b7\u003e] ? audit_getname+0x16/0x26\n[ 5447.875682]  [\u003cffffffff8112b1ab\u003e] ? spin_lock+0xe/0x10\n[ 5447.880882]  [\u003cffffffff81112d39\u003e] do_sys_open+0x69/0xae\n[ 5447.886153]  [\u003cffffffff81112db1\u003e] sys_open+0x20/0x22\n[ 5447.891114]  [\u003cffffffff813b9aab\u003e] system_call_fastpath+0x16/0x1b\n\nFix it by reusing the old delayed node.\n\nReported-by: Jim Schutt \u003cjaschut@sandia.gov\u003e\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nTested-by: Jim Schutt \u003cjaschut@sandia.gov\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "258e43fdb00c73d424b114ae3850accd55b27cbb",
      "tree": "62f252cc4cde2a816ad2d609d80616322b26da15",
      "parents": [
        "804a007f5401f87fc6e7da1e8884dc32912e35d0",
        "daf6c4501e048eed56b256401d030d6b28e92ff1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 26 19:40:31 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 26 19:40:31 2011 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  cifs: mark CONFIG_CIFS_NFSD_EXPORT as BROKEN\n  cifs: free blkcipher in smbhash\n"
    },
    {
      "commit": "804a007f5401f87fc6e7da1e8884dc32912e35d0",
      "tree": "c94fda93a6c85b655bb8c13703a97295ce4314f6",
      "parents": [
        "8abf55883431a91d4877933240c8419b7fc17274",
        "9403c9c598e91d473c0582066e47ed2289292e45"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 26 19:39:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 26 19:39:22 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  cifs: propagate errors from cifs_get_root() to mount(2)\n  cifs: tidy cifs_do_mount() up a bit\n  cifs: more breakage on mount failures\n  cifs: close sget() races\n  cifs: pull freeing mountdata/dropping nls/freeing cifs_sb into cifs_umount()\n  cifs: move cifs_umount() call into -\u003ekill_sb()\n  cifs: pull cifs_mount() call up\n  sanitize cifs_umount() prototype\n  cifs: initialize -\u003etlink_tree in cifs_setup_cifs_sb()\n  cifs: allocate mountdata earlier\n  cifs: leak on mount if we share superblock\n  cifs: don\u0027t pass superblock to cifs_mount()\n  cifs: don\u0027t leak nls on mount failure\n  cifs: double free on mount failure\n  take bdi setup/destruction into cifs_mount/cifs_umount\n\nAcked-by: Steve French \u003csmfrench@gmail.com\u003e\n"
    },
    {
      "commit": "9b90f5135320bc74dc6c9a8c74d69fd4821d9282",
      "tree": "d149650ba8e15a1ec22b3832482e9b24ea420fa3",
      "parents": [
        "e0f5406727f1dfdc47b8ba4a0ff6eae4b0b5ed4c"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Fri Jun 24 16:02:51 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 25 09:31:06 2011 -0400"
      },
      "message": "Btrfs: make sure to update total_bitmaps when freeing cache V3\n\nA user reported this bug again where we have more bitmaps than we are supposed\nto.  This is because we failed to load the free space cache, but don\u0027t update\nthe ctl-\u003etotal_bitmaps counter when we remove entries from the tree.  This patch\nfixes this problem and we should be good to go again.  Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "e0f5406727f1dfdc47b8ba4a0ff6eae4b0b5ed4c",
      "tree": "85c481aae5bb4998b832e15b2e62a4987a76127b",
      "parents": [
        "1973f0faeb4a5f35597793c65d3c94d8fd386e10"
      ],
      "author": {
        "name": "Ilya Dryomov",
        "email": "idryomov@gmail.com",
        "time": "Sat Jun 18 20:26:38 2011 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Sat Jun 25 09:31:06 2011 -0400"
      },
      "message": "Btrfs: fix type mismatch in find_free_extent()\n\ndata parameter should be u64 because a full-sized chunk flags field is\npassed instead of 0/1 for distinguishing data from metadata.  All\nunderlying functions expect u64.\n\nSigned-off-by: Ilya Dryomov \u003cidryomov@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@oracle.com\u003e\n"
    },
    {
      "commit": "9403c9c598e91d473c0582066e47ed2289292e45",
      "tree": "95f3da790bd27de1b4a16e1f1f6f3952d274b8ab",
      "parents": [
        "5c4f1ad7c6aa3b729bd3a93b80f9417d7e978c32"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 17 10:02:59 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 24 18:39:43 2011 -0400"
      },
      "message": "cifs: propagate errors from cifs_get_root() to mount(2)\n\n... instead of just failing with -EINVAL\n\nAcked-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5c4f1ad7c6aa3b729bd3a93b80f9417d7e978c32",
      "tree": "5cae9c65a9be45b7f01efdb10e5c41238f24f6d4",
      "parents": [
        "fa18f1bdce898f0efd0c8639c901d826d01be04f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 17 09:56:55 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 24 18:39:42 2011 -0400"
      },
      "message": "cifs: tidy cifs_do_mount() up a bit\n\nAcked-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fa18f1bdce898f0efd0c8639c901d826d01be04f",
      "tree": "1165e5c3172792bf9d9ce4340380b9e7c73b7499",
      "parents": [
        "ee01a14d9ddcf3f832f9ceb837888501cb496e27"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 17 09:50:44 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 24 18:39:42 2011 -0400"
      },
      "message": "cifs: more breakage on mount failures\n\nif cifs_get_root() fails, we end up with -\u003emount() returning NULL,\nwhich is not what callers expect.  Moreover, in case of superblock\nreuse we end up leaking a superblock reference...\n\nAcked-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ee01a14d9ddcf3f832f9ceb837888501cb496e27",
      "tree": "a0ae5b81a9b7b26ce4c4a8b412b85f779157b7c4",
      "parents": [
        "d757d71bfc30669a500b72792067e8d1c5d401a5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 17 09:47:23 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 24 18:39:42 2011 -0400"
      },
      "message": "cifs: close sget() races\n\nhave -\u003es_fs_info set by the set() callback passed to sget()\n\nAcked-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d757d71bfc30669a500b72792067e8d1c5d401a5",
      "tree": "faa2fc95514ad2629d89230d1b13f1c6f865c75e",
      "parents": [
        "98ab494dd1d25388981114057cf9446250cc7dc7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 17 09:42:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 24 18:39:42 2011 -0400"
      },
      "message": "cifs: pull freeing mountdata/dropping nls/freeing cifs_sb into cifs_umount()\n\nall callers of cifs_umount() proceed to do the same thing; pull it into\ncifs_umount() itself.\n\nAcked-by: Pavel Shilovsky \u003cpiastryyy@gmail.com\u003e\nReviewed-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "98ab494dd1d25388981114057cf9446250cc7dc7"
}
