summaryrefslogtreecommitdiffstats
path: root/fs/nfs/flexfilelayout/flexfilelayout.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2016-11-25 19:24:09 +0100
committerTrond Myklebust <trond.myklebust@primarydata.com>2016-12-02 17:42:58 +0100
commit46c98c6d1bd33f8ae2c3b8f379f1629c472141e3 (patch)
tree602df41c7ae82a87efbf3f3d9a095171797b5915 /fs/nfs/flexfilelayout/flexfilelayout.c
parentNFS: Allow getattr to also report readdirplus cache hits (diff)
downloadlinux-46c98c6d1bd33f8ae2c3b8f379f1629c472141e3.tar.xz
linux-46c98c6d1bd33f8ae2c3b8f379f1629c472141e3.zip
pNFS/flexfiles: Don't attempt to send layoutstats if there are no entries
If the list of mirrors is empty, then don't send an RPC call. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to '')
-rw-r--r--fs/nfs/flexfilelayout/flexfilelayout.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
index 90462a2a9237..a6264d6836dc 100644
--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -2250,6 +2250,11 @@ ff_layout_prepare_layoutstats(struct nfs42_layoutstat_args *args)
args->num_dev = ff_layout_mirror_prepare_stats(args,
&ff_layout->generic_hdr, dev_count);
spin_unlock(&args->inode->i_lock);
+ if (!args->num_dev) {
+ kfree(args->devinfo);
+ args->devinfo = NULL;
+ return -ENOENT;
+ }
return 0;
}