--- kdebase-3.2/kioslave/devices/kdedmodule/mountwatcher.cpp-- 2004-03-10 15:40:49.000000000 +0100 +++ kdebase-3.2/kioslave/devices/kdedmodule/mountwatcher.cpp 2004-03-10 15:42:50.000000000 +0100 @@ -293,6 +293,7 @@ void MountWatcherModule::removeSpecialDe void MountWatcherModule::readDFDone() { + mDiskList.cleanDisk(); QStringList oldmountList(mountList); QStringList oldcompleteList(completeList); mountList.clear(); --- kdebase-3.2/kioslave/devices/kdedmodule/disklist.h-- 2004-03-10 15:40:45.000000000 +0100 +++ kdebase-3.2/kioslave/devices/kdedmodule/disklist.h 2004-03-10 15:42:10.000000000 +0100 @@ -69,7 +69,7 @@ public: DiskEntry* first() {return disks->first();}; DiskEntry* next() {return disks->next();}; uint count() { return disks->count(); }; - + void cleanDisk(); public slots: void loadExclusionLists(); --- kdebase-3.2/kioslave/devices/kdedmodule/disklist.cpp-- 2004-03-10 15:40:41.000000000 +0100 +++ kdebase-3.2/kioslave/devices/kdedmodule/disklist.cpp 2004-03-10 15:44:08.000000000 +0100 @@ -55,6 +55,39 @@ DiskList::~DiskList() { } +void DiskList::cleanDisk() +{ + for (DiskEntry *ent= first();ent;ent=next()) + { + if(ent->fsType()=="supermount") + { + bool foundtype=false; + KMountPoint::List mountPoints = KMountPoint::currentMountPoints(); + for(KMountPoint::List::ConstIterator it = mountPoints.begin(); + it != mountPoints.end(); ++it) + { + if( (*it)->mountType()=="supermount" && ((*it)->mountPoint()==ent->mountPoint())) + foundtype=true; + } + if( !foundtype ) + { + KMountPoint::List mountPoints2 = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions); + + for(KMountPoint::List::ConstIterator it = mountPoints2.begin(); + it != mountPoints2.end(); ++it) + { + if( (*it)->mountType()=="supermount" && ((*it)->mountPoint()==ent->mountPoint())) + { + foundtype=true; + } + } + } + if( !foundtype) + disks->remove(ent); + } + } +} + void DiskList::loadExclusionLists() { @@ -82,8 +115,10 @@ bool DiskList::ignoreDisk(DiskEntry *dis else ignore=true; if ( disk->fsType() == "supermount") + { + disk->setMounted(TRUE); ignore = false; - + } if (!ignore) { for (QRegExp *exp=mountPointExclusionList.getFirst();exp;exp=mountPointExclusionList.next()) {