)]}'
{
  "commit": "d208bbdda991b8808d9c033ce4d31cb1bd87dcfc",
  "tree": "8589a1f440a261008addb1ed97b75208eb37a6f1",
  "parents": [
    "ec4f860597af41c6b71f4de86d8e86f710bfab54"
  ],
  "author": {
    "name": "Nick Piggin",
    "email": "npiggin@suse.de",
    "time": "Mon Dec 21 16:28:53 2009 -0800"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Wed Mar 03 13:00:20 2010 -0500"
  },
  "message": "fs: improve remount,ro vs buffercache coherency\n\nInvalidate sb-\u003es_bdev on remount,ro.\n\nFixes a problem reported by Jorge Boncompte who is seeing corruption\ntrying to snapshot a minix filesystem image.  Some filesystems modify\ntheir metadata via a path other than the bdev buffer cache (eg.  they may\nuse a private linear mapping for their metadata, or implement directories\nin pagecache, etc).  Also, file data modifications usually go to the bdev\nvia their own mappings.\n\nThese updates are not coherent with buffercache IO (eg.  via /dev/bdev)\nand never have been.  However there could be a reasonable expectation that\nafter a mount -oremount,ro operation then the buffercache should\nsubsequently be coherent with previous filesystem modifications.\n\nSo invalidate the bdev mappings on a remount,ro operation to provide a\ncoherency point.\n\nThe problem was exposed when we switched the old rd to brd because old rd\ndidn\u0027t really function like a normal block device and updates to rd via\nmappings other than the buffercache would still end up going into its\nbuffercache.  But the same problem has always affected other \"normal\"\nblock devices, including loop.\n\n[akpm@linux-foundation.org: repair comment layout]\nReported-by: \"Jorge Boncompte [DTI2]\" \u003cjorge@dti2.net\u003e\nTested-by: \"Jorge Boncompte [DTI2]\" \u003cjorge@dti2.net\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aff046b0fe78b8be88b7a81a10f2ed39b38e2f85",
      "old_mode": 33188,
      "old_path": "fs/super.c",
      "new_id": "903896ec7c730697c1840bec27c8dc6467dc20a6",
      "new_mode": 33188,
      "new_path": "fs/super.c"
    }
  ]
}
