Skip to content

Commit 216e4a1

Browse files
committed
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
2 parents e0d0e04 + 8a9d6e9 commit 216e4a1

File tree

3 files changed

+3
-2
lines changed

3 files changed

+3
-2
lines changed

fs/nfs/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ config PNFS_FILE_LAYOUT
121121
config PNFS_BLOCK
122122
tristate
123123
depends on NFS_V4_1 && BLK_DEV_DM
124+
depends on 64BIT || LBDAF
124125
default NFS_V4
125126

126127
config PNFS_FLEXFILE_LAYOUT

fs/nfs/flexfilelayout/flexfilelayoutdev.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ void nfs4_ff_layout_free_deviceid(struct nfs4_ff_layout_ds *mirror_ds)
3232
{
3333
nfs4_print_deviceid(&mirror_ds->id_node.deviceid);
3434
nfs4_pnfs_ds_put(mirror_ds->ds);
35+
kfree(mirror_ds->ds_versions);
3536
kfree_rcu(mirror_ds, id_node.rcu);
3637
}
3738

fs/nfs/nfs4proc.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2553,9 +2553,8 @@ static int nfs41_check_open_stateid(struct nfs4_state *state)
25532553
clear_bit(NFS_O_RDWR_STATE, &state->flags);
25542554
clear_bit(NFS_OPEN_STATE, &state->flags);
25552555
stateid->type = NFS4_INVALID_STATEID_TYPE;
2556-
}
2557-
if (status != NFS_OK)
25582556
return status;
2557+
}
25592558
if (nfs_open_stateid_recover_openmode(state))
25602559
return -NFS4ERR_OPENMODE;
25612560
return NFS_OK;

0 commit comments

Comments
 (0)