mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
- fixed the defencing of the rbd lock
This commit is contained in:
parent
5836d455b8
commit
bb31cd29ea
@ -148,13 +148,18 @@ func (plugin *rbdPlugin) NewCleaner(volName string, podUID types.UID, mounter mo
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (plugin *rbdPlugin) newCleanerInternal(volName string, podUID types.UID, manager diskManager, mounter mount.Interface) (volume.Cleaner, error) {
|
func (plugin *rbdPlugin) newCleanerInternal(volName string, podUID types.UID, manager diskManager, mounter mount.Interface) (volume.Cleaner, error) {
|
||||||
return &rbdCleaner{&rbd{
|
return &rbdCleaner{
|
||||||
podUID: podUID,
|
rbdBuilder: &rbdBuilder{
|
||||||
volName: volName,
|
rbd: &rbd{
|
||||||
manager: manager,
|
podUID: podUID,
|
||||||
mounter: mounter,
|
volName: volName,
|
||||||
plugin: plugin,
|
manager: manager,
|
||||||
}}, nil
|
mounter: mounter,
|
||||||
|
plugin: plugin,
|
||||||
|
},
|
||||||
|
Mon: make([]string, 0),
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type rbd struct {
|
type rbd struct {
|
||||||
@ -211,7 +216,7 @@ func (b *rbdBuilder) SetUpAt(dir string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type rbdCleaner struct {
|
type rbdCleaner struct {
|
||||||
*rbd
|
*rbdBuilder
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ volume.Cleaner = &rbdCleaner{}
|
var _ volume.Cleaner = &rbdCleaner{}
|
||||||
|
@ -143,7 +143,7 @@ func (util *RBDUtil) persistRBD(rbd rbdBuilder, mnt string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (util *RBDUtil) loadRBD(rbd *rbd, mnt string) error {
|
func (util *RBDUtil) loadRBD(builder *rbdBuilder, mnt string) error {
|
||||||
file := path.Join(mnt, "rbd.json")
|
file := path.Join(mnt, "rbd.json")
|
||||||
fp, err := os.Open(file)
|
fp, err := os.Open(file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -152,10 +152,10 @@ func (util *RBDUtil) loadRBD(rbd *rbd, mnt string) error {
|
|||||||
defer fp.Close()
|
defer fp.Close()
|
||||||
|
|
||||||
decoder := json.NewDecoder(fp)
|
decoder := json.NewDecoder(fp)
|
||||||
if err = decoder.Decode(rbd); err != nil {
|
if err = decoder.Decode(builder); err != nil {
|
||||||
return fmt.Errorf("rbd: decode err: %v.", err)
|
return fmt.Errorf("rbd: decode err: %v.", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ func (util *RBDUtil) defencing(c rbdCleaner) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return util.rbdLock(rbdBuilder{rbd: c.rbd}, false)
|
return util.rbdLock(*c.rbdBuilder, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (util *RBDUtil) AttachDisk(b rbdBuilder) error {
|
func (util *RBDUtil) AttachDisk(b rbdBuilder) error {
|
||||||
@ -262,7 +262,7 @@ func (util *RBDUtil) DetachDisk(c rbdCleaner, mntPath string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// load ceph and image/pool info to remove fencing
|
// load ceph and image/pool info to remove fencing
|
||||||
if err := util.loadRBD(c.rbd, mntPath); err == nil {
|
if err := util.loadRBD(c.rbdBuilder, mntPath); err == nil {
|
||||||
// remove rbd lock
|
// remove rbd lock
|
||||||
util.defencing(c)
|
util.defencing(c)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user