From 32117163e47565338c0652723d0c6aecbd692c4d Mon Sep 17 00:00:00 2001 From: Kenjiro Nakayama Date: Mon, 13 Aug 2018 17:54:53 +0900 Subject: [PATCH] Support mount options for cephfs with ceph-fuse mount When cephfs uses ceph-fuse for the mount command, mount option and readOnly options are disregarded. This patch adds to ceph-fuse as well. --- pkg/volume/cephfs/cephfs.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/volume/cephfs/cephfs.go b/pkg/volume/cephfs/cephfs.go index d99577c741..e1f506c0a9 100644 --- a/pkg/volume/cephfs/cephfs.go +++ b/pkg/volume/cephfs/cephfs.go @@ -323,8 +323,8 @@ func (cephfsVolume *cephfs) execMount(mountpoint string) error { } src += hosts[i] + ":" + cephfsVolume.path - mountOptions := util.JoinMountOptions(cephfsVolume.mountOptions, opt) - if err := cephfsVolume.mounter.Mount(src, mountpoint, "ceph", mountOptions); err != nil { + opt = util.JoinMountOptions(cephfsVolume.mountOptions, opt) + if err := cephfsVolume.mounter.Mount(src, mountpoint, "ceph", opt); err != nil { return fmt.Errorf("CephFS: mount failed: %v", err) } @@ -408,6 +408,17 @@ func (cephfsVolume *cephfs) execFuseMount(mountpoint string) error { mountArgs = append(mountArgs, "--id") mountArgs = append(mountArgs, cephfsVolume.id) + // build option array + opt := []string{} + if cephfsVolume.readonly { + opt = append(opt, "ro") + } + opt = util.JoinMountOptions(cephfsVolume.mountOptions, opt) + if len(opt) > 0 { + mountArgs = append(mountArgs, "-o") + mountArgs = append(mountArgs, strings.Join(opt, ",")) + } + glog.V(4).Infof("Mounting cmd ceph-fuse with arguments (%s)", mountArgs) command := exec.Command("ceph-fuse", mountArgs...) output, err := command.CombinedOutput()