mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
NFSv4: nfs4_open_done first must check that GETATTR decoded a file type
...before it can check the validity of that file type. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
25a1a6211d
commit
807d66d802
1 changed files with 3 additions and 1 deletions
|
@ -1537,7 +1537,8 @@ static void nfs4_open_done(struct rpc_task *task, void *calldata)
|
|||
return;
|
||||
|
||||
if (task->tk_status == 0) {
|
||||
switch (data->o_res.f_attr->mode & S_IFMT) {
|
||||
if (data->o_res.f_attr->valid & NFS_ATTR_FATTR_TYPE) {
|
||||
switch (data->o_res.f_attr->mode & S_IFMT) {
|
||||
case S_IFREG:
|
||||
break;
|
||||
case S_IFLNK:
|
||||
|
@ -1548,6 +1549,7 @@ static void nfs4_open_done(struct rpc_task *task, void *calldata)
|
|||
break;
|
||||
default:
|
||||
data->rpc_status = -ENOTDIR;
|
||||
}
|
||||
}
|
||||
renew_lease(data->o_res.server, data->timestamp);
|
||||
if (!(data->o_res.rflags & NFS4_OPEN_RESULT_CONFIRM))
|
||||
|
|
Loading…
Reference in a new issue