]> git.karo-electronics.de Git - karo-tx-linux.git/commit
pnfs-obj: Get rid of objlayout_{alloc,free}_io_state
authorBoaz Harrosh <bharrosh@panasas.com>
Wed, 17 Aug 2011 00:34:59 +0000 (17:34 -0700)
committerBoaz Harrosh <bharrosh@panasas.com>
Fri, 28 Oct 2011 18:53:00 +0000 (11:53 -0700)
commitdaaaebf9e448ad8a306333537dfabf1e878bd47d
tree6f2b73385fe01b3d307e1c9ff89b080e89c75fbe
parent1f1fe6e7fee0ee5e6ffa9807a0be763f4b6b01d8
pnfs-obj: Get rid of objlayout_{alloc,free}_io_state

This is part of moving objio_osd to use the ORE.

objlayout_io_state had two functions:
1. It was used in the error reporting mechanism at layout_return.
   This function is kept intact.
   (Later patch will rename objlayout_io_state => objlayout_io_res)
2. Carrier of rw io members into the objio_read/write_paglist API.
   This is removed in this patch.

The {r,w}data received from NFS are passed directly to the
objio_{read,write}_paglist API. The io_engine is now allocating
it's own IO state as part of the read/write. The minimal
functionality that was part of the generic allocation is passed
to the io_engine.

So part of this patch is rename of:
ios->ol_state.foo => ios->foo

At objlayout_{read,write}_done an objlayout_io_state is passed that
denotes the result of the IO. (Hence the later name change).
If the IO is successful objlayout calls an objio_free_result() API
immediately (Which for objio_osd causes the release of the io_state).
If the IO ended in an error it is hanged onto until reported in
layout_return and is released later through the objio_free_result()
API. (All this is not new just renamed and cleaned)

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
fs/nfs/objlayout/objio_osd.c
fs/nfs/objlayout/objlayout.c
fs/nfs/objlayout/objlayout.h