summaryrefslogtreecommitdiffstats
path: root/isys/isys.c
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2000-05-08 18:34:33 +0000
committerErik Troan <ewt@redhat.com>2000-05-08 18:34:33 +0000
commit4bc2ce1ade093cd6e567e98b948d49a822db6f37 (patch)
tree2732d1a1e0ed9a517bfe27a1cf6b8392afa4a6a2 /isys/isys.c
parent0fb081a2ce47922afd39109f9fdfccf6704233be (diff)
downloadanaconda-4bc2ce1ade093cd6e567e98b948d49a822db6f37.tar.gz
anaconda-4bc2ce1ade093cd6e567e98b948d49a822db6f37.tar.xz
anaconda-4bc2ce1ade093cd6e567e98b948d49a822db6f37.zip
got working check for dirty ext2 filesystems
Diffstat (limited to 'isys/isys.c')
-rw-r--r--isys/isys.c24
1 files changed, 24 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);
+}