]> err.no Git - linux-2.6/blobdiff - fs/nfs/nfs4proc.c
[MIPS] Early check for SMTC kernel on non-MT processor
[linux-2.6] / fs / nfs / nfs4proc.c
index 35bfcced2c75d2404ff2eacd3fd8881fbc251bc0..648e0ac0f90ea07aa74e8f1da5610c30392490ce 100644 (file)
@@ -790,7 +790,7 @@ out:
        return -EACCES;
 }
 
-int nfs4_recover_expired_lease(struct nfs_server *server)
+static int nfs4_recover_expired_lease(struct nfs_server *server)
 {
        struct nfs_client *clp = server->nfs_client;
        int ret;
@@ -2647,8 +2647,7 @@ static int __nfs4_proc_set_acl(struct inode *inode, const void *buf, size_t bufl
        nfs_inode_return_delegation(inode);
        buf_to_pages(buf, buflen, arg.acl_pages, &arg.acl_pgbase);
        ret = rpc_call_sync(NFS_CLIENT(inode), &msg, 0);
-       if (ret == 0)
-               nfs4_write_cached_acl(inode, buf, buflen);
+       nfs_zap_caches(inode);
        return ret;
 }
 
@@ -2711,11 +2710,15 @@ static int nfs4_wait_clnt_recover(struct rpc_clnt *clnt, struct nfs_client *clp)
 
        might_sleep();
 
+       rwsem_acquire(&clp->cl_sem.dep_map, 0, 0, _RET_IP_);
+
        rpc_clnt_sigmask(clnt, &oldset);
        res = wait_on_bit(&clp->cl_state, NFS4CLNT_STATE_RECOVER,
                        nfs4_wait_bit_interruptible,
                        TASK_INTERRUPTIBLE);
        rpc_clnt_sigunmask(clnt, &oldset);
+
+       rwsem_release(&clp->cl_sem.dep_map, 1, _RET_IP_);
        return res;
 }
 
@@ -2745,7 +2748,7 @@ static int nfs4_delay(struct rpc_clnt *clnt, long *timeout)
 /* This is the error handling routine for processes that are allowed
  * to sleep.
  */
-int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception)
+static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception)
 {
        struct nfs_client *clp = server->nfs_client;
        int ret = errorcode;
@@ -3014,6 +3017,7 @@ static int _nfs4_proc_getlk(struct nfs4_state *state, int cmd, struct file_lock
                case -NFS4ERR_DENIED:
                        status = 0;
        }
+       request->fl_ops->fl_release_private(request);
 out:
        up_read(&clp->cl_sem);
        return status;
@@ -3580,7 +3584,7 @@ struct nfs4_state_recovery_ops nfs4_network_partition_recovery_ops = {
        .recover_lock   = nfs4_lock_expired,
 };
 
-static struct inode_operations nfs4_file_inode_operations = {
+static const struct inode_operations nfs4_file_inode_operations = {
        .permission     = nfs_permission,
        .getattr        = nfs_getattr,
        .setattr        = nfs_setattr,