pnfs: remove GETDEVICELIST implementation
The current GETDEVICELIST implementation is buggy in that it doesn't handle cursors correctly, and in that it returns an error if the server returns NFSERR_NOTSUPP. Given that there is no actual need for GETDEVICELIST, it has various issues and might get removed for NFSv4.2 stop using it in the blocklayout driver, and thus the Linux NFS client as whole. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:

committed by
Trond Myklebust

parent
fd41b4748b
commit
d4b18c3e00
@@ -358,33 +358,3 @@ nfs4_deviceid_mark_client_invalid(struct nfs_client *clp)
|
||||
}
|
||||
rcu_read_unlock();
|
||||
}
|
||||
|
||||
int
|
||||
nfs4_deviceid_getdevicelist(struct nfs_server *server,
|
||||
const struct nfs_fh *fh)
|
||||
{
|
||||
struct pnfs_devicelist *dlist;
|
||||
struct nfs4_deviceid_node *d;
|
||||
int error = 0, i;
|
||||
|
||||
dlist = kzalloc(sizeof(struct pnfs_devicelist), GFP_NOFS);
|
||||
if (!dlist)
|
||||
return -ENOMEM;
|
||||
|
||||
while (!dlist->eof) {
|
||||
error = nfs4_proc_getdevicelist(server, fh, dlist);
|
||||
if (error)
|
||||
break;
|
||||
|
||||
for (i = 0; i < dlist->num_devs; i++) {
|
||||
d = nfs4_find_get_deviceid(server, &dlist->dev_id[i],
|
||||
NULL, GFP_NOFS);
|
||||
if (d)
|
||||
nfs4_put_deviceid_node(d);
|
||||
}
|
||||
}
|
||||
|
||||
kfree(dlist);
|
||||
return error;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nfs4_deviceid_getdevicelist);
|
||||
|
Reference in New Issue
Block a user