Skip to content

pnfs for 2.6.40

Benny Halevy linux-nfs 6 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v8 Latest32 patches 16 repliesIn review
  2. v626 patches 15 repliesSuperseded
  3. v538 patches 10 repliesSuperseded
Earlier versions · 3
VersionPostedPatchesRepliesStatus
v329 patches1 replySuperseded
v229 patches8 repliesSuperseded
v1 RFC27 patches19 repliesSuperseded

changes in v2 from the cover letter

* fix CB_NOTIFY_DEVICEID
* call pnfs_return_layout right before pnfs_destroy_layout
* remove assert_spin_locked from pnfs_clear_lseg_list
* remove wait parameter from the layoutreturn path.
* remove return_type field from nfs4_layoutreturn_args
* remove range from nfs4_layoutreturn_args
* no need to send layoutcommit from _pnfs_return_layout
* don't wait on sync layoutreturn
* get rid of PNFS_USE_RPC_CODE
* get rid of __nfs4_write_done_cb
* get rid of ds_[rw]size
* rename pnfs_{read,write}_done -> pnfs_ld_{read,write}_done
* reorganize and reorder the pnfs-obj patchset to expose dependencies and separate api changes
* some cleaning up of the pnfs-obj patches
* add xdr space reservation for pnfs-obj opaque layoutreturn and layoutcommit payloads

Patches in v8 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/32NFSv4.1: fix typo in filelayout_check_layoutfs/nfs/nfs4filelayout.c+1 -10 replies
2/32NFSv4.1: use struct nfs_client to qualify deviceidfs/nfs/nfs4filelayout.c fs/nfs/nfs4filelayout.h fs/nfs/nfs4filelayoutdev.c+7 -70 replies
3/32pnfs: resolve header dependency in pnfs.hfs/nfs/pnfs.h+1 -00 replies
4/32NFSv4.1: make deviceid cache globalfs/nfs/Makefile fs/nfs/nfs4filelayout.c fs/nfs/nfs4filelayout.h +3 more+194 -1030 replies
5/32NFSv4.1: purge deviceid cache on nfs_free_clientfs/nfs/client.c fs/nfs/nfs4filelayout.c fs/nfs/nfs4filelayout.h +3 more+70 -71 reply
6/32pnfs: CB_NOTIFY_DEVICEIDfs/nfs/callback.h fs/nfs/callback_proc.c fs/nfs/callback_xdr.c +2 more+241 -150 replies
7/32NFSv4.1: use layout driver in global device cachefs/nfs/callback_proc.c fs/nfs/nfs4filelayout.c fs/nfs/pnfs.h +1 more+23 -160 replies
8/32SUNRPC: introduce xdr_init_decode_pagesfs/nfs/dir.c fs/nfs/nfs4filelayout.c fs/nfs/nfs4filelayoutdev.c +2 more+27 -210 replies
9/32pnfs: Use byte-range for layoutgetfs/nfs/pnfs.c fs/nfs/pnfs.h fs/nfs/read.c +1 more+142 -450 replies
10/32pnfs: align layoutget requests on page boundariesfs/nfs/pnfs.c+8 -00 replies
11/32pnfs: Use byte-range for cb_layoutrecallfs/nfs/callback_proc.c fs/nfs/pnfs.c fs/nfs/pnfs.h+12 -90 replies
12/32pnfs: client statsfs/nfs/super.c+25 -00 replies
13/32pnfs-obj: objlayoutdriver module skeletonfs/nfs/Kconfig fs/nfs/Makefile fs/nfs/objlayout/Kbuild +1 more+93 -00 replies
14/32pnfs-obj: pnfs_osd XDR definitionsinclude/linux/pnfs_osd_xdr.h+345 -00 replies
15/32pnfs-obj: pnfs_osd XDR client implementationfs/nfs/objlayout/Kbuild fs/nfs/objlayout/pnfs_osd_xdr_cli.c+413 -10 replies
16/32pnfs-obj: decode layout, alloc/free lsegfs/nfs/objlayout/Kbuild fs/nfs/objlayout/objio_osd.c fs/nfs/objlayout/objlayout.c +1 more+340 -21 reply
17/32pnfs-obj: objio_osd device information retrieval and cachingfs/nfs/objlayout/objio_osd.c fs/nfs/objlayout/objlayout.c fs/nfs/objlayout/objlayout.h+223 -15 replies
18/32pnfs: alloc and free layout_hdr layoutdriver methodsfs/nfs/pnfs.c fs/nfs/pnfs.h+22 -30 replies
19/32pnfs-obj: define per-inode private structurefs/nfs/objlayout/objio_osd.c fs/nfs/objlayout/objlayout.c fs/nfs/objlayout/objlayout.h+46 -00 replies
20/32pnfs: support for non-rpc layout driversfs/nfs/internal.h fs/nfs/nfs4proc.c fs/nfs/pnfs.c +2 more+62 -40 replies
21/32pnfs-obj: osd raid engine read/write implementationfs/nfs/objlayout/objio_osd.c fs/nfs/objlayout/objlayout.c fs/nfs/objlayout/objlayout.h+899 -01 reply
22/32pnfs: layoutreturnfs/nfs/inode.c fs/nfs/nfs4proc.c fs/nfs/nfs4xdr.c +4 more+274 -71 reply
23/32pnfs: layoutret_on_setattrfs/nfs/nfs4proc.c fs/nfs/objlayout/objio_osd.c fs/nfs/pnfs.h+26 -00 replies
24/32pnfs: encode_layoutreturnfs/nfs/nfs4xdr.c fs/nfs/pnfs.h+11 -20 replies
25/32pnfs-obj: report errors and .encode_layoutreturn Implementation.fs/nfs/objlayout/objio_osd.c fs/nfs/objlayout/objlayout.c fs/nfs/objlayout/objlayout.h+297 -22 replies
26/32pnfs: encode_layoutcommitfs/nfs/nfs4xdr.c fs/nfs/pnfs.h+17 -30 replies
27/32pnfs-obj: objlayout_encode_layoutcommit implementationfs/nfs/objlayout/objio_osd.c fs/nfs/objlayout/objlayout.c fs/nfs/objlayout/objlayout.h+61 -00 replies
28/32NFSv4.1: unify pnfs_pageio_init functionsfs/nfs/pagelist.c fs/nfs/pnfs.c fs/nfs/pnfs.h +2 more+27 -554 replies
29/32NFSv4.1: change pg_test return type to boolfs/nfs/nfs4filelayout.c fs/nfs/objlayout/objio_osd.c fs/nfs/pagelist.c +3 more+22 -230 replies
30/32NFSv4.1: use pnfs_generic_pg_test directly by layout driverfs/nfs/nfs4filelayout.c fs/nfs/objlayout/objio_osd.c fs/nfs/pnfs.c +1 more+17 -190 replies
31/32NFSv4.1: define nfs_generic_pg_testfs/nfs/pagelist.c+7 -107 replies
32/32pnfs-obj: pg_test check for max_io_sizefs/nfs/objlayout/objio_osd.c+17 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v8 yet.

Read the v8 thread

Cover letter [PATCHSET v8 0/32] pnfs for 2.6.40

Trond,

This patchset includes the latest fixes from Boaz and it is ready in my opinion for linux-next.

Last 5 patches include the changes we discussed for pg_test and their use by pnfs-obj, please review carefully.

Note that I skipped v7. It was pushed up to the git tree but no patches were sent.

I released the series to git://linux-nfs.org/~bhalevy/linux-pnfs.git pnfs-submit under this tag: pnfs-for-2.6.40-v8-2011-05-25

Rebased on top of it are the pnfs-obj, pnfs, pnfsd-all, pnfsd-lexp-all, and pnfs-exofs-all branches, marked with tag pnfs-exofs-all-2.6.39-2011-05-25

Changes in v8: (Benny)
* removed EXPORT_SYMBOL_GPL from nfs4_deviceid_purge_client
* split "NFSv4.1: use layout driver in global device cache"
* squashed "Bug in new global-device-cache code"
* squashed "BUG in _deviceid_purge_client"
* squashed "layout_driver MUST set free_deviceid_node if using dev-cache"
* committed "layout_driver MUST set free_deviceid_node if using dev-cache"
* squashed "pnfs_osd_xdr.h Remove server definitions"
- updated commit message
* squashed "xdr_cli: Wrong type in comments"
* squashed "objio alloc/free lseg Bugs fixes"
* squashed "use layout driver in global device cache"
* squashed "Bugs in new global-device-cache code"
* squashed "objlayout wants to cache devices until unmount"
* squashed "Fall out from: non-rpc layout drivers"
* squashed "objio read/write patch: Bugs fixes"
* fixed NULL deref in _pnfs_return_layout
* removed "reclaim" member of nfs4_layoutreturn_args
* removed "extern" from function definitions

* committed "NFSv4.1: unify pnfs_pageio_init functions"
* committed "NFSv4.1: change pg_test return type to bool"
* committed "NFSv4.1: use pnfs_generic_pg_test directly by layout driver"
* committed "NFSv4.1: define nfs_generic_pg_test"
* committed "pnfs-obj: pg_test check for max_io_size"

Changes in v6: (Benny)
* squashed all SQUASHMEs
* reverted "SQUASHME: initialize data->task on the non-rpc io done success paths"
* reverted "per mount layout driver private data"
* reverted "pnfs: set/unset layoutdriver"
* applied (in reverse) "SQUASHME: pnfs-obj: Important fallout from the last rebase"

Changes in v5: (Benny)
* use struct nfs_client to qualify deviceid
* make device cache global
* use be32 res in nfs4_callback_devicenotify
* use gfp_flags
* xdr_init_decode_pages
* fix layout stateid used for layoutreturn args
* commit message for layoutret_on_setattr
* use global deviceid cache for pnfs-obj
- revert per-mount hook and related {.un}set_layoutdriver methods
* use layout driver in global device cache

changes in v4: (Boaz)
* See the long SQUASHME patchset I sent yesterday for all the changes.
titled: [PATCHSET 00/13] SQUASHME pnfs-obj: Lots of changes addressing
comments by Trond and Benny
* I have united all 3 raid-engine read/write patches to a single patch
* I've united the two error-reporting and error-encoding into one patch
* Some checkpatch love
* small cleanups here and there.
(I'll send a diff as reply to this mail)

changes in v3: (Benny)
* removed direct i/o patch
* align layoutget requests on page boundaries
* fix lseg ordering
* cleanup pnfs_insert_lseg
* pnfs: clean up pnfs_find_lseg lseg arg
* remove unnecessary FIXME

changes in v2:
* fix CB_NOTIFY_DEVICEID
* call pnfs_return_layout right before pnfs_destroy_layout
* remove assert_spin_locked from pnfs_clear_lseg_list
* remove wait parameter from the layoutreturn path.
* remove return_type field from nfs4_layoutreturn_args
* remove range from nfs4_layoutreturn_args
* no need to send layoutcommit from _pnfs_return_layout
* don't wait on sync layoutreturn
* get rid of PNFS_USE_RPC_CODE
* get rid of __nfs4_write_done_cb
* get rid of ds_[rw]size
* rename pnfs_{read,write}_done -> pnfs_ld_{read,write}_done
* reorganize and reorder the pnfs-obj patchset to expose dependencies and separate api changes
* some cleaning up of the pnfs-obj patches
* add xdr space reservation for pnfs-obj opaque layoutreturn and layoutcommit payloads

List of patches:

generic:
[PATCH v8 01/32] NFSv4.1: fix typo in filelayout_check_layout [PATCH v8 02/32] NFSv4.1: use struct nfs_client to qualify deviceid [PATCH v8 03/32] pnfs: resolve header dependency in pnfs.h [PATCH v8 04/32] NFSv4.1: make deviceid cache global [PATCH v8 05/32] NFSv4.1: purge deviceid cache on nfs_free_client [PATCH v8 06/32] pnfs: CB_NOTIFY_DEVICEID
[PATCH v8 07/32] NFSv4.1: use layout driver in global device cache [PATCH v8 08/32] SUNRPC: introduce xdr_init_decode_pages [PATCH v8 09/32] pnfs: Use byte-range for layoutget [PATCH v8 10/32] pnfs: align layoutget requests on page boundaries [PATCH v8 11/32] pnfs: Use byte-range for cb_layoutrecall [PATCH v8 12/32] pnfs: client stats

Basic ld driver and some std definitions:
[PATCH v8 13/32] pnfs-obj: objlayoutdriver module skeleton [PATCH v8 14/32] pnfs-obj: pnfs_osd XDR definitions [PATCH v8 15/32] pnfs-obj: pnfs_osd XDR client implementation

layoutget:
[PATCH v8 16/32] pnfs-obj: decode layout, alloc/free lseg

getdeviceinfo:
[PATCH v8 17/32] pnfs-obj: objio_osd device information retrieval and caching

read/write:
[PATCH v8 18/32] pnfs: alloc and free layout_hdr layoutdriver methods [PATCH v8 19/32] pnfs-obj: define per-inode private structure [PATCH v8 20/32] pnfs: support for non-rpc layout drivers [PATCH v8 21/32] pnfs-obj: osd raid engine read/write implementation

layoutreturn:
[PATCH v8 22/32] pnfs: layoutreturn
[PATCH v8 23/32] pnfs: layoutret_on_setattr
[PATCH v8 24/32] pnfs: encode_layoutreturn
[PATCH v8 25/32] pnfs-obj: report errors and .encode_layoutreturn Implementation.

layoutcommit:
[PATCH v8 26/32] pnfs: encode_layoutcommit
[PATCH v8 27/32] pnfs-obj: objlayout_encode_layoutcommit implementation

pg-test:
[PATCH v8 28/32] NFSv4.1: unify pnfs_pageio_init functions [PATCH v8 29/32] NFSv4.1: change pg_test return type to bool [PATCH v8 30/32] NFSv4.1: use pnfs_generic_pg_test directly by layout driver [PATCH v8 31/32] NFSv4.1: define nfs_generic_pg_test
[PATCH v8 32/32] pnfs-obj: pg_test check for max_io_size