NFS client bugfixes for Linux 4.16
Hightlights include: - Fix a broken cast in nfs4_callback_recallany() - Fix an Oops during NFSv4 migration events - make struct nlmclnt_fl_close_lock_ops static -----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJakuNIAAoJEGcL54qWCgDykYYQAITHRrWP7tQ6aSpZxW5+Un5z 6K3RRbfxFjHWVyaePCBzRMOtPTA/puqO0ggx9H+2D4+u2GeXhFl7FMdIuLueGKrc rh0wzB6+KiHvqK8NT3g4c2VzZbGJ8IWB6jlNaA3ZyHRJcO+Oi3rQhYBNZpVqP6ny M1C3yXQTUtA13aOLjeThoAKIJyknwdZcsiMTptJslvSsQ9PL0w6m6jZKrVHu6Rc+ Hg12FFptaKien/gj2IUYJb6Z2Mz3arJu1Y7cm1P/zH/NBs37ynMUsrb9AvPbzvRm PvPRT4ugNOlTgDTaIT2JHwP2bhlp2JF+Tdzq7WYE3ek2CEPUD49jv07MlgTHxy/w +tcp/322ZCxvKLjHTeEWqGn4T0TZ1TdPrd4dIJsjox9Ffy72Z3rOjvLKt5UrRV0i 8IhiE3/ruHFpB75Yfi7ABEIH8aEwwmchQTf5bth0ZKoZdaEPHmy3xnJkxa+wlD1V Hp6KoqMNlDXEFx2Ih/SD6j50MFKszq6+cjUk2D8iclLnelXhu9iddFQ+PFNfsxVZ WSo4AWZoPbtbLnn9Ez9dkdsJILKv86LbEvYxLX6/LnxLzzX70E34tbRQa+drVeR3 Na6czRpld85juKWgiFkzNx+zD4TaBAxUMbQH2Gbwngiz5RoT6SnkkdkAK3EW7nhR pIJgZGiq/NG3NLiCxIgs =l2jv -----END PGP SIGNATURE----- Merge tag 'nfs-for-4.16-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs Pull NFS client bugfixes from Trond Myklebust: - fix a broken cast in nfs4_callback_recallany() - fix an Oops during NFSv4 migration events - make struct nlmclnt_fl_close_lock_ops static * tag 'nfs-for-4.16-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS: make struct nlmclnt_fl_close_lock_ops static nfs: system crashes after NFS4ERR_MOVED recovery NFSv4: Fix broken cast in nfs4_callback_recallany()
This commit is contained in:
commit
c89be52426
|
@ -572,7 +572,7 @@ __be32 nfs4_callback_sequence(void *argp, void *resp,
|
|||
}
|
||||
|
||||
static bool
|
||||
validate_bitmap_values(unsigned long mask)
|
||||
validate_bitmap_values(unsigned int mask)
|
||||
{
|
||||
return (mask & ~RCA4_TYPE_MASK_ALL) == 0;
|
||||
}
|
||||
|
@ -596,17 +596,15 @@ __be32 nfs4_callback_recallany(void *argp, void *resp,
|
|||
goto out;
|
||||
|
||||
status = cpu_to_be32(NFS4_OK);
|
||||
if (test_bit(RCA4_TYPE_MASK_RDATA_DLG, (const unsigned long *)
|
||||
&args->craa_type_mask))
|
||||
if (args->craa_type_mask & BIT(RCA4_TYPE_MASK_RDATA_DLG))
|
||||
flags = FMODE_READ;
|
||||
if (test_bit(RCA4_TYPE_MASK_WDATA_DLG, (const unsigned long *)
|
||||
&args->craa_type_mask))
|
||||
if (args->craa_type_mask & BIT(RCA4_TYPE_MASK_WDATA_DLG))
|
||||
flags |= FMODE_WRITE;
|
||||
if (test_bit(RCA4_TYPE_MASK_FILE_LAYOUT, (const unsigned long *)
|
||||
&args->craa_type_mask))
|
||||
pnfs_recall_all_layouts(cps->clp);
|
||||
if (flags)
|
||||
nfs_expire_unused_delegation_types(cps->clp, flags);
|
||||
|
||||
if (args->craa_type_mask & BIT(RCA4_TYPE_MASK_FILE_LAYOUT))
|
||||
pnfs_recall_all_layouts(cps->clp);
|
||||
out:
|
||||
dprintk("%s: exit with status = %d\n", __func__, ntohl(status));
|
||||
return status;
|
||||
|
|
|
@ -873,7 +873,7 @@ static void nfs3_nlm_release_call(void *data)
|
|||
}
|
||||
}
|
||||
|
||||
const struct nlmclnt_operations nlmclnt_fl_close_lock_ops = {
|
||||
static const struct nlmclnt_operations nlmclnt_fl_close_lock_ops = {
|
||||
.nlmclnt_alloc_call = nfs3_nlm_alloc_call,
|
||||
.nlmclnt_unlock_prepare = nfs3_nlm_unlock_prepare,
|
||||
.nlmclnt_release_call = nfs3_nlm_release_call,
|
||||
|
|
|
@ -868,8 +868,10 @@ static int nfs4_set_client(struct nfs_server *server,
|
|||
if (IS_ERR(clp))
|
||||
return PTR_ERR(clp);
|
||||
|
||||
if (server->nfs_client == clp)
|
||||
if (server->nfs_client == clp) {
|
||||
nfs_put_client(clp);
|
||||
return -ELOOP;
|
||||
}
|
||||
|
||||
/*
|
||||
* Query for the lease time on clientid setup or renewal
|
||||
|
@ -1244,11 +1246,11 @@ int nfs4_update_server(struct nfs_server *server, const char *hostname,
|
|||
clp->cl_proto, clnt->cl_timeout,
|
||||
clp->cl_minorversion, net);
|
||||
clear_bit(NFS_MIG_TSM_POSSIBLE, &server->mig_status);
|
||||
nfs_put_client(clp);
|
||||
if (error != 0) {
|
||||
nfs_server_insert_lists(server);
|
||||
return error;
|
||||
}
|
||||
nfs_put_client(clp);
|
||||
|
||||
if (server->nfs_client->cl_hostname == NULL)
|
||||
server->nfs_client->cl_hostname = kstrdup(hostname, GFP_KERNEL);
|
||||
|
|
Loading…
Reference in New Issue