)]}'
{
  "log": [
    {
      "commit": "9c3929cc9f7b9d3fd11783bff6f90ebd52847aaa",
      "tree": "60b082d94ded6e7f6c9b76b75150b9f3431bb27a",
      "parents": [
        "9c14c4406c973c4feb0cbb63fa646219656f6088"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "briannorris@chromium.org",
        "time": "Mon May 12 22:20:46 2025"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 12 22:53:04 2025"
      },
      "message": "rootdev: Remove myself from OWNERS\n\nChange-Id: Ic98d2525e83c89b4f7950813f0be7c14cde16d44\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/6536697\nAuto-Submit: Brian Norris \u003cbriannorris@chromium.org\u003e\nReviewed-by: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\nTested-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nCommit-Queue: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\n"
    },
    {
      "commit": "9c14c4406c973c4feb0cbb63fa646219656f6088",
      "tree": "2efa068694084267d80ad93124b9d5a8d34e1fb0",
      "parents": [
        "6d9c2eafdf0d72d4f05e1b330d3ac4f7c4e29922"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 18:56:10 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 22 23:56:49 2024"
      },
      "message": "constify string pointers to save a little space\n\nNo need for these pointers to be writable.\n\nBUG\u003dNone\nTEST\u003dCQ passes\n\nChange-Id: Ie76e36fb5e639cb77d895e377109bb81da7ad105\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5544863\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Gwendal Grignou \u003cgwendal@chromium.org\u003e\nCommit-Queue: Gwendal Grignou \u003cgwendal@chromium.org\u003e\n"
    },
    {
      "commit": "6d9c2eafdf0d72d4f05e1b330d3ac4f7c4e29922",
      "tree": "603fa1de0f7b475cfbcf75d18d50346bd5a10967",
      "parents": [
        "7b5465ab3bebd1a0fc7478e8ac82a7ede3c35191"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue May 21 12:16:05 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 21 16:43:59 2024"
      },
      "message": "test: update LD_LIBRARY_PATH more often\n\nRunning rootdev might work if the shared lib is installed in the\ncurrent system, so add it to the library path if the lib exists.\n\nBUG\u003dNone\nTEST\u003d`./rootdev_test.sh` still works\n\nChange-Id: I3c3533ae050d8e793f68dcc7a2338d2ddc6a86a2\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5554960\nReviewed-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Brian Norris \u003cbriannorris@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "7b5465ab3bebd1a0fc7478e8ac82a7ede3c35191",
      "tree": "f09370513a2ae10fbedf347dd0225ba98fea9bdf",
      "parents": [
        "c63e2954795970d31f3d3dd93cd8288d87902464"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 19:54:48 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 20 22:39:05 2024"
      },
      "message": "build: fix incremental building\n\nRunning `make; touch *.c; make` fails because the symlinks already\nexist, and creating them again fails:\n\tln: failed to create symbolic link \u0027.../rootdev/librootdev.so.1\u0027: File exists\n\tmake: *** [Makefile:20: .../rootdev/librootdev.so.1.0] Error 1\n\nAdd flags to force recreate/clobber the symlinks to fix.\n\nBUG\u003dNone\nTEST\u003d`make; touch *.c; make` works\n\nChange-Id: I67368c9446e6c59a83e1e9ca6976ea2039e93751\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5545939\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Brian Norris \u003cbriannorris@chromium.org\u003e\n"
    },
    {
      "commit": "c63e2954795970d31f3d3dd93cd8288d87902464",
      "tree": "2750f6b0539bcfbf4fbff688c1383cda980401cd",
      "parents": [
        "89f1a46d5678a939945dc812546212dbbdc47ca3"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 19:57:06 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 20 21:33:12 2024"
      },
      "message": "build: declare \"all\" as phony\n\nBUG\u003dNone\nTEST\u003dCQ passes\n\nChange-Id: Ib10b7f2e3e3f595e3fab2d56973b069380164d4d\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5544651\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\nCommit-Queue: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\n"
    },
    {
      "commit": "89f1a46d5678a939945dc812546212dbbdc47ca3",
      "tree": "5638126145d617e09c38c4d26d60c898ac65d312",
      "parents": [
        "3f602e50963e1892625ecfa2e198c6b603299e42"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 19:43:18 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 17 22:49:56 2024"
      },
      "message": "test: update LD_LIBRARY_PATH automatically\n\nWhen running the tests against local rootdev binary, it\u0027s guaranteed\nthat the shared rootdev library is not installed, so set the ldso\nsearch path to include it.\n\nBUG\u003dNone\nTEST\u003d`./rootdev_test.sh` just works\n\nChange-Id: I3716b5c84f8fb75db480f0091c247e23d39b5cc5\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5545940\nReviewed-by: Alexis Savery \u003casavery@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Alexis Savery \u003casavery@chromium.org\u003e\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "3f602e50963e1892625ecfa2e198c6b603299e42",
      "tree": "7d5b9398d181ddeb0877c61182a176c6384bb7f6",
      "parents": [
        "afe4a2e5f5f1458e38b4c11eadcd9f6b32f38a5a"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri May 17 00:37:30 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 17 03:17:23 2024"
      },
      "message": "Update license boilerplate text in source code files\n\nNormally we don\u0027t do this, but enough changes have accumulated that\nwe\u0027re doing a tree-wide one-off update of the name \u0026 style.\n\nBUG\u003dchromium:1098010\nTEST\u003d`repo upload` works\n\nChange-Id: Ibac384da9e20ee0153aed31d93e5c0a3b6b54a63\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5545825\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Alexis Savery \u003casavery@chromium.org\u003e\nCommit-Queue: Alexis Savery \u003casavery@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "afe4a2e5f5f1458e38b4c11eadcd9f6b32f38a5a",
      "tree": "c51a2f518a6fe9bc0e9ef125a2a546d75c492eaa",
      "parents": [
        "c061c8b0b476afaa5e32c639f65f38cce2370a52"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 19:40:54 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 17 03:16:07 2024"
      },
      "message": "main: -h should write help to stdout \u0026 exit 0\n\nStandard tools exit 0 when help is requested, and write those\ndetails to stdout, not stderr.  Writing to stderr \u0026 exiting\nnon-zero is fine for unknown/incorrect options.\n\nBUG\u003dNone\nTEST\u003dCQ passes\n\nChange-Id: I24aab1db5581a923387feb55872185a3f206dc5d\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5545826\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\nCommit-Queue: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "c061c8b0b476afaa5e32c639f65f38cce2370a52",
      "tree": "31e940f7f9276ad2ddaec703137d5f6e1a992fa3",
      "parents": [
        "d94f51ca24ef83f2672810196c27fa9d7936e175"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 18:57:10 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 17 00:50:25 2024"
      },
      "message": "ignore compiled objects\n\nBUG\u003dNone\nTEST\u003d`git status` is clean\n\nChange-Id: I6956a029c9a498abd435725c1ee00bc17d9ae643\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5544862\nReviewed-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Brian Norris \u003cbriannorris@chromium.org\u003e\nAuto-Submit: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "d94f51ca24ef83f2672810196c27fa9d7936e175",
      "tree": "9092eab98ff71c3ecbc4e1cd55c4dc3b3a15b514",
      "parents": [
        "7082cbf0ae51eb1044fe1a0749245e97e4fcfc89"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Thu May 16 18:58:50 2024"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 17 00:33:49 2024"
      },
      "message": "switch OWNERS to the storage team\n\nBUG\u003dNone\nTEST\u003dCQ\n\nChange-Id: Ie420f81e9366eebd8274d1ed521aee7aeb5da75b\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/5545822\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Brian Norris \u003cbriannorris@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Sarthak Kukreti \u003csarthakkukreti@google.com\u003e\nOwners-Override: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "7082cbf0ae51eb1044fe1a0749245e97e4fcfc89",
      "tree": "ee2f5c32bfa246ab0fb01de8d8b29b1a65f227c1",
      "parents": [
        "b2f37be7c25bc83b76f1b7063a4ef38b824dc4ef"
      ],
      "author": {
        "name": "Benjamin Gordon",
        "email": "bmgordon@chromium.org",
        "time": "Tue Aug 02 15:33:44 2022"
      },
      "committer": {
        "name": "Chromeos LUCI",
        "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 04 00:54:06 2022"
      },
      "message": "rootdev: Fix memory leak\n\nmatch_sysfs_device allocates a struct dirent that was used with\nreaddir_r.  When the function was converted to use readdir, the malloc\nwasn\u0027t removed, so this is now a memory leak.  Remove the malloc\nentirely, since readdir returns a pointer to its own memory.\n\nBUG\u003db:225008839\nTEST\u003dFEATURES\u003dtest emerge-octopus rootdev\n\nChange-Id: I20325e8b4baebca7ea358ccd804f761aeda2bfa1\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/3804964\nTested-by: Benjamin Gordon \u003cbmgordon@chromium.org\u003e\nReviewed-by: Jordan Abrahams-Whitehead \u003cajordanr@google.com\u003e\nCommit-Queue: Benjamin Gordon \u003cbmgordon@chromium.org\u003e\n"
    },
    {
      "commit": "b2f37be7c25bc83b76f1b7063a4ef38b824dc4ef",
      "tree": "40c0bf77fe822e8e504d99f2ef90f3e3c5b58084",
      "parents": [
        "9b7d26a6a54f5f9e02b93a5d5ebf266fd748e06c"
      ],
      "author": {
        "name": "Nicolas Norvez",
        "email": "norvez@chromium.org",
        "time": "Tue Jan 14 23:06:22 2020"
      },
      "committer": {
        "name": "Commit Bot",
        "email": "commit-bot@chromium.org",
        "time": "Tue Jan 14 23:40:39 2020"
      },
      "message": "rootdev: remove xiaochu@ from OWNERS\n\nHe\u0027s left the team.\n\nBUG\u003dchromium:995893\nTEST\u003dNone\n\nChange-Id: I2909e5ee4e4cf128c05659314d5c0ae7e0bb84a2\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/2001410\nTested-by: Nicolas Norvez \u003cnorvez@chromium.org\u003e\nAuto-Submit: Nicolas Norvez \u003cnorvez@chromium.org\u003e\nReviewed-by: Benjamin Gordon \u003cbmgordon@chromium.org\u003e\nCommit-Queue: Nicolas Norvez \u003cnorvez@chromium.org\u003e\n"
    },
    {
      "commit": "9b7d26a6a54f5f9e02b93a5d5ebf266fd748e06c",
      "tree": "844cc95718aa0b93ed0201ed31fb992d8463fe70",
      "parents": [
        "8dc336a991e5494e6cc9a0094778fee67f22ed6c"
      ],
      "author": {
        "name": "Chris McDonald",
        "email": "cjmcdonald@chromium.org",
        "time": "Fri Jun 28 20:37:05 2019"
      },
      "committer": {
        "name": "Chris McDonald",
        "email": "cjmcdonald@chromium.org",
        "time": "Fri Jun 28 20:37:25 2019"
      },
      "message": "rootdev: Add OWNERS file\n\nThis CL is populating OWNERS file based on the candidates in the Chrome OS OWNERS status sheet.\n\nBUG\u003db:132095048\nTEST\u003dNone\n\nChange-Id: I91afc597bb60e32b008f13780868c4d9007bc058\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/rootdev/+/1682217\n"
    },
    {
      "commit": "8dc336a991e5494e6cc9a0094778fee67f22ed6c",
      "tree": "96689f9644457b68573b2c85022436b895f5b650",
      "parents": [
        "f68005cfbc3d5bcf7ec202f04ded9016f97bcdef"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Thu Jul 19 03:57:29 2018"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Jul 20 12:31:38 2018"
      },
      "message": "rootdev: include missing header file.\n\nThis adds \u003csys/sysmacros.h\u003e because the\ninclusion of \u003csys/sysmacros.h\u003e by \u003csys/types.h\u003e is deprecated since\nglibc 2.25.\n\nBUG\u003dchromium:865304\nTEST\u003demerge-samus rootdev with glibc 2.27\n\nChange-Id: Ic54e089659d620a862720b9882235117eb8487b5\nReviewed-on: https://chromium-review.googlesource.com/1143004\nCommit-Ready: ChromeOS CL Exonerator Bot \u003cchromiumos-cl-exonerator@appspot.gserviceaccount.com\u003e\nTested-by: Yunlian Jiang \u003cyunlian@chromium.org\u003e\nReviewed-by: Manoj Gupta \u003cmanojgupta@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "f68005cfbc3d5bcf7ec202f04ded9016f97bcdef",
      "tree": "4cae4f3df99b2f8a5e93f1cf5154c57e0b819392",
      "parents": [
        "182cfd35498e929a913baf49768dfc6440301b15"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Wed Jul 11 02:59:07 2018"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Jul 11 19:13:04 2018"
      },
      "message": "inherit-review-settings-ok: punt old unused file\n\nBUG\u003dNone\nTEST\u003dprecq passes\n\nChange-Id: I8afc62db82905a7dcb6a07902061fa5832bd4adb\nReviewed-on: https://chromium-review.googlesource.com/1132697\nCommit-Ready: ChromeOS CL Exonerator Bot \u003cchromiumos-cl-exonerator@appspot.gserviceaccount.com\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Ben Chan \u003cbenchan@chromium.org\u003e\n"
    },
    {
      "commit": "182cfd35498e929a913baf49768dfc6440301b15",
      "tree": "ec8d36aafe029de750503637612eede08d2f086c",
      "parents": [
        "fc570685c1ca4acb871c706a66d0493b5e92c7c9"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Mon Jul 02 17:47:09 2018"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Sat Jul 07 01:48:46 2018"
      },
      "message": "rootdev: remove deprecated readdir_r\n\nglibc 2.27 has removed deprecated readdir_r, and we need to\nuse readdir to replace it.\n\nBUG\u003dchromium:859593\nTEST\u003dFEATURES\u003d\"test\" USE\u003d\"asan\" emerge-samus rootdev\n\nChange-Id: I52da7a24a077fe06a68c7092039e6c3b9ca361ae\nReviewed-on: https://chromium-review.googlesource.com/1123022\nCommit-Ready: Yunlian Jiang \u003cyunlian@chromium.org\u003e\nTested-by: Yunlian Jiang \u003cyunlian@chromium.org\u003e\nReviewed-by: Manoj Gupta \u003cmanojgupta@chromium.org\u003e\nReviewed-by: Caroline Tice \u003ccmtice@chromium.org\u003e\n"
    },
    {
      "commit": "fc570685c1ca4acb871c706a66d0493b5e92c7c9",
      "tree": "21174b0ac7e05d74185c20bc2b6bbe321bcd64cb",
      "parents": [
        "b9b8f1de0ab9d4b0e1739d7c0dc4ec232b85a5c3"
      ],
      "author": {
        "name": "Benjamin Gordon",
        "email": "bmgordon@chromium.org",
        "time": "Tue Jul 25 20:15:43 2017"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Fri Jul 28 22:04:27 2017"
      },
      "message": "rootdev: Strip partitions less aggressively\n\nIn device names like dm-N or loopN, the N is not a partition number and\nshould not be stripped off.  These can arise for example if run inside a\nchroot mounted on a loopback device.\n\nBUG\u003dchromium:748665, chromium:730144\nTEST\u003dNew unit tests.\n\nChange-Id: If7ecacbfcf00690376cb4ffc75baa45422579085\nReviewed-on: https://chromium-review.googlesource.com/585652\nCommit-Ready: Benjamin Gordon \u003cbmgordon@chromium.org\u003e\nTested-by: Benjamin Gordon \u003cbmgordon@chromium.org\u003e\nReviewed-by: Simon Glass \u003csjg@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "b9b8f1de0ab9d4b0e1739d7c0dc4ec232b85a5c3",
      "tree": "ed7bd798f46748b912df5aa7fb7dc8364d3d9048",
      "parents": [
        "5d7d7ff513315abd103d0c95e92ae646c1a7688c"
      ],
      "author": {
        "name": "Xiaochu Liu",
        "email": "xiaochu@chromium.org",
        "time": "Mon Apr 24 20:32:06 2017"
      },
      "committer": {
        "name": "chrome-bot",
        "email": "chrome-bot@chromium.org",
        "time": "Wed Apr 26 01:40:04 2017"
      },
      "message": "third_party/rootdev: support btrfs using ioctl\n\nrootdev assumes only one device exist for an FS (which is true for ext2/squashfs). FS like\nbtrfs supports multiple devices and uses an anonymous namespace for each device number. Thus sys\ncall \u0027stat\u0027 no longer works for btrfs. This change adds a function rootdev_wrapper_btrfs in\nwhich we use ioctl to read the ioctl dev info from device directly. Then in main.c and rootdev\nlibrary call, we predicate on FS type to decide whether call rootdev_wrapper or\nrootdev_wrapper_btrfs.\n\nBUG\u003dchromium:702400, chromium:698296\nTEST\u003dmanual\n\nChange-Id: I4a388192026ec36dd02c810cf5f31d02f5a87988\nReviewed-on: https://chromium-review.googlesource.com/486263\nCommit-Ready: Xiaochu Liu \u003cxiaochu@chromium.org\u003e\nTested-by: Xiaochu Liu \u003cxiaochu@chromium.org\u003e\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "5d7d7ff513315abd103d0c95e92ae646c1a7688c",
      "tree": "d6401b998ddef44214ac0add61a1e14a5845a95e",
      "parents": [
        "a4507857e42fcbb5211bc1e02213b6a87b8086a2"
      ],
      "author": {
        "name": "Dan Ehrenberg",
        "email": "dehrenberg@chromium.org",
        "time": "Thu Mar 05 00:00:24 2015"
      },
      "committer": {
        "name": "ChromeOS Commit Bot",
        "email": "chromeos-commit-bot@chromium.org",
        "time": "Sat Mar 14 08:23:43 2015"
      },
      "message": "rootdev: Use large file support (LFS)\n\nWithout LFS, stat fails with -EOVERFLOW on devices with major:minor\nnumbers that don\u0027t fit within 8 bits on 32-bit architecutres. This\npatch turns on LFS to allow that, fixing a bringup but on a new\nplatform.\n\nBUG\u003dchromium:464024\nTEST\u003dBooted onto a machine and successfully ran rootdev with a large\nmajor:minor number.\n\nChange-Id: I3dfe698e65366f4608705f56894988d2643e375f\nSigned-off-by: Dan Ehrenberg \u003cdehrenberg@chromium.org\u003e\nReviewed-on: https://chromium-review.googlesource.com/258550\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "a4507857e42fcbb5211bc1e02213b6a87b8086a2",
      "tree": "3ce43aa5a517868c9c6bceae8c0783a3e0a00db8",
      "parents": [
        "32979f65d3e98094cb9e4d3c787eb87f40277e97"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Dec 12 04:01:13 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Dec 12 18:09:45 2014"
      },
      "message": "tests: make it more flexible for the ebuild\n\nThe current code requires rootdev to be in $PWD which fails when we\nbuild out of tree (like the ebuild).\n\nBUG\u003dchromium:441571\nTEST\u003d`FEATURES\u003dtest emerge-link rootdev` passes\n\nChange-Id: I99173ceb557099c20b43f5a31b87107a144efa20\nReviewed-on: https://chromium-review.googlesource.com/234921\nTrybot-Ready: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Yunlian Jiang \u003cyunlian@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "32979f65d3e98094cb9e4d3c787eb87f40277e97",
      "tree": "3985a1f14ff56eb269057237cbccf2740b9e3337",
      "parents": [
        "7d9288a0745aa50dbcb0bb692241f0eee679254b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Dec 12 04:00:55 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Fri Dec 12 18:09:07 2014"
      },
      "message": "fix --block handling with invalid paths\n\nThe rootdev program was printing the path buffer even when the library\ncall failed.  In that case, the buffer most likely is uninitialized.\nMake sure we seed it with a NUL byte so it\u0027s always valid.\n\nBUG\u003dchromium:441571\nTEST\u003d`FEATURES\u003dtest emerge-link rootdev` passes\n\nChange-Id: I00d334376de9bedee0a3fac3b1a74e48237c06b7\nReviewed-on: https://chromium-review.googlesource.com/234920\nTrybot-Ready: Mike Frysinger \u003cvapier@chromium.org\u003e\nReviewed-by: Yunlian Jiang \u003cyunlian@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "7d9288a0745aa50dbcb0bb692241f0eee679254b",
      "tree": "82eb157a8b0c1194363d30a8d746f1b68edafda6",
      "parents": [
        "515197db4f204bf942b4d4f57bd994cc2e7e9c0c"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Tue Apr 01 06:17:20 2014"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Tue Apr 01 23:21:47 2014"
      },
      "message": "fix building w/ABIs that have broken stat structures\n\nIf the system\u0027s stat buffer is broken and doesn\u0027t declare st_dev as a\ndev_t, we hit a build failure when we try to pass it into a func that\nexpects a dev_t.\n\nAdd some checks to handle this case.  It produces the same code on sane\nABIs, so other than ugliness, it should be fine.\n\nBUG\u003dchromium:358419\nTEST\u003d`emerge-link rootdev` produces same code\nTEST\u003d`emerge-daisy rootdev` produces same code\nTEST\u003d`emerge-mipsel-o32-generic rootdev` now works\n\nChange-Id: I956436e0c40318c8f2ac61b2e202ec739132c245\nReviewed-on: https://chromium-review.googlesource.com/192550\nReviewed-by: Mike Frysinger \u003cvapier@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "515197db4f204bf942b4d4f57bd994cc2e7e9c0c",
      "tree": "fb4c6d4af205006a2b4b7ce0ab3e923eca534b25",
      "parents": [
        "cc7424d39234cd5312b09ad2caf73e3dbfa24ef1"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Nov 01 21:32:42 2013"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Nov 06 20:27:54 2013"
      },
      "message": "fix flag handling\n\nMake sure we respect CPPFLAGS and don\u0027t hardcode\n\nBUG\u003dNone\nTEST\u003d`emerge-x86-alex rootdev` uses right flags\n\nChange-Id: I668af9e02b842ddc54f60e07d313a564cc927413\nReviewed-on: https://chromium-review.googlesource.com/175522\nReviewed-by: Liam McLoughlin \u003clmcloughlin@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "cc7424d39234cd5312b09ad2caf73e3dbfa24ef1",
      "tree": "32a3b3743060358cc667402d47b87924787ffecd",
      "parents": [
        "7642f775897f84110d7d3982a8a990b678783064"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Nov 01 21:35:24 2013"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Nov 06 20:27:51 2013"
      },
      "message": "rootdev: link against librootdev\n\nWe create a lib out of rootdev.c, so have our main program use it rather\nthan duplicate the code in the main program.\n\nBUG\u003dNone\nTEST\u003d`emerge-x86-alex rootdev` still works and rootdev is linked against the prog (and works)\n\nChange-Id: If649007ddb9499f2217ad0af3f1d30115587dd3d\nReviewed-on: https://chromium-review.googlesource.com/175521\nReviewed-by: Liam McLoughlin \u003clmcloughlin@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "7642f775897f84110d7d3982a8a990b678783064",
      "tree": "df8e853118208f8078fe48fa79b95b8a7fed36e7",
      "parents": [
        "15141a9e18d299ca1f13f5dd414b78499b59407b"
      ],
      "author": {
        "name": "Mike Frysinger",
        "email": "vapier@chromium.org",
        "time": "Fri Nov 01 21:31:58 2013"
      },
      "committer": {
        "name": "chrome-internal-fetch",
        "email": "chrome-internal-fetch@google.com",
        "time": "Wed Nov 06 20:27:47 2013"
      },
      "message": "support out-of-tree builds\n\nThis will allow us to avoid doing a git clone.\n\nBUG\u003dNone\nTEST\u003d`emerge-x86-alex rootdev` still works\n\nChange-Id: I2515981c5aa426eebecc6333d8ae7b50276ae577\nReviewed-on: https://chromium-review.googlesource.com/175520\nReviewed-by: Liam McLoughlin \u003clmcloughlin@chromium.org\u003e\nCommit-Queue: Mike Frysinger \u003cvapier@chromium.org\u003e\nTested-by: Mike Frysinger \u003cvapier@chromium.org\u003e\n"
    },
    {
      "commit": "15141a9e18d299ca1f13f5dd414b78499b59407b",
      "tree": "7944ea7cf7fc0cb49ffe1633c9ad4331fd76989d",
      "parents": [
        "d4c5b8be615a84dae6ced41747246d7a038b7b88"
      ],
      "author": {
        "name": "Chris Masone",
        "email": "cmasone@chromium.org",
        "time": "Tue Aug 20 01:52:52 2013"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Tue Aug 20 23:47:45 2013"
      },
      "message": "Avoid some identifier confusion\n\nSome toolchains are confused by have a local variable with the same\nname as a function. FIXIT!\n\nBUG\u003dNone\nTEST\u003dcompilashunz\n\nChange-Id: Id7befbcfc9c2cbcd14f4a229cbc8687e1f7ad72c\nReviewed-on: https://gerrit.chromium.org/gerrit/66294\nReviewed-by: Chris Masone \u003ccmasone@chromium.org\u003e\nTested-by: Chris Masone \u003ccmasone@chromium.org\u003e\nCommit-Queue: Chris Masone \u003ccmasone@chromium.org\u003e\n"
    },
    {
      "commit": "d4c5b8be615a84dae6ced41747246d7a038b7b88",
      "tree": "f2db697b6a8ad8ed1edae077ad556cbee81b07f8",
      "parents": [
        "c9880282b115a0127c948d16f4ab3c6cadcbfcd2"
      ],
      "author": {
        "name": "Paul Taysom",
        "email": "taysom@chromium.org",
        "time": "Fri Jul 12 20:03:57 2013"
      },
      "committer": {
        "name": "ChromeBot",
        "email": "chrome-bot@google.com",
        "time": "Fri Jul 12 22:52:31 2013"
      },
      "message": "Fixed reference to overlapping (the same) string.\n\nThe intent of the rootdev_get_device_slave is to allow the slave and\nthe device to be the same string but it is not required. Added a\ntest for the case where they are the same string to not do the\nstrncpy.\n\nLinux has vixed the problem of a limited number of stacked devices,\nso I fixed the comment that referred to it.\n\nBUG\u003dchromium:259893\nTEST\u003drootdev -s\n\nChange-Id: I04d84799e77c678f1330e1bcf72cddaf9ac68c4c\nReviewed-on: https://gerrit.chromium.org/gerrit/61707\nTested-by: Paul Taysom \u003ctaysom@chromium.org\u003e\nReviewed-by: Yunlian Jiang \u003cyunlian@chromium.org\u003e\nCommit-Queue: Paul Taysom \u003ctaysom@chromium.org\u003e\n"
    },
    {
      "commit": "c9880282b115a0127c948d16f4ab3c6cadcbfcd2",
      "tree": "8ec533cfbe40ad80859408561a3623f8b24b909b",
      "parents": [
        "f8e5f9f2ed1a383d5726d4e55a40c7e6f9bc9744"
      ],
      "author": {
        "name": "Paul Taysom",
        "email": "taysom@chromium.org",
        "time": "Thu Aug 30 15:33:32 2012"
      },
      "committer": {
        "name": "Gerrit",
        "email": "chrome-bot@google.com",
        "time": "Wed Sep 26 00:08:28 2012"
      },
      "message": "Modified rootdev to handle stacked device mappers\n\nRootdev only went down one level when traversing the device tree.\nWith the addition of the bootcache device mapper, we need to\ngo multiple levels for the -s option for rootdev.\n\nBUG\u003dchromium-os:25441\nTEST\u003dused it with bootcache to find boot device.\n\nChange-Id: Ica82dc150e403d0e49e4d8074c0b920b20e4cccc\nReviewed-on: https://gerrit.chromium.org/gerrit/31851\nCommit-Ready: Paul Taysom \u003ctaysom@chromium.org\u003e\nReviewed-by: Paul Taysom \u003ctaysom@chromium.org\u003e\nTested-by: Paul Taysom \u003ctaysom@chromium.org\u003e\n"
    },
    {
      "commit": "f8e5f9f2ed1a383d5726d4e55a40c7e6f9bc9744",
      "tree": "7e83ab1405cac6b14d5cd4a91f122fa32e18776d",
      "parents": [
        "80fbc6c5d03ba9c192f0e406ee0b6ec60711d603"
      ],
      "author": {
        "name": "Bryan Freed",
        "email": "bfreed@chromium.org",
        "time": "Fri Nov 11 21:05:30 2011"
      },
      "committer": {
        "name": "Bryan Freed",
        "email": "bfreed@chromium.org",
        "time": "Mon Nov 14 19:19:52 2011"
      },
      "message": "rootdev: Prevent infinite recursion when parsing /sys/block.\n\nThe mmcblk driver of the 3.0.8 kernel adds mmcblk0boot0 and mmcblk0boot1\ndirectories under /sys/block or /sys/block/mmcblk0.  I have seen it both ways.\nThe device symlink in those directories points to \"../../mmcblk0\" which\npoints to the grandparent directory.\n\nWhen rootdev scans /sys/block looking for a device that matches \"/\", it\ncan fall into this loop and recurse until failure.\n\nWhile a proper fix would detect loops to prevent recursion, that adds\nconsiderable complexity to the directory scan.\nThis relatively simple solution limits recursion depth to 5 to prevent\ninfinitely looping.  It will fail to find device matches beyond 5 levels\nof directories, but we are nowhere near that in today\u0027s systems.  We find\nmatches at level 3 as best I can tell.\n\nBUG\u003dchromium-os:22855\nTEST\u003dRun rootdev and check for failures.\n\nChange-Id: I9ef3aa0a6d6f8143dd0b9e012ba4bb4adfa0c73b\nReviewed-on: https://gerrit.chromium.org/gerrit/11575\nReviewed-by: Will Drewry \u003cwad@chromium.org\u003e\nCommit-Ready: Bryan Freed \u003cbfreed@chromium.org\u003e\nTested-by: Bryan Freed \u003cbfreed@chromium.org\u003e\n"
    },
    {
      "commit": "80fbc6c5d03ba9c192f0e406ee0b6ec60711d603",
      "tree": "2ba6c6d83c444fd6149f084dc05cb9e2d4c3d5e3",
      "parents": [
        "afb2fb552003fe76fd084916166dfa64d7ee9ed6"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Mon Aug 30 15:13:34 2010"
      },
      "committer": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Mon Aug 30 15:13:34 2010"
      },
      "message": "rootdev: fix -d, add -c and -r. ifdefs for so use\n\nMultiple changes:\n- Ensure the -d flag trims off all of the partition info and only if there is a partition\n- Add -c, device node creation for platform-agnostic /dev/ROOT, /dev/ROOT0 and /dev/ROOT1\n- Add -r, resolve the first slave if the device is a device-mapper device\n- Add -s, create a symlink from the found device to /dev/ACTIVE_ROOT\n- Adds short-circuiting if /dev/ACTIVE_ROOT exists to both dm resolution and\n  normal lookups\n- Add support for building a library with a reusable header and interfaces\n\nI\u0027ll follow this up with a change to install \u003crootdev/rootdev.h\u003e and the .so in\nthe ebuild if the interface is at all interesting.  If prefered, I can just add:\nrootdev -s -r to chromeos_startup, then AU can just rely on readlink(/dev/ACTIVE_ROOT).\n\nBUG\u003dchromium-os:5988\nTEST\u003dbuilt for x86-generic testing with vroot: -r, -s, -c, -d and combos\n     switching to non-vroot to test now\n     can someone test arm for me?\n\nChange-Id: Ibab8072afb012ea77d457517f1849e0917d02892\n\nReview URL: http://codereview.chromium.org/3141038\n"
    },
    {
      "commit": "afb2fb552003fe76fd084916166dfa64d7ee9ed6",
      "tree": "2308dd2fbe40254f7be238833e01c17024b4cac0",
      "parents": [
        "cc97f1875c66a6fbe65772e8c09526a0e785fd0c"
      ],
      "author": {
        "name": "Kobi Cohen-Arazi",
        "email": "kobic@codeaurora.org",
        "time": "Mon Jul 26 18:48:36 2010"
      },
      "committer": {
        "name": "Brian Daugherty",
        "email": "bdaugher@codeaurora.org",
        "time": "Mon Jul 26 18:48:36 2010"
      },
      "message": "rootdev.c: Added -d option to strip trailing partition number\n\nChange-Id: I2afbb0a8546f48224292433e2efcf0a868c7a1c6\n\nReview URL: http://codereview.chromium.org/2814040\nPatch from Kobi Cohen-Arazi \u003ckobic@codeaurora.org\u003e.\n"
    },
    {
      "commit": "cc97f1875c66a6fbe65772e8c09526a0e785fd0c",
      "tree": "2353351963394cfa23c90c30651346ea84b23074",
      "parents": [
        "67fabaaaa7a10b2109c0c133df28f67113b68030"
      ],
      "author": {
        "name": "Zdenek Behan",
        "email": "zbehan@chromium.org",
        "time": "Tue Jun 15 21:59:48 2010"
      },
      "committer": {
        "name": "Zdenek Behan",
        "email": "zbehan@chromium.org",
        "time": "Tue Jun 15 21:59:48 2010"
      },
      "message": "rootdev: cleanup, remove files symlink\n\n\tdeleted:    files\n\nReview URL: http://codereview.chromium.org/2815007\n"
    },
    {
      "commit": "67fabaaaa7a10b2109c0c133df28f67113b68030",
      "tree": "d38c3fed0a6b8a86df0fbfd78dd3292ce7f4a29a",
      "parents": [
        "c57ca55b7111d1cbb6f862f086327e74be14ff3f"
      ],
      "author": {
        "name": "Zdenek Behan",
        "email": "zbehan@chromium.org",
        "time": "Tue Jun 15 21:05:10 2010"
      },
      "committer": {
        "name": "Zdenek Behan",
        "email": "zbehan@chromium.org",
        "time": "Tue Jun 15 21:05:10 2010"
      },
      "message": "rootdev: fix review inheritance for rootdev repo\n\n\tnew file:   inherit-review-settings-ok\n\nReview URL: http://codereview.chromium.org/2816005\n"
    },
    {
      "commit": "c57ca55b7111d1cbb6f862f086327e74be14ff3f",
      "tree": "c86ee1e6da2f59183768f252f146394dbcfd2d5c",
      "parents": [
        "75fcf626c6e950c72eca97070a956602dbef963e"
      ],
      "author": {
        "name": "Zdenek Behan",
        "email": "zbehan@chromium.org",
        "time": "Tue Jun 15 18:26:35 2010"
      },
      "committer": {
        "name": "Zdenek Behan",
        "email": "zbehan@chromium.org",
        "time": "Tue Jun 15 18:26:35 2010"
      },
      "message": "rootdev: rework the repo into a \"new eclass\"-friendly layout\n\n* Move all files from files/ to .\n* Fix LICENCE symlink\n* Create files -\u003e . symlink to remain backwards compatible\n\nReview URL: http://codereview.chromium.org/2847007\n"
    },
    {
      "commit": "75fcf626c6e950c72eca97070a956602dbef963e",
      "tree": "f2ed8a2274ef20b280306b8b9d83e60f01afae81",
      "parents": [],
      "author": {
        "name": "Bill Richardson",
        "email": "wfrichar@chromium.org",
        "time": "Tue Mar 16 20:05:12 2010"
      },
      "committer": {
        "name": "Bill Richardson",
        "email": "wfrichar@chromium.org",
        "time": "Tue Mar 16 20:05:12 2010"
      },
      "message": "Adding source for rootdev utility.\n"
    }
  ]
}
