]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - fs/nfs/nfs4client.c
Merge branch 'labeled-nfs' into linux-next
[linux-imx.git] / fs / nfs / nfs4client.c
index 0054e4bd6b555c3ff514c689bc933f70b5f1f573..90dce91dd5b5c7aa61a7a17c34242619bbfc5b8d 100644 (file)
@@ -66,6 +66,11 @@ struct nfs_client *nfs4_alloc_client(const struct nfs_client_initdata *cl_init)
        if (err)
                goto error;
 
+       if (cl_init->minorversion > NFS4_MAX_MINOR_VERSION) {
+               err = -EINVAL;
+               goto error;
+       }
+
        spin_lock_init(&clp->cl_lock);
        INIT_DELAYED_WORK(&clp->cl_renewd, nfs4_renew_state);
        rpc_init_wait_queue(&clp->cl_rpcwaitq, "NFS client");
@@ -562,14 +567,14 @@ static bool nfs4_cb_match_client(const struct sockaddr *addr,
  */
 struct nfs_client *
 nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
-                          struct nfs4_sessionid *sid)
+                          struct nfs4_sessionid *sid, u32 minorversion)
 {
        struct nfs_client *clp;
        struct nfs_net *nn = net_generic(net, nfs_net_id);
 
        spin_lock(&nn->nfs_client_lock);
        list_for_each_entry(clp, &nn->nfs_client_list, cl_share_link) {
-               if (nfs4_cb_match_client(addr, clp, 1) == false)
+               if (nfs4_cb_match_client(addr, clp, minorversion) == false)
                        continue;
 
                if (!nfs4_has_session(clp))
@@ -592,7 +597,7 @@ nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
 
 struct nfs_client *
 nfs4_find_client_sessionid(struct net *net, const struct sockaddr *addr,
-                          struct nfs4_sessionid *sid)
+                          struct nfs4_sessionid *sid, u32 minorversion)
 {
        return NULL;
 }