Mount vfat, exfat, ntfs, hfsplus, ext filesystems with 'dirsync' option.

This CL uses the 'dirsync' mount option to ensure synchronous directory
operations, which helps reduce the potential damages caused by an unsafe
removal of a removable drive.

BUG=chrome-os-partner:26006
BUG=chrome-os-partner:26063
TEST=Tested the following:
1. Build and run unit tests.
2. Run the following tests:
   - platform_CrosDisksDBus
   - platform_CrosDisksFilesystem
   - platform_CrosDisksArchive
   - platform_CrosDisksFormat
3. Plug in USB drives with vfat, exfat, ntfs, hfsplus, and ext2/3/4
   formatted partitions. Verify that the partitions are mounted with the
   dirsync option and show up in Files.app.

Change-Id: Ia4ed4986d1604b4be82022f2d67ddbd5bb43424c
Reviewed-on: https://chromium-review.googlesource.com/187865
Tested-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Toni Barzic <tbarzic@chromium.org>
Commit-Queue: Ben Chan <benchan@chromium.org>
4 files changed
tree: 4b2be9206716ed236e71d0f25f38a1356072ae4b
  1. dbus_bindings/
  2. .gitignore
  3. archive_manager.cc
  4. archive_manager.h
  5. archive_manager_unittest.cc
  6. avfsd-seccomp-amd64.policy
  7. avfsd-seccomp-arm.policy
  8. avfsd-seccomp-x86.policy
  9. cros-disks.conf
  10. cros-disks.gyp
  11. cros_disks_server.cc
  12. cros_disks_server.h
  13. daemon.cc
  14. daemon.h
  15. device_ejector.cc
  16. device_ejector.h
  17. device_event.cc
  18. device_event.h
  19. device_event_dispatcher_interface.h
  20. device_event_moderator.cc
  21. device_event_moderator.h
  22. device_event_moderator_unittest.cc
  23. device_event_queue.cc
  24. device_event_queue.h
  25. device_event_queue_unittest.cc
  26. device_event_source_interface.h
  27. disk.cc
  28. disk.h
  29. disk_manager.cc
  30. disk_manager.h
  31. disk_manager_unittest.cc
  32. disk_unittest.cc
  33. disks_testrunner.cc
  34. exfat_mounter.cc
  35. exfat_mounter.h
  36. external_mounter.cc
  37. external_mounter.h
  38. external_mounter_unittest.cc
  39. file_reader.cc
  40. file_reader.h
  41. file_reader_unittest.cc
  42. filesystem.cc
  43. filesystem.h
  44. format_manager.cc
  45. format_manager.h
  46. format_manager_observer_interface.h
  47. format_manager_unittest.cc
  48. fuse_mounter.cc
  49. fuse_mounter.h
  50. glib_process.cc
  51. glib_process.h
  52. glib_process_unittest.cc
  53. inherit-review-settings-ok
  54. LICENSE
  55. main.cc
  56. metrics.cc
  57. metrics.h
  58. metrics_unittest.cc
  59. mount_info.cc
  60. mount_info.h
  61. mount_info_unittest.cc
  62. mount_manager.cc
  63. mount_manager.h
  64. mount_manager_unittest.cc
  65. mount_options.cc
  66. mount_options.h
  67. mount_options_unittest.cc
  68. mounter.cc
  69. mounter.h
  70. mounter_unittest.cc
  71. ntfs_mounter.cc
  72. ntfs_mounter.h
  73. org.chromium.CrosDisks.conf
  74. OWNERS
  75. platform.cc
  76. platform.h
  77. platform_unittest.cc
  78. process.cc
  79. process.h
  80. process_unittest.cc
  81. sandboxed_process.cc
  82. sandboxed_process.h
  83. session_manager_observer_interface.h
  84. session_manager_proxy.cc
  85. session_manager_proxy.h
  86. system_mounter.cc
  87. system_mounter.h
  88. system_mounter_unittest.cc
  89. udev_device.cc
  90. udev_device.h
  91. udev_device_unittest.cc
  92. usb-device-info
  93. usb_device_info.cc
  94. usb_device_info.h
  95. usb_device_info_unittest.cc