diff options
author | Erik Troan <ewt@redhat.com> | 2000-05-08 18:34:33 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 2000-05-08 18:34:33 +0000 |
commit | 4bc2ce1ade093cd6e567e98b948d49a822db6f37 (patch) | |
tree | 2732d1a1e0ed9a517bfe27a1cf6b8392afa4a6a2 /isys | |
parent | 0fb081a2ce47922afd39109f9fdfccf6704233be (diff) | |
download | anaconda-4bc2ce1ade093cd6e567e98b948d49a822db6f37.tar.gz anaconda-4bc2ce1ade093cd6e567e98b948d49a822db6f37.tar.xz anaconda-4bc2ce1ade093cd6e567e98b948d49a822db6f37.zip |
got working check for dirty ext2 filesystems
Diffstat (limited to 'isys')
-rw-r--r-- | isys/isys.c | 24 | ||||
-rw-r--r-- | isys/isys.py | 6 |
2 files changed, 30 insertions, 0 deletions
diff --git a/isys/isys.c b/isys/isys.c index b4860329a..f5a47aad6 100644 --- a/isys/isys.c +++ b/isys/isys.c @@ -71,8 +71,10 @@ static PyObject * doSetResolvRetry(PyObject * s, PyObject * args); static PyObject * doLoadFont(PyObject * s, PyObject * args); static PyObject * doLoadKeymap(PyObject * s, PyObject * args); static PyObject * doReadE2fsLabel(PyObject * s, PyObject * args); +static PyObject * doExt2Dirty(PyObject * s, PyObject * args); static PyMethodDef isysModuleMethods[] = { + { "e2dirty", (PyCFunction) doExt2Dirty, METH_VARARGS, NULL }, { "e2fslabel", (PyCFunction) doReadE2fsLabel, METH_VARARGS, NULL }, { "devSpaceFree", (PyCFunction) doDevSpaceFree, METH_VARARGS, NULL }, { "raidstop", (PyCFunction) doRaidStop, METH_VARARGS, NULL }, @@ -1148,3 +1150,25 @@ static PyObject * doReadE2fsLabel(PyObject * s, PyObject * args) { return Py_BuildValue("s", buf); } + +static PyObject * doExt2Dirty(PyObject * s, PyObject * args) { + char * device; + ext2_filsys fsys; + int rc; + int clean; + + if (!PyArg_ParseTuple(args, "s", &device)) return NULL; + + rc = ext2fs_open(device, EXT2_FLAG_FORCE, 0, 0, unix_io_manager, + &fsys); + if (rc) { + Py_INCREF(Py_None); + return Py_None; + } + + clean = fsys->super->s_state & EXT2_VALID_FS; + + ext2fs_close(fsys); + + return Py_BuildValue("i", !clean); +} diff --git a/isys/isys.py b/isys/isys.py index 02adedc95..65ee2a275 100644 --- a/isys/isys.py +++ b/isys/isys.py @@ -245,3 +245,9 @@ def readExt2Label(device): label = _isys.e2fslabel("/tmp/disk"); os.unlink("/tmp/disk") return label + +def ext2IsDirty(device): + makeDevInode(device, "/tmp/disk") + label = _isys.e2dirty("/tmp/disk"); + os.unlink("/tmp/disk") + return label |