Files
linux/fs/afs
David Howells 6db3ac3c4b afs: Handle better the server returning excess or short data
When an AFS server is given an FS.FetchData{,64} request to read data from
a file, it is permitted by the protocol to return more or less than was
requested.  kafs currently relies on the latter behaviour in readpage{,s}
to handle a partial page at the end of the file (we just ask for a whole
page and clear space beyond the short read).

However, we don't handle all cases.  Add:

 (1) Handle excess data by discarding it rather than aborting.  Note that
     we use a common static buffer to discard into so that the decryption
     algorithm advances the PCBC state.

 (2) Handle a short read that affects more than just the last page.

Note that if a read comes up unexpectedly short of long, it's possible that
the server's copy of the file changed - in which case the data version
number will have been incremented and the callback will have been broken -
in which case all the pages currently attached to the inode will be zapped
anyway at some point.

Signed-off-by: David Howells <dhowells@redhat.com>
2017-03-16 16:27:44 +00:00
..
2008-04-29 08:06:26 -07:00
2007-07-16 09:05:43 -07:00
2011-03-31 11:26:23 -03:00
2017-01-09 11:10:02 +00:00
2017-02-27 18:43:47 -08:00
2017-02-10 16:34:17 +00:00
2009-04-03 16:42:41 +01:00
2017-03-16 16:27:44 +00:00
2017-01-09 11:10:02 +00:00
2017-01-09 11:10:02 +00:00
2017-01-09 11:10:02 +00:00