forked from Minki/linux
Staging: remove cowloop driver
The author has found a number of problems with the current version of this driver in the current kernel, and is reworking it to get things working again. Because of that, it would be better to remove the driver now and add it back in a future kernel release. Cc: H.J. Thomassen <hjt@ATComputing.nl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
7d230df37a
commit
999b9da40e
@ -127,7 +127,5 @@ source "drivers/staging/sep/Kconfig"
|
||||
|
||||
source "drivers/staging/iio/Kconfig"
|
||||
|
||||
source "drivers/staging/cowloop/Kconfig"
|
||||
|
||||
endif # !STAGING_EXCLUDE_BUILD
|
||||
endif # STAGING
|
||||
|
@ -45,4 +45,3 @@ obj-$(CONFIG_VME_BUS) += vme/
|
||||
obj-$(CONFIG_RAR_REGISTER) += rar/
|
||||
obj-$(CONFIG_DX_SEP) += sep/
|
||||
obj-$(CONFIG_IIO) += iio/
|
||||
obj-$(CONFIG_COWLOOP) += cowloop/
|
||||
|
@ -1,16 +0,0 @@
|
||||
config COWLOOP
|
||||
tristate "copy-on-write pseudo Block Driver"
|
||||
depends on BLOCK
|
||||
default n
|
||||
---help---
|
||||
Cowloop is a "copy-on-write" pseudo block driver. It can be
|
||||
stacked on top of a "real" block driver, and catches all write
|
||||
operations on their way from the file systems layer above to
|
||||
the real driver below, effectively shielding the lower driver
|
||||
from those write accesses. The requests are then diverted to
|
||||
an ordinary file, located somewhere else (configurable). Later
|
||||
read requests are checked to see whether they can be serviced
|
||||
by the "real" block driver below, or must be pulled in from
|
||||
the diverted location. More information and userspace tools to
|
||||
use the driver are on the project's website
|
||||
http://www.ATComputing.nl/cowloop/
|
@ -1 +0,0 @@
|
||||
obj-$(CONFIG_COWLOOP) += cowloop.o
|
@ -1,11 +0,0 @@
|
||||
TODO:
|
||||
- checkpatch.pl cleanups
|
||||
- run sparse to ensure clean
|
||||
- fix up 32/64bit ioctl issues
|
||||
- move proc file usage to debugfs
|
||||
- audit ioctls
|
||||
- add documentation
|
||||
- get linux-fsdevel to review it
|
||||
|
||||
Please send patches to "H.J. Thomassen" <hjt@ATComputing.nl> and
|
||||
Greg Kroah-Hartman <gregkh@suse.de>
|
File diff suppressed because it is too large
Load Diff
@ -1,66 +0,0 @@
|
||||
/*
|
||||
** DO NOT MODIFY THESE VALUES (would make old cowfiles unusable)
|
||||
*/
|
||||
#define MAPUNIT 1024 /* blocksize for bit in bitmap */
|
||||
#define MUSHIFT 10 /* bitshift for bit in bitmap */
|
||||
#define MUMASK 0x3ff /* bitmask for bit in bitmap */
|
||||
|
||||
#define COWMAGIC 0x574f437f /* byte-swapped '7f C O W' */
|
||||
#define COWDIRTY 0x01
|
||||
#define COWPACKED 0x02
|
||||
#define COWVERSION 1
|
||||
|
||||
struct cowhead
|
||||
{
|
||||
int magic; /* identifies a cowfile */
|
||||
short version; /* version of cowhead */
|
||||
short flags; /* flags indicating status */
|
||||
unsigned long mapunit; /* blocksize per bit in bitmap */
|
||||
unsigned long mapsize; /* total size of bitmap (bytes) */
|
||||
unsigned long doffset; /* start-offset datablocks in cow */
|
||||
unsigned long rdoblocks; /* size of related read-only file */
|
||||
unsigned long rdofingerprint; /* fingerprint of read-only file */
|
||||
unsigned long cowused; /* number of datablocks used in cow */
|
||||
};
|
||||
|
||||
#define COWDEVDIR "/dev/cow/"
|
||||
#define COWDEVICE COWDEVDIR "%ld"
|
||||
#define COWCONTROL COWDEVDIR "ctl"
|
||||
|
||||
#define MAXCOWS 1024
|
||||
#define COWCTL (MAXCOWS-1) /* minor number of /dev/cow/ctl */
|
||||
|
||||
#define COWPROCDIR "/proc/cow/"
|
||||
#define COWPROCFILE COWPROCDIR "%d"
|
||||
|
||||
/*
|
||||
** ioctl related stuff
|
||||
*/
|
||||
#define ANYDEV ((unsigned long)-1)
|
||||
|
||||
struct cowpair
|
||||
{
|
||||
unsigned char *rdofile; /* pathname of the rdofile */
|
||||
unsigned char *cowfile; /* pathname of the cowfile */
|
||||
unsigned short rdoflen; /* length of rdofile pathname */
|
||||
unsigned short cowflen; /* length of cowfile pathname */
|
||||
unsigned long device; /* requested/returned device number */
|
||||
};
|
||||
|
||||
struct cowwatch
|
||||
{
|
||||
int flags; /* request flags */
|
||||
unsigned long device; /* requested device number */
|
||||
unsigned long threshold; /* continue if free Kb < threshold */
|
||||
unsigned long totalkb; /* ret: total filesystem size (Kb) */
|
||||
unsigned long availkb; /* ret: free filesystem size (Kb) */
|
||||
};
|
||||
|
||||
#define WATCHWAIT 0x01 /* block until threshold reached */
|
||||
|
||||
#define COWSYNC _IO ('C', 1)
|
||||
#define COWMKPAIR _IOW ('C', 2, struct cowpair)
|
||||
#define COWRMPAIR _IOW ('C', 3, unsigned long)
|
||||
#define COWWATCH _IOW ('C', 4, struct cowwatch)
|
||||
#define COWCLOSE _IOW ('C', 5, unsigned long)
|
||||
#define COWRDOPEN _IOW ('C', 6, unsigned long)
|
Loading…
Reference in New Issue
Block a user