summaryrefslogtreecommitdiffstats
path: root/src/logicalfile/LMI_FileIdentityProvider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/logicalfile/LMI_FileIdentityProvider.c')
-rw-r--r--src/logicalfile/LMI_FileIdentityProvider.c10
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) {