Commit Graph

140754 Commits

Author SHA1 Message Date
ADDI-DATA GmbH
c995fe9475 Staging: comedi: add addi-data drivers
This adds the addi-data family of comedi drivers to the staging tree

From: ADDI-DATA GmbH <info@addi-data.com>
Cc: David Schleef <ds@schleef.org>
Cc: Frank Mori Hess <fmhess@users.sourceforge.net>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:41 -07:00
Julia Lawall
98ccdc56a0 Staging: comedi: Move a dereference below a NULL test
If the NULL test is necessary, then the dereference should be moved below
the NULL test.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/).

// <smpl>
@disable is_null@
identifier f;
expression E;
identifier fld;
statement S;
@@

+ if (E == NULL) S
  f(...,E->fld,...);
- if (E == NULL) S

@@
identifier f;
expression E;
identifier fld;
statement S;
@@

+ if (!E) S
  f(...,E->fld,...);
- if (!E) S
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:41 -07:00
Julia Lawall
b171041be0 Staging: comedi: introduce missing kfree
Error handling code following a kmalloc should free the allocated data.

The semantic match that finds the problem is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
statement S;
expression E;
identifier f,l;
position p1,p2;
expression *ptr != NULL;
@@

(
if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...)) == NULL) S
|
x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
...
if (x == NULL) S
)
<... when != x
     when != if (...) { <+...x...+> }
x->f = E
...>
(
 return \(0\|<+...x...+>\|ptr\);
|
 return@p2 ...;
)

@script:python@
p1 << r.p1;
p2 << r.p2;
@@

print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Julia Lawall
fc0cb7d166 Staging: comedi: Use DEFINE_SPINLOCK
SPIN_LOCK_UNLOCKED is deprecated.  The following makes the change suggested
in Documentation/spinlocks.txt

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
declarer name DEFINE_SPINLOCK;
identifier xxx_lock;
@@

- spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED;
+ DEFINE_SPINLOCK(xxx_lock);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Julia Lawall
d86d3a0101 Staging: comedi: Correct use of ! and &
0x20 has 0 as its rightmost bit and thus !inl(info->plx_regbase +
PLX_INTCSR) & 0x20 is always 0.  I assume that !(!inl(info->plx_regbase +
PLX_INTCSR) & 0x20) was intended.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@ expression E; constant C; @@
(
  !E & !C
|
- !E & C
+ !(E & C)
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Randy Dunlap
3bfd058363 Staging: phison: depends on PCI
phison uses PCI interfaces, so it should depend on PCI.

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Evan Ko <evan_ko@phison.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Randy Dunlap
1cc41726fd Staging: phison: fix kconfig for clean build
phison is an ATA driver, not a classic IDE driver, so fix the Kconfig file
so that it will build.

drivers/staging/phison/phison.c:43: error: implicit declaration of function 'ATA_BMDMA_SHT'
drivers/staging/phison/phison.c:43: error: initializer element is not constant
drivers/staging/phison/phison.c:43: error: (near initialization for 'phison_sht.module')
drivers/staging/phison/phison.c:47: error: 'ata_bmdma_port_ops' undeclared here (not in a function)
drivers/staging/phison/phison.c:65: error: implicit declaration of function 'ata_pci_sff_init_one'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Greg Kroah-Hartman
301df5dce4 Staging: phison: add driver to the build system
Cc: Evan Ko <evan_ko@phison.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Greg Kroah-Hartman
76d86df9c4 Staging: phison: port code to work properly with latest libata
This brings the driver up to modern times so that it can build and run
properly with the in-tree libata code.

Cc: Evan Ko <evan_ko@phison.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Greg Kroah-Hartman
33210206b6 Staging: phison: fix up checkpatch and other formatting issues
Minor touchups to fix up the coding style issues in the phison driver.

Cc: Evan Ko <evan_ko@phison.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Evan Ko
cfc2f947f8 Staging: add phison ATA driver to the tree
It doesn't build properly yet as it is against an older kernel version.
That will be fixed up in patches following this.

From: Evan Ko <evan_ko@phison.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Justin Bronder
ecf4745166 Staging: b3dfg: Prepare b3dfg for submission upstream.
- Basically, update driver to run with 2.6.28
    - Conversion from struct class_device to struct device.
    - Conversion from .nopfn to .fault in vm_operations_struct.
    - Update use of pci_resource_flags to check for IORESOURCE_SIZEALIGN.
    - Update use of pci_dma_mapping_error.
- Minor code cleanup and integration with kernel build system.

Signed-off-by: Justin Bronder <jsbronder@brontes3d.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:40 -07:00
Duane Griffin
5f4e925ad7 Staging: b3dfg: fixups and improvements
- Added support for cable plug/unplug detection.
 - Improvements to error handling.
 - Switch to the pci_* DMA API.
 - Removed set_num_buffers functionality.
 - Locking review.
 - Unconditionally disable transmission when releasing device.

Signed-off-by: Justin Bronder <jsbronder@brontes3d.com>
Cc: Duane Griffin <duaneg@dghda.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Daniel Drake
44c889243e Staging: add b3dfg driver
Initial b3dfg driver development as preformed by Daniel Drake.  All
basic functionality is completed.

Signed-off-by: Justin Bronder <jsbronder@brontes3d.com>
Cc: Daniel Drake <ddrake@brontes3d.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
8532b09fde Staging: aten2011: fix checkpatch errors and warnings
After this, only warnings are line length ones.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
9d7005450b Staging: aten2011: s/__FUNCTION__/__func__
replace __FUNCTION__ with __func__

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
9e3697a5cc Staging: aten2011: remove DPRINTK macro
Convert to use the dbg() macro we already have in the usb-serial layer.
This also turns off the default for the driver to spit out all of the
debug messages, now it is controlled by the module parameter.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
87ed9bd225 Staging: aten2011: fix up c++ comments
Convert all C++ comments to /* */

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
c3e06f2fc9 Staging: aten2011: remove wrappers around serial get and put data functions
Don't wrap things that do not need to be wrapped...

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
4649dd3a8f Staging: aten2011: delete the Dump_serial_port function
It's useless, drop it.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
12cbe0b338 Staging: aten2011: fix up the get_uart_reg function
Name it something sane, and fix up the code to be cleaner.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
e514adb0f2 Staging: aten2011: fix up the set_uart_reg function
Name it something sane, and fix up the code to be cleaner.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:38 -07:00
Greg Kroah-Hartman
e9abe30d6a Staging: aten2011: fix up the get_reg_sync function
Name it something sane, and fix up the code to be cleaner.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
8433b6a693 Staging: aten2011: fix up the set_reg_sync function
Name it something sane, and fix up the code to be cleaner.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
f3415eeb22 Staging: aten2011: remove paranoia check functions
They are useless so lets remove them.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
085c0904af Staging: aten2011: clean up init and exit functions
This makes them smaller, and fixes the name of the serial driver
structure.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
c725e43a54 Staging: aten2011: remove unused fields from structures.
As the driver was copied from another one, there are lots of fields that
are unused due to the hardware being different.  Remove a bunch of them,
more will be removed later.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
907aff4ab0 Staging: aten2011: fix up sparse warnings
This resolves all of the sparse warnings.


Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
a7fefd101e Staging: aten2011: remove function prototypes.
Reorginize functions to get rid of forward prototypes so they are no
longer needed.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
a6364092ee Staging: aten2011: remove unneeded defines
Lots of unused and unneeded #defines in this code, so lets remove them.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
c3858cbb95 Staging: aten2011: fix up comments by removing most of them.
This driver was copied from the io_edgeport.c driver, so we need to put
the proper copyright information back on it.

Also, almost all of the function comments are directly from the original
io_edgeport driver, and most of them are either totally wrong now due to
changes, or redundant.  So delete them all so no one gets confused by
anything.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
8b4efbe395 Staging: aten2011: remove kernel version dependencies
As we are wanting to be in the main kernel tree, remove the #ifdef
stuff for different kernel versions.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
e5ce610fd1 Staging: aten2011: move .h files into the driver
No need for external .h files for a simple usb-serial driver, move them
into the .c file to make things easier to cleanup.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:37 -07:00
Greg Kroah-Hartman
d93f87c840 Staging: aten2011: run lindent
Run scripts/Lindent on the driver

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Greg Kroah-Hartman
e6d69d91d5 Staging: add aten2011 usb to serial converter driver.
Many thanks to Russell Lang <gsview@ghostgum.com.au> for his
help in getting this working on newer kernel versions and
for pointing out this driver in the first place.

Cc: Russell Lang <gsview@ghostgum.com.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Randy Dunlap
793bccbd0e Staging: stlc45xx: fix printk format warnings
Fix staging/stlc45xx printk format warnings:

drivers/staging/stlc45xx/stlc45xx.c:453: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
drivers/staging/stlc45xx/stlc45xx.c:509: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
drivers/staging/stlc45xx/stlc45xx.c:718: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
drivers/staging/stlc45xx/stlc45xx.c:851: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
drivers/staging/stlc45xx/stlc45xx.c:857: warning: format '%d' expects type 'int', but argument 2 has type 'size_t'
drivers/staging/stlc45xx/stlc45xx.c:1508: warning: format '%d' expects type 'int', but argument 3 has type 'size_t'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Kalle Valo
14c0b3ed4c Staging: Add stlc45xx, wi-fi driver for stlc4550/4560
This patch adds a new driver called stlc45xx, which supports wi-fi chipsets
stlc4550 and stlc4560 from ST-NXP Wireless. The chipset can be found, for
example, from Nokia N800 and N810 products.

The driver is implemented based on the firmware interface information
published by ST-NXP Wireless here:

http://wireless.kernel.org/en/developers/Documentation/specs#STMicroelectronicshardware

Currently only SPI interface is supported.

Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Alexander Beregalov
0564200d3d Staging: pohmelfs: should include fs_struct.h
drivers/staging/pohmelfs/path_entry.c: In function
'pohmelfs_construct_path_string':
drivers/staging/pohmelfs/path_entry.c:48: error: dereferencing pointer to incomplete type
drivers/staging/pohmelfs/path_entry.c:49: error: dereferencing pointer to incomplete type
drivers/staging/pohmelfs/path_entry.c:50: error: dereferencing pointer to incomplete type
drivers/staging/pohmelfs/path_entry.c: In function 'pohmelfs_path_length':
drivers/staging/pohmelfs/path_entry.c:95: error: dereferencing pointer to incomplete type
drivers/staging/pohmelfs/path_entry.c:96: error: dereferencing pointer to incomplete type
drivers/staging/pohmelfs/path_entry.c:97: error: dereferencing pointer to incomplete type

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Randy Dunlap
36ec4ab8c4 Staging: pohmelfs: fix kconfig dependencies
pohmelfs wants to use CONNECTOR, so it selects CONNECTOR,
but when CONFIG_NET is not enabled, connector.c will not build,
since select does not follow the dependency chain.
Selecting NET is not a good idea, since that would build lots
of code that someone seemingly didn't want to build/store
and kconfig shouldn't do that behind someone's back.

pohmelfs should depend on NET since it uses network interfaces.

pohmelfs also uses CRYTPO and selects 2 cipher symbols, but
it should also select the top-level CRYPTO symbol since
kconfig dependency chains are not followed.
(found by inspection)
This allows the POHMELFS_CRYPTO option to depend only on
POHMELFS and makes the kconfig menu align properly.

Also fix minor typos & line lengths in kconfig help text.
Drop CONFIG_* in kconfig symbols in Kconfig file.


connector.c:(.text+0x46003): undefined reference to `kfree_skb'
connector.c:(.text+0x460a6): undefined reference to `kfree_skb'
connector.c:(.text+0x4612b): undefined reference to `kfree_skb'
(.text+0x4624f): undefined reference to `netlink_has_listeners'
(.text+0x4629b): undefined reference to `__alloc_skb'
(.text+0x462ea): undefined reference to `kfree_skb'
(.text+0x46308): undefined reference to `skb_put'
(.text+0x46385): undefined reference to `netlink_broadcast'
(.text+0x7b574): undefined reference to `sock_release'
(.text+0x7b8dd): undefined reference to `sock_create'
(.text+0x7b984): undefined reference to `kernel_connect'
(.text+0x7ba4c): undefined reference to `sock_release'
net.c:(.text+0x7bda4): undefined reference to `kernel_recvmsg'
(.text+0x7ef42): undefined reference to `kernel_sendmsg'
(.text+0x7f057): undefined reference to `kernel_sendpage'
(.text+0x7f1e8): undefined reference to `kernel_sendmsg'
connector.c:(.devinit.text+0x5b): undefined reference to `init_net'
connector.c:(.devinit.text+0x60): undefined reference to `netlink_kernel_create'
connector.c:(.devinit.text+0xc9): undefined reference to `netlink_kernel_release'
connector.c:(.devexit.text+0x2c): undefined reference to `netlink_kernel_release'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Alexander Beregalov
a6bab77c71 Staging: pohmelfs should depend on CRYPTO
Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Cc: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Alexander Beregalov
02d84ca5ed Staging: pohmelfs: fix printk format warnings v2
drivers/staging/pohmelfs/inode.c:917: warning: format '%u' expects type 'unsigned int', but argument 4 has type 'size_t'
drivers/staging/pohmelfs/inode.c:1036: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'size_t'
drivers/staging/pohmelfs/trans.c:164: warning: format '%u' expects type 'unsigned int', but argument 5 has type '__kernel_size_t'
drivers/staging/pohmelfs/trans.c:170: warning: format '%u' expects type 'unsigned int', but argument 7 has type '__kernel_size_t'
drivers/staging/pohmelfs/trans.c:517: warning: format '%u' expects type 'unsigned int', but argument 6 has type '__kernel_size_t'
drivers/staging/pohmelfs/trans.c:600: warning: format '%u' expects type 'unsigned int', but argument 6 has type '__kernel_size_t'
drivers/staging/pohmelfs/trans.c:610: warning: format '%u' expects type 'unsigned int', but argument 7 has type '__kernel_size_t'

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: Frank Seidel <frank@f-seidel.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Alexander Beregalov
898a6cbe55 Staging: pohmelfs: net.c: include vmalloc.h
on Sparc64:
drivers/staging/pohmelfs/net.c:33: error: implicit declaration of function 'vmalloc'
drivers/staging/pohmelfs/net.c:42: error: implicit declaration of function 'vfree'

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Alexander Beregalov
de459f26f3 Staging: pohmelfs: fix build breakage
drivers/staging/pohmelfs/inode.c:982: error: implicit declaration of
function 'DQUOT_TRANSFER'

Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Evgeniy Polyakov
f26c3036f2 Staging: pohmelfs: select crypto modules from the config.
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Evgeniy Polyakov
18bc0bbd16 Staging: pohmelfs: kconfig/makefile and vfs changes.
This patch adds Kconfig and Makefile entries and exports to
VFS functions to be used by POHMELFS.

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:36 -07:00
Evgeniy Polyakov
c09ee9d206 Staging: pohmelfs: transaction layer.
This patch implements transaction processing helpers
used to allocate/free/insert/remove and other operations
with the transctions.

Each transction is an object, which may embed multiple commands
completed atomically. When server fails the whole transaction will be
replied against it (or different server) later. This approach allows to
maintain high data integrity and do not desynchronize filesystem state
in case of network or server failures.

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:35 -07:00
Evgeniy Polyakov
d35eef1b42 Staging: pohmelfs: network operations.
This is a main network processing patch. It includes
both low-level socket machinery, zero-copy sending helpers,
receiving and parsing callbacks and mainly logical
commands handlers.

POHMELFS uses async network approach, when every command
can be separated from its answer and received after some
time after the request during which another lots of commands
can be injected into the network and replies to them received.

With read operation balancing between multiple hosts it is possible
that operations will arrive out of order and this is handled
by the transaction mechanism described partially here.

Having a transaction to guard the set of logically compound operations
allows to send data without thinking about its status and using
zero-copy sending mechanism, since transaction will receive explicit
acks from the servers when they are completed.

This patch also contains header with network srtuctures, commands
and short comments on how they are used.

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:35 -07:00
Evgeniy Polyakov
ac7036c131 Staging: pohmelfs: distributed locking and cache coherency protocol.
POHMELFS utilizes writeback cache, which is built on top of MO(E)SI-like
coherency protocol. This patch includes its implementation and cache
object processing helpers (like allocation and completion callbacks).

POHMELFS uses scalable cached read/write locking. No additional requests
are performed if lock is granted to the filesystem. The same protocol
is used by the server to on-demand flushing of the client's cache (for
example when server wants to update local data).

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:34 -07:00
Evgeniy Polyakov
b3f08cad3d Staging: pohmelfs: inode operations.
This is the main patch which implements inode operations
(like reading and writing) and superblock processing
(filesystem registration, initial autoconfiguration
with the server like permissions, size of the exported
dir, amount of the objects created and so on).

POHMELFS relies on system's writeback cache mechanism
shown here, as long as cache coherency protocol described
later.

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:34 -07:00
Evgeniy Polyakov
e3eec94dc9 Staging: pohmelfs: directory operations.
This patch implementes all supported directory operations
like directory reading, object lookup, creation, removal
and so on.

Currently object removal is not optimized at all.

Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-04-03 14:53:34 -07:00