mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
devmapper: Disable mount option "discard" by default
Right now devicemapper mounts thin device using online discards by default and passes mount option "discard". Generally people discourage usage of online discards as they can be a drain on performance. Instead it is recommended to use fstrim once in a while to reclaim the space. In case of containers, we recommend to keep data volumes separate. So there might not be lot of rm, unlink operations going on and there might not be lot of space being freed by containers. So it might not matter much if we don't reclaim that free space in pool. User can still pass mount option explicitly using dm.mountopt=discard to enable discards if they would like to. So this is more like setting the containers by default for better performance instead of better space efficiency in pool. And user can change the behavior if they don't like default behavior. Reported-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
This commit is contained in:
parent
21c8d211e1
commit
04adaaf1ee
1 changed files with 1 additions and 5 deletions
|
@ -1366,11 +1366,7 @@ func (devices *DeviceSet) MountDevice(hash, path, mountLabel string) error {
|
|||
options = joinMountOptions(options, devices.mountOptions)
|
||||
options = joinMountOptions(options, label.FormatMountLabel("", mountLabel))
|
||||
|
||||
err = syscall.Mount(info.DevName(), path, fstype, flags, joinMountOptions("discard", options))
|
||||
if err != nil && err == syscall.EINVAL {
|
||||
err = syscall.Mount(info.DevName(), path, fstype, flags, options)
|
||||
}
|
||||
if err != nil {
|
||||
if err := syscall.Mount(info.DevName(), path, fstype, flags, options); err != nil {
|
||||
return fmt.Errorf("Error mounting '%s' on '%s': %s", info.DevName(), path, err)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue