- const char * const *filename;
- const char *path;
-
- if (!parser->filenames)
- return;
-
- for (filename = parser->filenames; *filename; filename++) {
- int rc, len;
- char *buf;
-
- path = local_path(ctx, *filename);
- if (!path)
- continue;
-
- rc = read_file(ctx, path, &buf, &len);
- if (!rc) {
- pb_log("Running parser %s on file %s\n",
- parser->name, *filename);
- parser->parse(ctx, buf, len);
- talloc_free(buf);
- }
+ bool release;
+ char *path;
+ int rc;
+
+ if (!dev->mounted)
+ return -1;
+
+ rc = device_request_write(dev, &release);
+ if (rc) {
+ pb_log("Can't write file %s: device doesn't allow write\n",
+ dev->device_path);
+ return -1;