Whamcloud - gitweb
LU-1030 osc: new IO engine implementation
authorJinshan Xiong <jinshan.xiong@whamcloud.com>
Tue, 12 Jun 2012 00:03:56 +0000 (17:03 -0700)
committerAndreas Dilger <adilger@whamcloud.com>
Tue, 19 Jun 2012 05:40:10 +0000 (01:40 -0400)
commit9fe4b52ad2ffadf125d9b5c78bb2ff9a01725707
tree6b3bc730cc6e368d97e1e4e2e63f521a0871cefe
parent921fa0f21c1722e127fd072089ee35ddb0135653
LU-1030 osc: new IO engine implementation

New IO engine to manage dirty pages with osc_extent.

Osc_extent is a data structure to manage a series of contiguous
blocks; however, the pages in an extent is not required to be
contiguous. An extent must be written out in one RPC.

The purpose of introducing extents are:
1. make grants work for extent-based OSD;
2. form better IO by picking up contiguous pages to compose RPC;
3. reimplement ll_writepages() with CIT_FSYNC.

Signed-off-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Change-Id: I3ef619c1f07eefd201236ab55e5fd858791d41e0
Reviewed-on: http://review.whamcloud.com/2270
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
40 files changed:
libcfs/include/libcfs/linux/libcfs.h
libcfs/include/libcfs/posix/libcfs.h
libcfs/libcfs/autoMakefile.am
libcfs/libcfs/posix/rbtree.c [new file with mode: 0644]
lustre/include/cl_object.h
lustre/include/linux/obd.h
lustre/include/lustre_net.h
lustre/include/obd.h
lustre/include/obd_ost.h
lustre/ldlm/ldlm_lib.c
lustre/ldlm/ldlm_resource.c
lustre/liblustre/llite_cl.c
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/llite_lib.c
lustre/llite/rw.c
lustre/llite/rw26.c
lustre/llite/vvp_io.c
lustre/llite/vvp_page.c
lustre/lov/lov_io.c
lustre/lov/lov_page.c
lustre/obdclass/cl_internal.h
lustre/obdclass/cl_io.c
lustre/obdclass/cl_lock.c
lustre/obdclass/cl_page.c
lustre/obdclass/lprocfs_status.c
lustre/obdclass/lu_ref.c
lustre/obdecho/echo_client.c
lustre/osc/lproc_osc.c
lustre/osc/osc_cache.c
lustre/osc/osc_cl_internal.h
lustre/osc/osc_dev.c
lustre/osc/osc_internal.h
lustre/osc/osc_io.c
lustre/osc/osc_lock.c
lustre/osc/osc_object.c
lustre/osc/osc_page.c
lustre/osc/osc_request.c
lustre/ptlrpc/client.c
lustre/tests/sanity.sh