Skip to content
Snippets Groups Projects
  1. May 10, 2013
  2. May 09, 2013
  3. May 08, 2013
  4. May 07, 2013
  5. May 03, 2013
  6. May 01, 2013
  7. Apr 26, 2013
  8. Apr 23, 2013
  9. Apr 09, 2013
  10. Apr 04, 2013
  11. Mar 25, 2013
    • Eelco Dolstra's avatar
      Fix evaluation of the VM tests · 23984178
      Eelco Dolstra authored
      23984178
    • Shea Levy's avatar
      makeStoreWritable: Ask forgiveness, not permission · cc63db1d
      Shea Levy authored
      It is surprisingly impossible to check if a mountpoint is a bind mount
      on Linux, and in my previous commit I forgot to check if /nix/store was
      even a mountpoint at all. statvfs.f_flag is not populated with MS_BIND
      (and even if it were, my check was wrong in the previous commit).
      
      Luckily, the semantics of mount with MS_REMOUNT | MS_BIND make both
      checks unnecessary: if /nix/store is not a mountpoint, then mount will
      fail with EINVAL, and if /nix/store is not a bind-mount, then it will
      not be made writable. Thus, if /nix/store is not a mountpoint, we fail
      immediately (since we don't know how to make it writable), and if
      /nix/store IS a mountpoint but not a bind-mount, we fail at first write
      (see below for why we can't check and fail immediately).
      
      Note that, due to what is IMO buggy behavior in Linux, calling mount
      with MS_REMOUNT | MS_BIND on a non-bind readonly mount makes the
      mountpoint appear writable in two places: In the sixth (but not the
      10th!) column of mountinfo, and in the f_flags member of struct statfs.
      All other syscalls behave as if the mount point were still readonly (at
      least for Linux 3.9-rc1, but I don't think this has changed recently or
      is expected to soon). My preferred semantics would be for MS_REMOUNT |
      MS_BIND to fail on a non-bind mount, as it doesn't make sense to remount
      a non bind-mount as a bind mount.
      cc63db1d
    • Shea Levy's avatar
      makeStoreWritable: Use statvfs instead of /proc/self/mountinfo to find out if... · 2c9cf507
      Shea Levy authored
      makeStoreWritable: Use statvfs instead of /proc/self/mountinfo to find out if /nix/store is a read-only bind mount
      
      /nix/store could be a read-only bind mount even if it is / in its own filesystem, so checking the 4th field in mountinfo is insufficient.
      
      Signed-off-by: default avatarShea Levy <shea@shealevy.com>
      2c9cf507
  12. Mar 18, 2013
  13. Mar 15, 2013
  14. Mar 14, 2013
Loading