diff options
author | Ingo Molnar <mingo@kernel.org> | 2018-12-03 10:47:53 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2018-12-03 10:47:53 +0100 |
commit | df60673198ae678f68af54873b8904ba93fe13a0 (patch) | |
tree | 6e9a3393d0be7b68a69c2bbc58f4325ceb6fd853 /fs/nfs/flexfilelayout/flexfilelayoutdev.c | |
parent | 89f579ce99f7e028e81885d3965f973c0f787611 (diff) | |
parent | 2595646791c319cadfdbf271563aac97d0843dc7 (diff) | |
download | kernel_replicant_linux-df60673198ae678f68af54873b8904ba93fe13a0.tar.gz kernel_replicant_linux-df60673198ae678f68af54873b8904ba93fe13a0.tar.bz2 kernel_replicant_linux-df60673198ae678f68af54873b8904ba93fe13a0.zip |
Merge tag 'v4.20-rc5' into x86/cleanups, to sync up the tree
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'fs/nfs/flexfilelayout/flexfilelayoutdev.c')
-rw-r--r-- | fs/nfs/flexfilelayout/flexfilelayoutdev.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/fs/nfs/flexfilelayout/flexfilelayoutdev.c b/fs/nfs/flexfilelayout/flexfilelayoutdev.c index 74d8d5352438..d23347389626 100644 --- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c +++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c @@ -370,6 +370,25 @@ out: return fh; } +int +nfs4_ff_layout_select_ds_stateid(struct pnfs_layout_segment *lseg, + u32 mirror_idx, + nfs4_stateid *stateid) +{ + struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, mirror_idx); + + if (!ff_layout_mirror_valid(lseg, mirror, false)) { + pr_err_ratelimited("NFS: %s: No data server for mirror offset index %d\n", + __func__, mirror_idx); + goto out; + } + + nfs4_stateid_copy(stateid, &mirror->stateid); + return 1; +out: + return 0; +} + /** * nfs4_ff_layout_prepare_ds - prepare a DS connection for an RPC call * @lseg: the layout segment we're operating on |