Author: aschnell
Date: Wed Jan 28 14:43:17 2009
New Revision: 55117
URL: http://svn.opensuse.org/viewcvs/yast?rev=55117&view=rev
Log:
- added udevSettle to AppUtil so it can be called without access to storage object
Modified:
trunk/storage/libstorage/src/AppUtil.cc
trunk/storage/libstorage/src/AppUtil.h
trunk/storage/libstorage/src/DmraidCo.cc
trunk/storage/libstorage/src/LvmVg.cc
trunk/storage/libstorage/src/MdCo.cc
trunk/storage/libstorage/src/Storage.cc
trunk/storage/libstorage/src/Storage.h
Modified: trunk/storage/libstorage/src/AppUtil.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/AppUtil.cc?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/AppUtil.cc (original)
+++ trunk/storage/libstorage/src/AppUtil.cc Wed Jan 28 14:43:17 2009
@@ -22,6 +22,7 @@
#include "y2storage/StorageTmpl.h"
#include "y2storage/AppUtil.h"
#include "y2storage/SystemCmd.h"
+#include "y2storage/StorageDefines.h"
using namespace std;
@@ -501,6 +502,23 @@
}
+void
+udevSettle()
+{
+ if (access(UDEVADM, X_OK) == 0)
+ {
+ string cmd(UDEVADM " settle --timeout=20");
+ y2mil("calling prog:" << cmd);
+ SystemCmd c(cmd);
+ y2mil("returned prog:" << cmd << " retcode:" << c.retcode());
+ }
+ else
+ {
+ y2error(UDEVADM " not available");
+ }
+}
+
+
unsigned getMajorDevices( const string& driver )
{
unsigned ret=0;
Modified: trunk/storage/libstorage/src/AppUtil.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/AppUtil.h?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/AppUtil.h (original)
+++ trunk/storage/libstorage/src/AppUtil.h Wed Jan 28 14:43:17 2009
@@ -40,6 +40,8 @@
void getUdevMap(const char* path, std::map& m);
void getRevUdevMap(const char* path, std::map& m);
+void udevSettle();
+
string normalizeDevice( const string& dev );
void normalizeDevice( string& dev );
string undevDevice( const string& dev );
Modified: trunk/storage/libstorage/src/DmraidCo.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/DmraidCo.cc?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/DmraidCo.cc (original)
+++ trunk/storage/libstorage/src/DmraidCo.cc Wed Jan 28 14:43:17 2009
@@ -124,6 +124,7 @@
}
active = val;
}
+ udevSettle();
}
void DmraidCo::getRaids( list<string>& l )
Modified: trunk/storage/libstorage/src/LvmVg.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/LvmVg.cc?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/LvmVg.cc (original)
+++ trunk/storage/libstorage/src/LvmVg.cc Wed Jan 28 14:43:17 2009
@@ -1107,6 +1107,8 @@
}
active = val;
}
+
+ udevSettle();
}
Modified: trunk/storage/libstorage/src/MdCo.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/MdCo.cc?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/MdCo.cc (original)
+++ trunk/storage/libstorage/src/MdCo.cc Wed Jan 28 14:43:17 2009
@@ -585,6 +585,7 @@
}
active = val;
}
+ udevSettle();
}
int
Modified: trunk/storage/libstorage/src/Storage.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/Storage.cc?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/Storage.cc (original)
+++ trunk/storage/libstorage/src/Storage.cc Wed Jan 28 14:43:17 2009
@@ -207,11 +207,8 @@
if( instsys() )
{
DmraidCo::activate( true );
- waitForDevice();
MdCo::activate( true, tmpDir() );
- waitForDevice();
LvmVg::activate( true );
- waitForDevice();
delete ppart;
ppart = new ProcPart;
}
@@ -5797,25 +5794,16 @@
}
-int Storage::waitForDevice() const
+void Storage::waitForDevice() const
{
- int ret = 0;
- if (access(UDEVADM, X_OK) == 0)
- {
- string cmd(UDEVADM " settle --timeout=20");
- y2mil("calling prog:" << cmd);
- SystemCmd c(cmd);
- y2mil("returned prog:" << cmd << " retcode:" << c.retcode());
- }
- y2mil("ret:" << ret);
- return ret;
+ udevSettle();
}
int Storage::waitForDevice( const string& device ) const
{
int ret = 0;
- waitForDevice();
+ udevSettle();
bool exist = access( device.c_str(), R_OK )==0;
y2milestone( "device:%s exist:%d", device.c_str(), exist );
if( !exist )
Modified: trunk/storage/libstorage/src/Storage.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/libstorage/src/Storage.h?rev=55117&r1=55116&r2=55117&view=diff
==============================================================================
--- trunk/storage/libstorage/src/Storage.h (original)
+++ trunk/storage/libstorage/src/Storage.h Wed Jan 28 14:43:17 2009
@@ -450,7 +450,7 @@
const string& getExtendedErrorMessage() const { return extendedError; }
void eraseFreeInfo( const string& device );
- int waitForDevice() const;
+ void waitForDevice() const;
int waitForDevice( const string& device ) const;
void checkDeviceExclusive( const string& device, unsigned secs );
int zeroDevice(const string& device, unsigned long long sizeK, bool random = false,
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org