diff options
Diffstat (limited to 'src/logicalfile/LMI_FileIdentityProvider.c')
-rw-r--r-- | src/logicalfile/LMI_FileIdentityProvider.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/logicalfile/LMI_FileIdentityProvider.c b/src/logicalfile/LMI_FileIdentityProvider.c index c143fdb..514f5c3 100644 --- a/src/logicalfile/LMI_FileIdentityProvider.c +++ b/src/logicalfile/LMI_FileIdentityProvider.c @@ -74,7 +74,7 @@ static CMPIStatus associators( fill_logicalfile(CIM_LogicalFileRef, &cim_lfr, path, fsname, fileclass); o = CIM_LogicalFileRef_ToObjectPath(&cim_lfr, &st); CMSetClassName(o, fileclass); - } else { + } else if (CMClassPathIsA(_cb, cop, CIM_LogicalFile_ClassName, &st)) { /* got LogicalFile - SystemElement */ st = lmi_check_required(_cb, cc, cop); check_status(st); @@ -103,6 +103,9 @@ static CMPIStatus associators( LMI_UnixFile_Set_FSName(&lmi_uf, fsname); LMI_UnixFile_Set_LFCreationClassName(&lmi_uf, fileclass); o = LMI_UnixFile_ToObjectPath(&lmi_uf, &st); + } else { + /* this association does not associate with given 'cop' class */ + CMReturn(CMPI_RC_OK); } if (names) { @@ -165,7 +168,7 @@ static CMPIStatus references( o = CIM_LogicalFileRef_ToObjectPath(&lmi_lfr, &st); CMSetClassName(o, fileclass); LMI_FileIdentity_SetObjectPath_SystemElement(&lmi_fi, o); - } else { + } else if (CMClassPathIsA(_cb, cop, CIM_LogicalFile_ClassName, &st)) { /* got LogicalFile - SystemElement */ LMI_FileIdentity_SetObjectPath_SystemElement(&lmi_fi, cop); @@ -193,6 +196,9 @@ static CMPIStatus references( LMI_UnixFile_Set_LFCreationClassName(&lmi_uf, fileclass); o = LMI_UnixFile_ToObjectPath(&lmi_uf, &st); LMI_FileIdentity_SetObjectPath_SameElement(&lmi_fi, o); + } else { + /* this association does not associate with given 'cop' class */ + CMReturn(CMPI_RC_OK); } if (names) { |