Am Donnerstag, 12. Mai 2011, 22:36:03 schrieb James Bottomley:Yep, this makes sense.
Instinct tells me the correct set of fixes is to add a sync cache from
release (so we automatically sync on last close, which is usually when
an ordered remove happens), keep the one on shutdown, just in case the
system goes down with stuff still mounted and print a nasty message on
suspend for a write back device that's been removed.
I also think we shouldn't abort the suspend if the disk doesn't respond
correctly to start/stop ... the power is going to be disconnected
anyway, so it's no issue if the disk spins for a second or so longer.
The problem this is going to cause is double sync on shutdown (once when
final unmount closes the device and once on shutdown) ... do people
agree that's a price worth paying?
Something like this?
it seems to me that the error codes should really be evaluated a bit better.
How about this?
From 2ab03ae46d6dc126a51ee9cd38206fbdc8bf6a34 Mon Sep 17 00:00:00 2001
From: Oliver Neukum<oliver@xxxxxxxxxx>
Date: Mon, 25 Oct 2010 12:25:26 +0200
Subject: [PATCH 2/5] SCSI:sd:error handling in sd_sync_cache()
The SCSI commands sd_sync_cache() uses may fail.
These errors needs to be evaluated to return correct
error codes. This fixes system suspension while a device
removal is being handled.
Signed-off-by: Oliver NEukum<oneukum@xxxxxxx>