03 Mar, 2010
1 commit
-
RAID attributes uses scsi_is_sdev_device() to gate some SCSI specific
checking code. This causes two problems. Firstly if SCSI == n just
defining scsi_is_sdev_device() to return false might not be enough to
prevent gcc from emitting the code (and thus referring to undefined
symbols), so this needs surrounding with an ifdef. Secondly, using
scsi_is_sdev_device() when SCSI is either y or m gives a subtle
problem in the m case: raid_attrs must also be m to use the symbol.
Do the usual Kconfig jiggery-pokery to fix this.Reported-by: Randy Dunlap
Signed-off-by: James Bottomley
18 Feb, 2010
1 commit
-
Signed-off-by: Kashyap Desai
Signed-off-by: James Bottomley
03 Jan, 2009
1 commit
-
[jejb: limit ioctl to returning 20 characters to avoid overrun
on long device names and add a few more conversions]
Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
Signed-off-by: James Bottomley
20 Apr, 2008
1 commit
-
It's big, but there doesn't seem to be a way to split it up smaller...
Signed-off-by: Tony Jones
Signed-off-by: Kay Sievers
Cc: Roland Dreier
Cc: Sean Hefty
Cc: Hal Rosenstock
Cc: James Bottomley
Signed-off-by: Greg Kroah-Hartman
08 Apr, 2008
1 commit
-
Every current transport class calls transport_container_release but
ignores the return value. This is catastrophic if it returns an error
because the containers are part of a global list and the next action of
almost every transport class is to free the memory used by the
container.Fix this by making transport_container_release a void, but making it BUG
if attribute_container_release returns an error ... this catches the
root cause of a system panic much earlier. If we don't do this, we get
an eventual BUG when the attribute container list notices the corruption
caused by the freed memory it's still referencing.Also made attribute_container_release __must_check as a reminder.
Cc: Greg KH
Signed-off-by: James Bottomley
05 Oct, 2006
1 commit
-
Signed-off-by: Jeff Garzik
Signed-off-by: James Bottomley
10 Jun, 2006
1 commit
-
Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove
duplicates of the macro.Signed-off-by: Tobias Klauser
Signed-off-by: Andrew Morton
Signed-off-by: James Bottomley
13 Jan, 2006
1 commit
-
Adding defines for RAID10 and RAID50 levels, in preparation
of adding RAID Transport support in the mpt fusion drivers.
(BTW: IME is RAID10, and IM is RAID1).Signed-off-by: Eric Moore
Signed-off-by: James Bottomley
14 Dec, 2005
1 commit
-
patch below marks a few scsi core datastructures as const, so that they end up
in the .rodata section and don't cacheline share with things that get dirtiedSigned-off-by: Arjan van de Ven
Signed-off-by: James Bottomley
09 Nov, 2005
1 commit
-
Signed-off-by: James Bottomley
07 Nov, 2005
2 commits
-
Fix more include file problems that surfaced since I submitted the previous
fix-missing-includes.patch. This should now allow not to include sched.h
from module.h, which is done by a followup patch.Signed-off-by: Tim Schmielau
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
- Update raid class to use nested classes for raid components (this will
allow us to move to a component control model now)
- Make the raid level an enumeration rather than and int.Signed-off-by: James Bottomley
31 Aug, 2005
1 commit
-
The idea behind a RAID class is to provide a uniform interface to all
RAID subsystems (both hardware and software) in the kernel.To do that, I've made this class a transport class that's entirely
subsystem independent (although the matching routines have to match per
subsystem, as you'll see looking at the code). I put it in the scsi
subdirectory purely because I needed somewhere to play with it, but it's
not a scsi specific module.I used a fusion raid card as the test bed for this; with that kind of
card, this is the type of class output you get:jejb@titanic> ls -l /sys/class/raid_devices/20\:0\:0\:0/
total 0
lrwxrwxrwx 1 root root 0 Aug 16 17:21 component-0 -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:1:0/20:1:0:0/
lrwxrwxrwx 1 root root 0 Aug 16 17:21 component-1 -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:1:1/20:1:1:0/
lrwxrwxrwx 1 root root 0 Aug 16 17:21 device -> ../../../devices/pci0000:80/0000:80:04.0/host20/target20:0:0/20:0:0:0/
-r--r--r-- 1 root root 16384 Aug 16 17:21 level
-r--r--r-- 1 root root 16384 Aug 16 17:21 resync
-r--r--r-- 1 root root 16384 Aug 16 17:21 stateSo it's really simple: for a SCSI device representing a hardware raid,
it shows the raid level, the array state, the resync % complete (if the
state is resyncing) and the underlying components of the RAID (these are
exposed in fusion on the virtual channel 1).As you can see, this type of information can be exported by almost
anything, including software raid.The more difficult trick, of course, is going to be getting it to
perform configuration type actions with writable attributes.Signed-off-by: James Bottomley