mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +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) {
|
||||
return &rbdCleaner{&rbd{
|
||||
podUID: podUID,
|
||||
volName: volName,
|
||||
manager: manager,
|
||||
mounter: mounter,
|
||||
plugin: plugin,
|
||||
}}, nil
|
||||
return &rbdCleaner{
|
||||
rbdBuilder: &rbdBuilder{
|
||||
rbd: &rbd{
|
||||
podUID: podUID,
|
||||
volName: volName,
|
||||
manager: manager,
|
||||
mounter: mounter,
|
||||
plugin: plugin,
|
||||
},
|
||||
Mon: make([]string, 0),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
type rbd struct {
|
||||
@ -211,7 +216,7 @@ func (b *rbdBuilder) SetUpAt(dir string) error {
|
||||
}
|
||||
|
||||
type rbdCleaner struct {
|
||||
*rbd
|
||||
*rbdBuilder
|
||||
}
|
||||
|
||||
var _ volume.Cleaner = &rbdCleaner{}
|
||||
|
@ -143,7 +143,7 @@ func (util *RBDUtil) persistRBD(rbd rbdBuilder, mnt string) error {
|
||||
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")
|
||||
fp, err := os.Open(file)
|
||||
if err != nil {
|
||||
@ -152,10 +152,10 @@ func (util *RBDUtil) loadRBD(rbd *rbd, mnt string) error {
|
||||
defer fp.Close()
|
||||
|
||||
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 nil
|
||||
}
|
||||
|
||||
@ -173,7 +173,7 @@ func (util *RBDUtil) defencing(c rbdCleaner) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
return util.rbdLock(rbdBuilder{rbd: c.rbd}, false)
|
||||
return util.rbdLock(*c.rbdBuilder, false)
|
||||
}
|
||||
|
||||
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
|
||||
if err := util.loadRBD(c.rbd, mntPath); err == nil {
|
||||
if err := util.loadRBD(c.rbdBuilder, mntPath); err == nil {
|
||||
// remove rbd lock
|
||||
util.defencing(c)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user