diff options
author | Benjamin Coddington <bcodding@redhat.com> | 2016-08-22 14:11:16 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-08-23 11:41:38 -0400 |
commit | 41963c10c47a35185e68cb9049f7a3493c94d2d7 (patch) | |
tree | a561ace1f94987e1a66cf15d2f218b386bdd8487 /net | |
parent | b88fa69eaa8649f11828158c7b65c4bcd886ebd5 (diff) | |
download | linux-41963c10c47a35185e68cb9049f7a3493c94d2d7.tar.gz linux-41963c10c47a35185e68cb9049f7a3493c94d2d7.tar.bz2 linux-41963c10c47a35185e68cb9049f7a3493c94d2d7.zip |
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>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions