linux_dsm_epyc7002/fs/nfs/blocklayout
Benjamin Coddington 41963c10c4 pnfs/blocklayout: update last_write_offset atomically with extents
Block/SCSI layout write completion may add committable extents to the
extent tree before updating the layout's last-written byte under the inode
lock.  If a sync happens before this value is updated, then
prepare_layoutcommit may find and encode these extents which would produce
a LAYOUTCOMMIT request whose encoded extents are larger than the request's
loca_length.

Fix this by using a last-written byte value that is updated atomically with
the extent tree so that commitable extents always match.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2016-08-23 11:41:38 -04:00
..
blocklayout.c pnfs/blocklayout: update last_write_offset atomically with extents 2016-08-23 11:41:38 -04:00
blocklayout.h pnfs/blocklayout: update last_write_offset atomically with extents 2016-08-23 11:41:38 -04:00
dev.c Fix NULL pointer dereference in bl_free_device(). 2016-07-22 15:14:21 -04:00
extent_tree.c pnfs/blocklayout: update last_write_offset atomically with extents 2016-08-23 11:41:38 -04:00
Makefile
rpc_pipefs.c nfs/blocklayout: add SCSI layout support 2016-03-18 11:38:17 -04:00