)]}'
{
  "log": [
    {
      "commit": "39f7c4db1d2d9e2e2a90abdf34811783089d217d",
      "tree": "cbc3496ce21e26b5891bb4c4d4155853317ddfb3",
      "parents": [
        "34c80b1d93e6e20ca9dea0baf583a5b5510d92d4"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Mon Nov 21 12:11:30 2011 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jan 06 23:20:12 2012 -0500"
      },
      "message": "vfs: keep list of mounts for each superblock\n\nKeep track of vfsmounts belonging to a superblock.  List is protected\nby vfsmount_lock.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nTested-by: Toshiyuki Okajima \u003ctoshi.okajima@jp.fujitsu.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "be08d6d260b6e7eb346162a1081cdf5f94fda569",
      "tree": "fde11d2b2415a1a118e0da4a62c5bd8e635cb582",
      "parents": [
        "0226f4923f6c9b40cfa1c1c1b19a6ac6b3924ead"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 06 13:32:36 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:13 2012 -0500"
      },
      "message": "switch mnt_namespace -\u003eroot to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0226f4923f6c9b40cfa1c1c1b19a6ac6b3924ead",
      "tree": "cb0f26e6329e2222a9f3b8f85887f63980a01d37",
      "parents": [
        "3a2393d71d77b034669d495b49c212a87e04abdc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 06 12:21:54 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:13 2012 -0500"
      },
      "message": "vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n\nrationale: that stuff is far tighter bound to fs/namespace.c than to\nthe guts of procfs proper.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c63181e6b6df89176b3984c6977bb5ec03d0df23",
      "tree": "2e6056a7d85e8df9dbf95e6fa4291f76a714c7c8",
      "parents": [
        "52ba1621de1479ce7e52b6d167860462e483313c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 02:35:16 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:12 2012 -0500"
      },
      "message": "vfs: move fsnotify junk to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "52ba1621de1479ce7e52b6d167860462e483313c",
      "tree": "1609df395c437e8d2c0da30cace9a2b343ca0ad8",
      "parents": [
        "1a4eeaf2a8c07404e2d1c3ff99b393fd4c207170"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 02:25:17 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:11 2012 -0500"
      },
      "message": "vfs: move mnt_devname\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1a4eeaf2a8c07404e2d1c3ff99b393fd4c207170",
      "tree": "dd67d87c51ac0338432faa5f6e6d28d56d724baa",
      "parents": [
        "fc7be130c7e91cf693d4bc2d9b11f08a5a4893d0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 02:19:55 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:11 2012 -0500"
      },
      "message": "vfs: move mnt_list to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "863d684f946eb240c7dd57d265d88315950ca5cc",
      "tree": "99b3c84299b2e273465f023bcbcc16a231529260",
      "parents": [
        "15169fe784a9846b24cdb0840329d41aebc23249"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 00:57:42 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:10 2012 -0500"
      },
      "message": "vfs: move the rest of int fields to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "15169fe784a9846b24cdb0840329d41aebc23249",
      "tree": "ef9e843dcd333204fd7fdca6d21fe96d0647da80",
      "parents": [
        "143c8c91cee7efdd732ec5f61b3471fc46192f20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 00:50:41 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:10 2012 -0500"
      },
      "message": "vfs: mnt_id/mnt_group_id moved\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "143c8c91cee7efdd732ec5f61b3471fc46192f20",
      "tree": "dd3e9a9b8b88f1876a258fe1bf274532aeb72a62",
      "parents": [
        "900148dcac6bc93ca688d64a7f9a9f8d706e0d1c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 00:46:35 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:09 2012 -0500"
      },
      "message": "vfs: mnt_ns moved to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6776db3d32b2a59198ec7ac6d32be0b9fdbd8a68",
      "tree": "d293d993f41bdea79eaeb51f404e9837a49cb039",
      "parents": [
        "32301920f44a9334f57dd94bebfc6e593b99ad47"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 00:22:05 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:08 2012 -0500"
      },
      "message": "vfs: take mnt_share/mnt_slave/mnt_slave_list and mnt_expire to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "32301920f44a9334f57dd94bebfc6e593b99ad47",
      "tree": "c8b7d1aa15244c30b5820aea30022609a12dacec",
      "parents": [
        "d10e8def07fc87488c396d2eff2c26c43bb541dd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 00:10:28 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:08 2012 -0500"
      },
      "message": "vfs: and now we can make -\u003emnt_master point to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "d10e8def07fc87488c396d2eff2c26c43bb541dd",
      "tree": "d0ad0d4c47838a096aafac353e206861cb6d62c1",
      "parents": [
        "14cf1fa8f54353d9caf6174c1e4280c8c4dcfd7a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Nov 25 00:07:16 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:08 2012 -0500"
      },
      "message": "vfs: take mnt_master to struct mount\n\nmake IS_MNT_SLAVE take struct mount * at the same time\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b41d536f7c84e7cb1c1462073150277e46f6ea8",
      "tree": "fd75f1d76947bdfc42772ff3eef4b60977162840",
      "parents": [
        "68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 23:24:33 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:06 2012 -0500"
      },
      "message": "vfs: take mnt_child/mnt_mounts to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0",
      "tree": "22fac61a982587cd53ccf05513fbe4ffe60c860d",
      "parents": [
        "83adc7532229f1909cf37c429780f02f06fe05ee"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 22:53:09 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:06 2012 -0500"
      },
      "message": "vfs: all counters taken to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a73324da7af4052e1d1ddec6a5980f552420e58b",
      "tree": "65c119bf3bb852c4298aeb24b906dc3a5be7520a",
      "parents": [
        "0714a533805a0f8ebfc6fdb6bda9f129b8c7c6d7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 22:25:07 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:05 2012 -0500"
      },
      "message": "vfs: move mnt_mountpoint to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0714a533805a0f8ebfc6fdb6bda9f129b8c7c6d7",
      "tree": "7f34ceedc12c4a680ca3509562b09ec441a0954f",
      "parents": [
        "3376f34fff5be9954fd9a9c4fd68f4a0a36d480e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 22:19:58 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:05 2012 -0500"
      },
      "message": "vfs: now it can be done - make mnt_parent point to struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3376f34fff5be9954fd9a9c4fd68f4a0a36d480e",
      "tree": "22a5995e66efd92cc394186c56deb082e4521440",
      "parents": [
        "643822b41e5e0f133438883b0be574cdaf168a2a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 22:05:19 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:04 2012 -0500"
      },
      "message": "vfs: mnt_parent moved to struct mount\n\nthe second victim...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "676da58df740f325034b8641311413c2393588e1",
      "tree": "88d1e385d368d73c7b1284da2fc46516879a867d",
      "parents": [
        "1ab597386205f8dc757cf8750465502aeae65154"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 21:47:05 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:04 2012 -0500"
      },
      "message": "vfs: spread struct mount - mnt_has_parent\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1b8e5564b9d34cbeb3047dd2be8ec9cd5e2785e2",
      "tree": "61633a9593b4d1c337d7182aee2e2d2af9e9f299",
      "parents": [
        "d5e50f74dd2ed6dd1bb4bf6fe58e5a7de4b77953"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 21:01:32 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:57:02 2012 -0500"
      },
      "message": "vfs: the first spoils - mnt_hash moved\n\ntaken out of struct vfsmount into struct mount\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c71053659e3bb27d44b79da0bb4abf5838c2060a",
      "tree": "59e86cc1602db35ffc2c3991953161f1619706b1",
      "parents": [
        "7d6fec45a5131918b51dcd76da52f2ec86a85be6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Nov 24 18:22:03 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:56:58 2012 -0500"
      },
      "message": "vfs: spread struct mount - __lookup_mnt() result\n\nswitch __lookup_mnt() to returning struct mount *; callers adjusted.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7d6fec45a5131918b51dcd76da52f2ec86a85be6",
      "tree": "82af862264cfa176a37c7d9f915806346c8df0bc",
      "parents": [
        "dabe0dc194d5d56d379a8994fff47392744b6491"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 12:14:10 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:56:57 2012 -0500"
      },
      "message": "vfs: start hiding vfsmount guts series\n\nAlmost all fields of struct vfsmount are used only by core VFS (and\na fairly small part of it, at that).  The plan: embed struct vfsmount\ninto struct mount, making the latter visible only to core parts of VFS.\nThen move fields from vfsmount to mount, eventually leaving only\nmnt_root/mnt_sb/mnt_flags in struct vfsmount.  Filesystem code still\ngets pointers to struct vfsmount and remains unchanged; all such\npointers go to struct vfsmount embedded into the instances of struct\nmount allocated by fs/namespace.c.  When fs/namespace.c et.al. get\na pointer to vfsmount, they turn it into pointer to mount (using\ncontainer_of) and work with that.\n\nThis is the first part of series; struct mount is introduced,\nallocation switched to using it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b2dba1af3c4157040303a76d25216b1713d333d0",
      "tree": "c846b1c8074d29b9fc02ef3eeda98631dfd6ee94",
      "parents": [
        "aa9c0e07bb90589186f3b5a0ca97660c2cb50806"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 23 19:26:23 2011 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:52:36 2012 -0500"
      },
      "message": "vfs: new internal helper: mnt_has_parent(mnt)\n\nvfsmounts have -\u003emnt_parent pointing either to a different vfsmount\nor to itself; it\u0027s never NULL and termination condition in loops\ntraversing the tree towards root is mnt \u003d\u003d mnt-\u003emnt_parent.  At least\none place (see the next patch) is confused about what\u0027s going on;\nlet\u0027s add an explicit helper checking it right way and use it in\nall places where we need it.  Not that there had been too many,\nbut...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ]
}
