fs_swap: Reduce severity of not finding a partition table on boot device.
authorTony Breeds <tony@bakeyournoodle.com>
Wed, 19 Oct 2011 02:36:49 +0000 (13:36 +1100)
committerTony Breeds <tony@bakeyournoodle.com>
Sat, 11 May 2013 05:15:40 +0000 (15:15 +1000)
When booted from a cdrom the fs_swap would exit with FILE_ERR_BADDEV,
this causes fs_open to abort too early.

We don't need to check file->device_kind != FILE_DEVICE_BLOCK as we're
only called when that is true.

Demote the return value to FILE_ERR_BAD_FSYS which allows fs_open to
look for other filesystems on the device.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
second/fs_swap.c

index 87da8775f85c8db55e7101261e88a4ac56f713e6..1efb96e1d81278cc58a20e936517d4837b8c316d 100644 (file)
@@ -59,9 +59,10 @@ swap_open(struct boot_file_t* file, struct partition_t* part,
      DEBUG_ENTER;
      DEBUG_OPEN;
 
-     if (file->device_kind != FILE_DEVICE_BLOCK || part == NULL) {
-         DEBUG_LEAVE(FILE_ERR_BADDEV);
-         return FILE_ERR_BADDEV;
+     if (part == NULL) {
+          DEBUG_F("No partions on %s, not checking for swap\n", device_name);
+         DEBUG_LEAVE(FILE_ERR_BAD_FSYS);
+         return FILE_ERR_BAD_FSYS;
      }
 
      /* We assume that device is "short" and is correctly NULL terminsated */