While I agree that this is a serious and very annoying bug, I don't think a kernel backport is necessary to fix it. A simple udev rule is all that's needed to make sure the allow_restart flag is always set. Here's how to fix it on Gutsy:
1) Open a terminal.
2) Type [ sudo nano /etc/udev/rules.d/98-local.rules ]
3) Paste the following text into the file:
# Set the allow_restart flag for all USB mass storage devices
ACTION=="add", \
SUBSYSTEM=="scsi", DRIVER=="sd" \
SUBSYSTEMS=="usb", DRIVERS=="usb-storage", \
RUN+="/bin/sh -c 'echo 1 >/sys/class/scsi_disk/%k/allow_restart'"
While I agree that this is a serious and very annoying bug, I don't think a kernel backport is necessary to fix it. A simple udev rule is all that's needed to make sure the allow_restart flag is always set. Here's how to fix it on Gutsy:
1) Open a terminal.
2) Type [ sudo nano /etc/udev/ rules.d/ 98-local. rules ]
3) Paste the following text into the file:
# Set the allow_restart flag for all USB mass storage devices ="usb-storage" , \ scsi_disk/ %k/allow_ restart' "
ACTION=="add", \
SUBSYSTEM=="scsi", DRIVER=="sd" \
SUBSYSTEMS=="usb", DRIVERS=
RUN+="/bin/sh -c 'echo 1 >/sys/class/
4) Save the file.
5) Type [ sudo /etc/init.d/udev restart ]