Merge tag 'nfs-for-4.13-5' of git://git.linux-nfs.org/projects/anna/linux-nfs

Pull NFS client fixes from Anna Schumaker:
"A few more NFS client bugfixes from me for rc5.

Dros has a stable fix for flexfiles to prevent leaking the
nfs4_ff_ds_version arrays when freeing a layout, Trond fixed a
potential recovery loop situation with the TEST_STATEID operation, and
Christoph fixed up the pNFS blocklayout Kconfig options to prevent
unsafe use with kernels that don't have large block device support.
Summary:

Stable fix:
- fix leaking nfs4_ff_ds_version array

Other fixes:
- improve TEST_STATEID OLD_STATEID handling to prevent recovery loop

- require 64-bit sector_t for pNFS blocklayout to prevent 32-bit
compile errors"

* tag 'nfs-for-4.13-5' of git://git.linux-nfs.org/projects/anna/linux-nfs:
pnfs/blocklayout: require 64-bit sector_t
NFSv4: Ignore NFS4ERR_OLD_STATEID in nfs41_check_open_stateid()
nfs/flexfiles: fix leak of nfs4_ff_ds_version arrays

Changed files
+3 -2
fs
+1
fs/nfs/Kconfig
··· 121 121 config PNFS_BLOCK 122 122 tristate 123 123 depends on NFS_V4_1 && BLK_DEV_DM 124 + depends on 64BIT || LBDAF 124 125 default NFS_V4 125 126 126 127 config PNFS_FLEXFILE_LAYOUT
+1
fs/nfs/flexfilelayout/flexfilelayoutdev.c
··· 32 32 { 33 33 nfs4_print_deviceid(&mirror_ds->id_node.deviceid); 34 34 nfs4_pnfs_ds_put(mirror_ds->ds); 35 + kfree(mirror_ds->ds_versions); 35 36 kfree_rcu(mirror_ds, id_node.rcu); 36 37 } 37 38
+1 -2
fs/nfs/nfs4proc.c
··· 2553 2553 clear_bit(NFS_O_RDWR_STATE, &state->flags); 2554 2554 clear_bit(NFS_OPEN_STATE, &state->flags); 2555 2555 stateid->type = NFS4_INVALID_STATEID_TYPE; 2556 - } 2557 - if (status != NFS_OK) 2558 2556 return status; 2557 + } 2559 2558 if (nfs_open_stateid_recover_openmode(state)) 2560 2559 return -NFS4ERR_OPENMODE; 2561 2560 return NFS_OK;