From: <kc...@us...> - 2003-07-30 18:14:06
|
Update of /cvsroot/evms/evms2/engine/engine In directory sc8-pr-cvs1:/tmp/cvs-serv30882 Modified Files: dm.c Log Message: Check for an active object before performing certain DM operations. Index: dm.c =================================================================== RCS file: /cvsroot/evms/evms2/engine/engine/dm.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -d -r1.80 -r1.81 --- dm.c 30 Jul 2003 18:03:13 -0000 1.80 +++ dm.c 30 Jul 2003 18:14:02 -0000 1.81 @@ -928,7 +928,9 @@ } if (suspend && (object->flags & SOFLAG_SUSPENDED)) { - /* Object is already suspended. */ + /* Can't suspend an object that's already suspended. On the + * other hand, we *can* resume an object that isn't suspended. + */ rc = 0; goto out; } @@ -999,7 +1001,9 @@ } if (suspend && (volume->flags & VOLFLAG_SUSPENDED)) { - /* Volume is already suspended. */ + /* Can't suspend a volume that's already suspended. On the other + * hand, we *can* resume a volume that isn't suspended. + */ rc = 0; goto out; } @@ -1629,6 +1633,12 @@ goto out; } + if (!(object->flags & SOFLAG_ACTIVE)) { + /* Can't load mappings into an inactive device. */ + rc = EINVAL; + goto out; + } + LOG_DEBUG("Request to load new targets for object %s\n", object->name); /* Create the ASCII parameter strings for all targets. */ @@ -1671,6 +1681,12 @@ if (!object) { /* Bad parameters. */ + rc = EINVAL; + goto out; + } + + if (!(object->flags & SOFLAG_ACTIVE)) { + /* Can't clear mappings for an inactive device. */ rc = EINVAL; goto out; } |