Merge commit 'v2.6.30' into for-2.6.31
This commit is contained in:
@@ -1943,7 +1943,8 @@ int nfs_permission(struct inode *inode, int mask)
|
||||
case S_IFREG:
|
||||
/* NFSv4 has atomic_open... */
|
||||
if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN)
|
||||
&& (mask & MAY_OPEN))
|
||||
&& (mask & MAY_OPEN)
|
||||
&& !(mask & MAY_EXEC))
|
||||
goto out;
|
||||
break;
|
||||
case S_IFDIR:
|
||||
|
@@ -517,10 +517,10 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
||||
|
||||
ret = nfs_updatepage(filp, page, 0, pagelen);
|
||||
out_unlock:
|
||||
if (!ret)
|
||||
return VM_FAULT_LOCKED;
|
||||
unlock_page(page);
|
||||
if (ret)
|
||||
ret = VM_FAULT_SIGBUS;
|
||||
return ret;
|
||||
return VM_FAULT_SIGBUS;
|
||||
}
|
||||
|
||||
static struct vm_operations_struct nfs_file_vm_ops = {
|
||||
|
@@ -2594,12 +2594,9 @@ static void nfs4_renew_done(struct rpc_task *task, void *data)
|
||||
unsigned long timestamp = (unsigned long)data;
|
||||
|
||||
if (task->tk_status < 0) {
|
||||
switch (task->tk_status) {
|
||||
case -NFS4ERR_STALE_CLIENTID:
|
||||
case -NFS4ERR_EXPIRED:
|
||||
case -NFS4ERR_CB_PATH_DOWN:
|
||||
nfs4_schedule_state_recovery(clp);
|
||||
}
|
||||
/* Unless we're shutting down, schedule state recovery! */
|
||||
if (test_bit(NFS_CS_RENEWD, &clp->cl_res_state) != 0)
|
||||
nfs4_schedule_state_recovery(clp);
|
||||
return;
|
||||
}
|
||||
spin_lock(&clp->cl_lock);
|
||||
|
@@ -129,7 +129,7 @@ enum {
|
||||
Opt_err
|
||||
};
|
||||
|
||||
static match_table_t __initconst tokens = {
|
||||
static const match_table_t tokens __initconst = {
|
||||
{Opt_port, "port=%u"},
|
||||
{Opt_rsize, "rsize=%u"},
|
||||
{Opt_wsize, "wsize=%u"},
|
||||
|
@@ -683,9 +683,12 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
|
||||
*/
|
||||
static void nfs_umount_begin(struct super_block *sb)
|
||||
{
|
||||
struct nfs_server *server = NFS_SB(sb);
|
||||
struct nfs_server *server;
|
||||
struct rpc_clnt *rpc;
|
||||
|
||||
lock_kernel();
|
||||
|
||||
server = NFS_SB(sb);
|
||||
/* -EIO all pending I/O */
|
||||
rpc = server->client_acl;
|
||||
if (!IS_ERR(rpc))
|
||||
@@ -693,6 +696,8 @@ static void nfs_umount_begin(struct super_block *sb)
|
||||
rpc = server->client;
|
||||
if (!IS_ERR(rpc))
|
||||
rpc_killall_tasks(rpc);
|
||||
|
||||
unlock_kernel();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2106,8 +2111,7 @@ out_err_nosb:
|
||||
error_splat_root:
|
||||
dput(mntroot);
|
||||
error_splat_super:
|
||||
up_write(&s->s_umount);
|
||||
deactivate_super(s);
|
||||
deactivate_locked_super(s);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -2203,8 +2207,7 @@ out_err_noserver:
|
||||
return error;
|
||||
|
||||
error_splat_super:
|
||||
up_write(&s->s_umount);
|
||||
deactivate_super(s);
|
||||
deactivate_locked_super(s);
|
||||
dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error);
|
||||
return error;
|
||||
}
|
||||
@@ -2464,8 +2467,7 @@ out_free:
|
||||
error_splat_root:
|
||||
dput(mntroot);
|
||||
error_splat_super:
|
||||
up_write(&s->s_umount);
|
||||
deactivate_super(s);
|
||||
deactivate_locked_super(s);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -2559,8 +2561,7 @@ out_err_noserver:
|
||||
return error;
|
||||
|
||||
error_splat_super:
|
||||
up_write(&s->s_umount);
|
||||
deactivate_super(s);
|
||||
deactivate_locked_super(s);
|
||||
dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error);
|
||||
return error;
|
||||
}
|
||||
@@ -2644,8 +2645,7 @@ out_err_noserver:
|
||||
return error;
|
||||
|
||||
error_splat_super:
|
||||
up_write(&s->s_umount);
|
||||
deactivate_super(s);
|
||||
deactivate_locked_super(s);
|
||||
dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error);
|
||||
return error;
|
||||
}
|
||||
|
Reference in New Issue
Block a user